ODPS功能介绍之CLT
大家在使用ODPS之前,一定会问如何与ODPS亲密接触。 ODPS提供了基于HTTP/HTTPS的RESTful API接口,同时还有JAVA语言的SDK,但还有一款工具相信大家更喜欢-ODPS CLT (Command-Line Tool),一个基于命令行的工具。这款工具就是基于ODPS JAVA SDK开发的,只要机器上安装了JAVA 1.6,就可以运行。 通过这个工具,大家可以直接以命令的方式向ODPS提交任务作业来执行。下来给大家介绍一下这款工具如何使用。
安装及配置
(1) 这款工具可以从ODPS官网下载,下载之后,解开压缩包,例如:解压缩到 C:\ODPS_DEMO\
(2) 进入目录 C:\ODPS_DEMO\odpscmd_public\conf\,打开文件 odps_config.ini,修改配置信息
project_name=project_name
access_id=XXXXXXXXXXXXXXXX
access_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
end_point=http://service.odps.aliyun.com/api
tunnel_endpoint=http://dt.odps.aliyun.com
log_view_host=http://logview.odps.aliyun.com
https_check=true
说明:将project_name 值改为自己的project 名称,将access_id及access_key改为自己云账号的id和key。其它值可以不做修改;
(3) 通过命令行,进入C:\ODPS_DEMO\odpscmd_public\bin\,执行 odpscmd,进入交互界面,确认安装是否配置成功。
(4) 将 C:\ODPS_DEMO\odpscmd_public\bin 加入环境变量 PATH,方便通过命令行调用 odpscmd
ODPS CLT有两种执行方式:交互式和非交互式。 交互式即输入一条执行一条,直到用户退出。非交互式主要用于外部脚本的调用。脚本可以通过参数将命令传递给CLT来执行,执行完成后,CLT自动退出。 两种方式分别举例说明。
交互式执行常用命令
(1) 进入交互界面
odpscmd
(2) 分别执行下述命令
# 查看帮助信息
help;
# 切换项目
use aca21104_demo;
# 查看当前项目的详细信息
desc project aca21104_demo;
# 列出表信息
ls tables;
# 查看某个表的具体信息
desc dual;
# 查看表中记录数
count dual;
select count(*) from dual;
# 查看表记录内容:
read dual;
select * from dual;
# 添加用户 ben.ning@aliyun.com 到当前项目空间中来:
list users;
remove user ALIYUN$ben.ning@aliyun.com;
add user ALIYUN$ben.ning@aliyun.com;
# 新建表 t_test
create table if not exists t_test (id int, name string);
# 插入一条数据
insert into table t_test select * from t_test;
# 查看表中记录:
read t_test;
注:CLT中的每个命令以;作为结尾符,遇到结尾符才开始执行。所以命令后面不要忘记添加;号;
非交互式执行命令
使用-f执行指定文件中的命令集
(1) 在目录 C:\ODPS_DEMO\resources\01-BasicKnowledge\ 中新建一个文件 crt_tbl_new.cmd,包括如下内容:
use aca21104_demo;
drop table if exists t_test;
create table t_test (id int, name string);
insert into table t_test select 1,’odps’ from dual;
read t_test;
注:文件一定要存储为UTF-8格式;
(2) 使用 odpscmd 调用命令文件:
odpscmd -f C:\ODPS_DEMO\resources\01-BasicKnowledge\crt_tbl_new.cmd
(3) 使用 odpscmd 执行命令文件中的一部分命令(跳过开头的命令):
odpscmd -f C:\ODPS_DEMO\resources\01-BasicKnowledge\crt_tbl_new.cmd -k 4
使用-e参数执行命令
(1) 使用odpscmd -e 执行多个命令:
odpscmd -e “insert into table t_test select 2,’odpscmd’ from dual; read t_test;”
(2) 使用 -e 和 -k 结合在执行命令集时可跳过一些命令:
odpscmd -e “insert into table t_test select 2,’odpscmd’ from dual; read t_test;” -k
使用CLT中上传、下载数据
CLT中有个Tunnel命令,用来支持上传和下载数据的操作,如果数据量比较小,可以尝试使用CLT进行上传和下载。
(1) 使用 upload 子命令,上传文件 people.csv 到表 t_tunnel 中:
tunnel upload C:\ODPS_DEMO\resources\02-DataTransfer\people.csv t_tunnel;
(2) 检查上传结果:
read t_tunnel;
如果目标表有分区,需要先创建好分区,然后再上传数据,如:
(1) 创建表 t_tunnel_p 的分区 gender=’male’中:
alter table t_tunnel_p add if not exists partition (gender=’male’);
(2) 使用 upload 子命令,上传文件 men.csv 以及 women.csv 到表 t_tunnel_p 的已存在的分区 gender=’male’中:
tunnel upload women.csv t_tunnel_p/gender=’male’;
tunnel upload men.csv t_tunnel_p/gender=’male’;
如果想将表中的数据下载到本地也是件非常容易的事情,例如:
将表 t_tunnel 下载到本地文件 t_tunnel.csv:
tunnel download t_tunnel t_tunnel.csv;
如果想下载某个分区中的数据,可以直接指定分区即可:
tunnel download t_tunnel_p/gender=’male’ t_tunnel_p.csv;

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
jdb调试程序
1) jdb调试正在运行的进程: 先使用jps先确定进程号,然后让jdb连接上目标进程(23549换成实际的进程号): jdb -connect sun.jvm.hotspot.jdi.SAPIDAttachingConnector:pid=23549 接着,可以使用thread N切换线程(使用threads命令可以查看有哪些线程),如:thread 1,然后就可以使用where命令查看调用栈了(jdb中的where相当于gdb的bt)。 2) jdb调试未运行的程序: 程序代码: hadoop@hadoop-137-143:~/hbase> cat Hello.java public class Hello { public static void main(String[] args) { System.out.println("Hello World!"); } } 编译: hadoop@hadoop-137-143:~/hbase> javac Hello.java 运行: hadoop@hadoop-137-143:~/hbase> ja...
- 下一篇
ODPS功能介绍之数据导入
在使用ODPS强大的数据处理能力之前,大家最关心的是自己的数据如何导入到ODPS中。 下面介绍一款向ODPS导入数据的工具-Fluentd。 Fluentd是一个开源的软件,用来收集各种源头日志(包括Application Log、Sys Log及Access Log),允许用户选择插件对日志数据进行过滤、并存储到不同的数据处理端(包括MySQL、Oracle、MongoDB、Hadoop、Treasure Data、AWS Services、Google Services以及ODPS等)。Fluentd以小巧灵活而著称,允许用户自定义数据源、过滤处理及目标端等插件,目前在这款软件中已经有300+个插件运行Fluentd的架构上,而且这些插件全部是开源的。 ODPS也在这款软件上开源了数据导入插件。 环境准备 使用这款软件,向ODPS导入数据,需要具备如下环境: Ruby 2.1.0 或更新 Gem 2.4.5 或更新 Fluentd-0.10.49 或从Fluentd 官网http://www.fluentd.org/ 查找最新,Fluentd为不同的OS提供了不同的版本,详见htt...
相关文章
文章评论
共有0条评论来说两句吧...