MaxCompute通过Tunnel实现上传下载数据功能。本文为您介绍如何通过Tunnel上传、下载数据。
Tunnel操作详情请参见Tunnel命令。常用命令如下:
|
类型 |
功能 |
角色 |
操作入口 |
|
将本地文件的数据上传至MaxCompute的表中,以追加模式导入。 |
具备修改表权限(Alter)的用户。 |
||
|
将MaxCompute表数据或指定Instance的执行结果下载至本地。 |
具备读取表数据权限(Select)的用户。 |
上传数据
将本地文件数据以追加模式导入至 MaxCompute 表中,数据上传过程不产生费用。
-
使用限制
-
支持文件或目录(指一级目录)的上传,每一次仅支持上传到一张表或表的一个分区。
-
分区表一定要指定上传的分区,多级分区一定要指定到末级分区。
-
-
命令格式
Tunnel upload <path> [<project_name>.]<table_name>[/<pt_spc>]; -
参数说明
-
path:必填。上传数据文件的存放路径以及文件名称。默认上传的数据文件为TXT格式。路径及文件名仅支持英文字符(字母、数字、下划线),不支持中文字符和空格。如果路径包含中文字符,在系统locale为非UTF-8的环境下(如
LANG=C),MaxCompute客户端(odpscmd)会报"文件不存在"错误。此时请将文件路径修改为纯英文路径,或将系统locale设置为UTF-8编码(如export LANG=en_US.UTF-8)。数据文件的归档路径有两种选择:您可以将文件直接归档至MaxCompute客户端的
bin目录中,此时path需要设置为文件名.后缀名;也可以将文件归档至其他路径下,例如D盘的test文件夹,此时path需要设置为D:\test\文件名.后缀名。Tunnel命令行方式上传数据文件时,对文件大小没有限制,支持上传超过10 MB的大文件。如需上传大文件,可通过-bs参数调整每次上传至Tunnel的数据块大小(默认100 MiB)。说明macOS系统中path值只能使用绝对路径,例如文件归档在MaxCompute客户端的
bin目录中,此时path需要设置为/Users/username/MaxCompute/bin/文件名.后缀名。 -
project_name:可选。目标表所属项目空间名称。跨项目空间访问表时需要指定该参数。
-
table_name:必填。目标表名。
-
pt_spc:可选。需要指定至最末级分区。格式为
partition_col1=col1_value1, partition_col2=col2_value1...。
-
-
使用示例
-
示例1:将log.txt中的数据上传至当前项目空间的表test_table中。log.txt文件归档在MaxCompute客户端的
bin目录中。命令如下。Tunnel upload log.txt test_table; -
示例2:将log.txt中的数据上传至项目空间test_project的表test_table(二级分区表)中的
p1="b1",p2="b2"分区。log.txt文件归档在D盘的test文件夹中。命令如下。Tunnel upload D:\test\log.txt test_project.test_table/p1="b1",p2="b2";
-
下载数据
将MaxCompute表数据或指定Instance的执行结果下载至本地。MaxCompute仅对公网的数据下载,按照下载的数据大小进行计费,一次下载费用=下载数据量(GB)×下载价格(0.8元/GB)。
-
使用限制
-
每次操作仅支持将一张表或一个分区的数据下载到单个文件中。
-
分区表一定要指定下载的分区,多级分区一定要指定到末级分区。
-
-
命令格式
Tunnel download [<project_name>.]<table_name>[/<pt_spc>] <path>; -
参数说明
-
project_name:可选。目标表所属项目空间名称。跨项目空间访问表时需要指定该参数。
-
table_name:必填。目标表表名。
-
pt_spc:可选。需要指定至最末级分区。格式为
partition_col1=col1_value1, partition_col2=col2_value1...。 -
path:必填。下载数据文件的存放路径以及文件名称。默认下载的数据文件为TXT格式。
数据文件的保存路径有两种选择:您可以将文件直接下载至MaxCompute客户端的
bin目录中,此时path需要设置为文件名.后缀名;也可以将文件下载至其他路径下,例如D盘的test文件夹,此时path需要设置为D:\test\文件名.后缀名。
-
-
使用示例
-
示例1:将test_project.test_table表(二级分区表)中的数据下载到test_table.txt文件中。test_table.txt文件位于MaxCompute客户端的
bin目录中。命令如下。Tunnel download test_project.test_table/p1="b1",p2="b2" test_table.txt; -
示例2:将test_project.test_table表(二级分区表)中的数据下载到test_table.txt文件中。test_table.txt文件位于D盘的test文件夹中。命令如下。
Tunnel download test_project.test_table/p1="b1",p2="b2" D:\test\test_table.txt;
-