497
英雄聯盟
Tunnel命令操作__常用命令_基本介紹_大數據計算服務-阿裏雲
Tunnel命令,主要用於數據的上傳下載等功能。主要功能包括如下:
- 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=true;
-- 將log.txt中的數據上傳至表 test_table 中。--scan參數表示需要掃描log.txt中的數據是否符合 test_table 的定義,如果不符合報錯,並停止上傳數據。
- Download:隻支持下載到單個文件,每一次下載隻支持下載一個表或一個分區到一個文件,有分區的表一定要指定下載的分區。
tunnel download test_project.test_table/p1="b1",p2="b2" test_table.txt;
-- 將表中的數據下載到 test_table.txt 文件中
- Resume:因為網絡或tunnel服務的原因出錯,支持文件或目錄的續傳。用戶可以繼續上一次的數據上傳操作。但Resume命令暫時沒有對下載操作的支持
tunnel resume;
- Show:顯示曆史任務信息。
tunnel show history -n 5;
--顯示前5次上傳/下載數據的詳細命令
tunnel show log;
--顯示最後一次上傳/下載數據的日誌
- Purge:清理session目錄,默認清理3天內的。
tunnel purge 5;
--清理前5天的日誌
Tunnel命令使用說明
Tunnel命令支持在客戶端通過help子命令獲取幫助信息,每個命令和選擇支持短命令格式:
odps@ project_name>tunnel help;
Usage: tunnel <subcommand> [options] [args]
Type 'tunnel help <subcommand>' for help on a specific subcommand.
Available subcommands:
upload (u)
download (d)
resume (r)
show (s)
purge (p)
help (h)
tunnel is a command for uploading data to / downloading data from ODPS.
說明:
- upload:幫助用戶上傳數據到 MaxCompute 的表中;
- download:幫助用戶從 MaxCompute 的表中下載數據;
- resume:如果上傳數據失敗,通過resume命令進行斷點續傳,目前僅支持上傳數據的續傳。每次上傳、下載數據被稱為一個session。在resume命令後指定session id完成續傳。
- show:查看曆史運行信息;
- purge:清理 session 目錄;
- help:輸出 tunnel 幫助信息;
Upload
將本地文件的數據導入 MaxCompute 的表中,以追加模式導入。子命令使用提示:
odps@ project_name>tunnel help upload;
usage: tunnel upload [options] <path> <[project.]table[/partition]>
upload data from local file
-bs,--block-size <ARG> block size in MiB, default 100
-c,--charset <ARG> specify file charset, default utf8.
set ignore to download raw data
-cp,--compress <ARG> compress, default true
-dbr,--discard-bad-records <ARG> specify discard bad records
action(true|false), default false
-dfp,--date-format-pattern <ARG> specify date format pattern, default
yyyy-MM-dd HH:mm:ss
-e,--endpoint <ARG> odps endpoint
-fd,--field-delimiter <ARG> specify field delimiter, default ","
-h,--header <ARG> if local file should have table
header, default false
-mbr,--max-bad-records <ARG> max bad records, default 1000
-ni,--null-indicator <ARG> specify null indicator string, default
""(empty string)
-rd,--record-delimiter <ARG> specify record delimiter, default
"rn"
-s,--scan <ARG> specify scan file
action(true|false|only), default true
-sd,--session-dir <ARG> set session dir, default
/D:/console/plugins/dship/lib/..
-te,--tunnel-endpoint <ARG> tunnel endpoint
-tz,--time-zone <ARG> time zone, default local timezone:
Asia/Shanghai
Example:
tunnel upload log.txt test_project.test_table/p1="b1",p2="b2"
主要參數說明:
- -bs,—block-size:每次上傳至Tunnel的數據塊大小,默認值:100MiB (MiB=1024*1024B )。
- -c,—charset:指定本地數據文件編碼,默認為’UTF-8’;不設定,默認下載源數據。
- -cp,—compress:指定是否在本地壓縮後再上傳,減少網絡流量,默認開啟。
- -dfp:DateTime類型數據格式,默認為’yyyy-MM-dd HH:mm:ss’;
- -dbr:是否忽略髒數據(多列,少列,列數據類型不匹配等情況)。值為’true’時,將全部不符合表定義的數據忽略。值為’false’,若遇到髒數據,則給出錯誤提示信息,目標表內的原始數據不會被汙染。
- -e: 指定odps的endpoint.
- -fd:本地數據文件的列分割符,默認為逗號’,’;
- -h: 數據文件是否包括表頭,如果為true,則dship會跳過表頭從第二行開始上傳數據。
- -mbr,—max-bad-records:默認情況下,當上傳的髒數據超過1000條時,上傳動作終止。通過此參數,可以調整可容忍的髒數據量;
- -ni:NULL數據標誌符,默認為” “(空字符串);
- -rd:本地數據文件的行分割符,默認為’rn’;
- -s:是否掃描本地數據文件,默認值為’false’。值為’true’時,先掃描數據,若數據格式正確,再導入數據。值為’false’,不掃描數據,直接進行數據導入。值為’only’時,僅進行掃描本地數據,掃描結束後不繼續導入數據。
- -te:指定tunnel的Endpoint.
- -tz:指定時區。默認為本地時區:Asia/Shanghai。
程序示例:
- 創建目標表:
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,其內容為:
shop9,97,100
shop10,10,200
shop11,11
這份文件的第三行數據與sale_detail的表定義不符。sale_detail定義了三列,但數據隻有兩列。
- 導入數據:
odps@ project_name>tunnel u d:data.txt sale_detail/sale_date=201312,region=hangzhou -s false
Upload session: 201506101639224880870a002ec60c
Start upload:d:data.txt
Total bytes:41 Split input to 1 blocks
2015-06-10 16:39:22 upload block: '1'
ERROR: column mismatch -,expected 3 columns, 2 columns found, please check data or delimiter
由於data.txt中有髒數據,數據導入失敗。並給出session id及錯誤提示信息。
數據驗證:
odps@ odpstest_ay52c_ay52> select * from sale_detail where sale_date='201312';
ID = 20150610084135370gyvc61z5
+-----------+-------------+-------------+-----------+--------+
| shop_name | customer_id | total_price | sale_date | region |
+-----------+-------------+-------------+-----------+--------+
+-----------+-------------+-------------+-----------+--------+
由於有髒數據,數據導入失敗,表中無數據。
Show
顯示曆史記錄。子命令使用提示:
usage: tunnel show history [options]
show session information
-c,--charset <ARG> specify file charset, default utf8.
set ignore to download raw data
-cp,--compress <ARG> compress, default true
-dfp,--date-format-pattern <ARG> specify date format pattern, default
yyyy-MM-dd HH:mm:ss
-e,--endpoint <ARG> odps endpoint
-fd,--field-delimiter <ARG> specify field delimiter, default ","
-h,--header <ARG> if local file should have table
header, default false
-n,--number <ARG> lines
-ni,--null-indicator <ARG> specify null indicator string, default
""(empty string)
-rd,--record-delimiter <ARG> specify record delimiter, default
"rn"
-sd,--session-dir <ARG> set session dir, default
/D:/console/plugins/dship/lib/..(plugins/dship/lib所在具體路徑)
-te,--tunnel-endpoint <ARG> tunnel endpoint
-tz,--time-zone <ARG> time zone, default local timezone:
Asia/Shanghai
Example:
tunnel show history -n 5
tunnel show log
命令示例:
odps@ project_name>tunnel show history;
201506101639224880870a002ec60c failed 'u --config-file /D:/console/conf/odps_config.ini --project odpstest_ay52c_ay52 --endpoint https://service.odps.aliyun.com/api --id UlVxOHuthHV1QrI1 --key 2m4r3WvTZbsNJjybVXj0InVke7UkvR d:data.txt sale_detail/sale_date=201312,region=hangzhou -s false'
說明:201506101639224880870a002ec60c是上節中導入數據失敗時的運行id。
Resume
修複執行曆史記錄,僅對上傳數據有效。子命令使用提示:
usage: tunnel resume [session_id] [--force]
download data to local file
-c,--charset <ARG> specify file charset, default utf8.
set ignore to download raw data
-cp,--compress <ARG> compress, default true
-dfp,--date-format-pattern <ARG> specify date format pattern, default
yyyy-MM-dd HH:mm:ss
-e,--endpoint <ARG> odps endpoint
-f,--force force resume
-fd,--field-delimiter <ARG> specify field delimiter, default ","
-h,--header <ARG> if local file should have table
header, default false
-ni,--null-indicator <ARG> specify null indicator string, default
""(empty string)
-rd,--record-delimiter <ARG> specify record delimiter, default
"rn"
-sd,--session-dir <ARG> set session dir, default
/D:/console/plugins/dship/lib/..
-te,--tunnel-endpoint <ARG> tunnel endpoint
-tz,--time-zone <ARG> time zone, default local timezone:
Asia/Shanghai
Example:
tunnel resume
命令示例:
修改data.txt文件為:
shop9,97,100
shop10,10,200
修複執行上傳數據:
odps@ project_name>tunnel resume 201506101639224880870a002ec60c --force;
start resume
201506101639224880870a002ec60c
Upload session: 201506101639224880870a002ec60c
Start upload:d:data.txt
Resume 1 blocks
2015-06-10 16:46:42 upload block: '1'
2015-06-10 16:46:42 upload block complete, blockid=1
upload complete, average speed is 0 KB/s
OK
其中,201506101639224880870a002ec60c為上傳失敗的session id。
數據驗證:
odps@ project_name>select * from sale_detail where sale_date='201312';
ID = 20150610084801405g0a741z5
+-----------+-------------+-------------+-----------+--------+
| shop_name | customer_id | total_price | sale_date | region |
+-----------+-------------+-------------+-----------+--------+
| shop9 | 97 | 100.0 | 201312 | hangzhou |
| shop10 | 10 | 200.0 | 201312 | hangzhou |
+-----------+-------------+-------------+-----------+--------+
Download
子命令使用提示:
odps@ project_name>tunnel help download;
usage: tunnel download [options] <[project.]table[/partition]> <path>
resume [session_id] [--force]
-c,--charset <ARG> specify file charset, default utf8.
set ignore to download raw data
-cp,--compress <ARG> compress, default true
-dfp,--date-format-pattern <ARG> specify date format pattern, default
yyyy-MM-dd HH:mm:ss
-e,--endpoint <ARG> odps endpoint
-fd,--field-delimiter <ARG> specify field delimiter, default ","
-h,--header <ARG> if local file should have table
header, default false
-ni,--null-indicator <ARG> specify null indicator string, default
""(empty string)
-rd,--record-delimiter <ARG> specify record delimiter, default
"rn"
-sd,--session-dir <ARG> set session dir, default
/D:/console/plugins/dship/lib/..(plugins/dship/lib所在的實際路徑)
-te,--tunnel-endpoint <ARG> tunnel endpoint
-tz,--time-zone <ARG> time zone, default local timezone:
Asia/Shanghai
Example:
tunnel download test_project.test_table/p1="b1",p2="b2" log.txt
說明:
- -fd:本地數據文件的列分割符,默認為逗號’,’;
- -rd:本地數據文件的行分割符,默認為’rn’;
- -dfp:DateTime類型數據格式,默認為’yyyy-MM-dd HH:mm:ss’;
- -ni:NULL數據標誌符,默認為” “(空字符串);
- -c:本地數據文件編碼,默認為’UTF-8’;
命令示例:
下載數據到result.txt文件中:
$ ./tunnel download sale_detail/sale_date=201312,region=hangzhou result.txt;
Download session: 201506101658245283870a002ed0b9
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的文件內容為:
shop9,97,100.0
shop10,10,200.0
Purge
清除session目錄,默認清除距離當前日期3天內的。子命令使用提示:
usage: tunnel purge [n]
force session history to be purged.([n] days before, default
3 days)
-c,--charset <ARG> specify file charset, default utf8.
set ignore to download raw data
-cp,--compress <ARG> compress, default true
-dfp,--date-format-pattern <ARG> specify date format pattern, default
yyyy-MM-dd HH:mm:ss
-e,--endpoint <ARG> odps endpoint
-fd,--field-delimiter <ARG> specify field delimiter, default ","
-h,--header <ARG> if local file should have table
header, default false
-ni,--null-indicator <ARG> specify null indicator string, default
" "(empty string)
-rd,--record-delimiter <ARG> specify record delimiter, default
"rn"
-sd,--session-dir <ARG> set session dir, default
/D:/console/plugins/dship/lib/..
-te,--tunnel-endpoint <ARG> tunnel endpoint
-tz,--time-zone <ARG> time zone, default local timezone:
Asia/Shanghai
Example:
tunnel purge 5
數據類型說明:
類型 | 描述 |
---|---|
STRING | 字符串類型,長度不能超過8MB。 |
BOOLEN | 上傳值隻支持”true”,”false”,”0”,”1”。下載值為true/false且不區分大小寫。 |
BIGINT | 取值範圍[-9223372036854775807,9223372036854775807]。 |
DOUBLE | 1.有效位數16位 2.上傳支持科學計數法表示 3.下載僅使用數字表示 4.最大值:1.7976931348623157E308 5.最小值:4.9E-324 6.無窮大:Infinity 7.無窮小:-Infinity |
DATETIME | Datetime類型默認支持時區為GMT+8的數據上傳,可以通過命令行指定用戶數據日期格式的format pattern。 |
如果用戶上傳DATETIME類型的數據,需要指定時間日期格式,具體格式可參考 SimpleDateFormat :
"yyyyMMddHHmmss": 數據格式"20140209101000"
"yyyy-MM-dd HH:mm:ss"(默認):數據格式"2014-02-09 10:10:00"
"yyyy年MM月dd日": 數據格式"2014年09月01日"
示例:
tunnel upload log.txt test_table -dfp "yyyy-MM-dd HH:mm:ss"
空值
所有數據類型都可以有空值:
默認空字符串為空值。
可在命令行下通過-null-indicator參數來指定空值的字符串
tunnel upload log.txt test_table -ni "NULL"
字符編碼
用戶可以指定文件的字符編碼,默認為”UTF-8”。
tunnel upload log.txt test_table -c "gbk"
分隔符
tunnel命令支持用戶自定義的文件分隔符,行分隔符選項為”-record-delimiter”,列分隔符選項為”-field-delimiter”。 分隔符說明:
- 支持多個字符的行列分隔符
- 列分隔符不能夠包含行分隔符
- 轉義字符分隔符,在命令行方式下隻支持r、n和t
示例:
tunnel upload log.txt test_table -fd "||" -rd "rn"
最後更新:2016-11-23 17:16:04
上一篇:
函數操作__常用命令_基本介紹_大數據計算服務-阿裏雲
下一篇:
其他操作__常用命令_基本介紹_大數據計算服務-阿裏雲
阿裏雲雲服務器 ECS典型應用場景
發送定時消息__Java SDK_TCP 接入(專業)_消息隊列 MQ-阿裏雲
API調用方式__API使用手冊_歸檔存儲-阿裏雲
狀態不一致___異常類別_產品使用問題_消息隊列 MQ-阿裏雲
天粒度按流量域名排名__資源監控接口_API 手冊_CDN-阿裏雲
配置config子句__搜索子句介紹_API參考手冊_開放搜索-阿裏雲
釋放自動快照策略__快照相關接口_API 參考_雲服務器 ECS-阿裏雲
為什麼我可提現金額小於現金賬戶餘額?__退款提現_賬戶資產_財務-阿裏雲
Pipeline(數據管道)__產品概念_產品簡介_數據集成-阿裏雲
Graph開發插件介紹__Eclipse開發插件_工具_大數據計算服務-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲