1.Tunnel 命令操作
输入 help table;
可以得到与 table 操作相关的命令提示,如下所示:
odps@ odps> help table;
Usage: alter table merge smallfiles
Usage: show tables [in ]
list|ls tables [-p,-project ]
Usage: describe|desc [.] [partition()]
Usage: read [.] [([,..])] [PARTITION ()] [line_num]
Tunnel命令使用说明
- upload:上传数据到MaxCompute的表中。
- download:从MaxCompute的表中下载数据。
- resume:如果上传数据失败,通过resume命令进行断点续传,目前仅支持上传数据的续传。每次上传、下载数据被称为一个session。在resume命令后指定session id完成续传。
- show:查看历史运行信息。
- purge:清理session目录。
- help:输出tunnel帮助信息。
2.数据上传——upload
- Upload:支持文件或目录(指一级目录)的上传,每一次上传只支持数据上传到一张表或表的一个分区,有分区的表一定要指定上传的分区,多级分区一定要指定到末级分区。
tunnel upload log.txt test_project.test_table/p1="b1",p2="b2";
- -- 将log.txt中的数据上传至项目空间test_project的表test_table(二级分区表)中的p1="b1",p2="b2"分区
tunnel upload log.txt test_table --scan=only;
- -- 将log.txt中的数据上传至表 test_table 中。--scan参数表示需要扫描log.txt中的数据是否符合 test_table 的定义,如果不符合报错,并停止上传数据。
示例如下:
创建目标表,如下所示:
CREATE TABLE IF NOT EXISTS sale_detail(
shop_name STRING,
customer_id STRING,
total_price DOUBLE)
PARTITIONED BY (sale_date STRING,region STRING);
添加分区,如下所示:
alter table sale_detail add partition (sale_date='201312', region='hangzhou');
准备数据文件data.txt,其内容如下所示:
shopx,x_id,100
shopy,y_id,200
导入数据,如下所示:
odps@ project_name>tunnel u d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false
数据验证,如下所示:
odps@ project_name>select * from sale_detail where sale_date='201312';
ID = 20150610xxxxxxxxxxxa741z5
+-----------+-------------+-------------+-----------+--------+
| shop_name | customer_id | total_price | sale_date | region |
+-----------+-------------+-------------+-----------+--------+
| shopx | x_id | 100.0 | 201312 | hangzhou|
| shopy | y_id | 200.0 | 201312 | hangzhou|
+-----------+-------------+-------------+-----------+--------+
3.数据下载——download
Download:只支持下载到单个文件,每一次下载只支持下载一张表或一个分区到一个文件,有分区的表一定要指定下载的分区,多级分区一定要指定到末级分区。
tunnel download test_project.test_table/p1="b1",p2="b2" test_table.txt;
-- 将test_project.test_table表(二级分区表)中的数据下载到 test_table.txt 文件中
示例如下:
下载数据到 result.txt文件中,如下所示:
$ ./tunnel download sale_detail/sale_date=201312,region=hangzhou result.txt;
Download session: 20150610xxxxxxxxxxx70a002ed0b9
Total records: 2
2015-06-10 16:58:24 download records: 2
2015-06-10 16:58:24 file size: 30 bytes
OK
验证 result.txt的文件内容,如下所示:
shopx,x_id,100.0
shopy,y_id,200.0
重要事项!!!,阿里云中的数据类型固定,如下:
若要启动其他的数据类型,如:varchar(500),需在客户端中输入:
set odps.sql.type.system.odps2 = true;