2.1 阿里云ODPS数据上传与下载

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;
2.1 阿里云ODPS数据上传与下载_第1张图片
image.png

你可能感兴趣的:(2.1 阿里云ODPS数据上传与下载)