オンプレミス環境と MaxCompute 間で大量のデータを転送する場合、MaxCompute の Tunnel コマンドを実行して、データをアップロードおよびダウンロードできます。Tunnel コマンドでバッチデータまたは増分データをアップロードおよびダウンロードすることで、大規模なデータ転送の効率性とセキュリティを向上できます。本トピックでは、Tunnel コマンドを使用してデータをアップロードおよびダウンロードする方法について説明します。
コマンドの説明
-
構文
tunnel <subcommand> [options] [args]オプション
upload (u) download (d) resume (r) show (s) purge (p) help (h) upsert(us) -
パラメーター
-
upload :MaxCompute テーブルにデータをアップロードします。一度にファイルをアップロードできるのは、1 つのテーブルまたはテーブル内の 1 つの パーティション のみです。パーティションテーブルの場合、データをアップロードするパーティションを指定する必要があります。多階層パーティションテーブルの場合、最下層のパーティションを指定する必要があります。
-- MaxCompute クライアントの bin ディレクトリにある log.txt から test_project の test_table の p1="b1",p2="b2" パーティションにデータをアップロードします。 tunnel upload log.txt test_project.test_table/p1="b1",p2="b2"; -- log.txt から test_table テーブルにデータをアップロードします。--scan=true パラメーターは、log.txt 内のデータをテーブルスキーマと照合して検証します。データが一致しない場合、エラーが報告され、アップロードは中止されます。 tunnel upload log.txt test_table --scan=true; -- 別のパスにある log.txt から、test_project の test_table の p1="b1",p2="b2" パーティションにデータをアップロードします。 tunnel upload D:\test\log.txt test_project.test_table/p1="b1",p2="b2"; -
download :MaxCompute テーブルからデータをダウンロードします。一度に、1 つのテーブルまたはパーティションから 1 つのローカルファイルにのみ、データをダウンロードできます。パーティションテーブルの場合、データをダウンロードするパーティションを指定する必要があります。多階層パーティションテーブルの場合、最下層のパーティションを指定する必要があります。
-- test_project.test_table の p1="b1",p2="b2" パーティションからローカルファイル test_table.txt にデータをダウンロードします。 tunnel download test_project.test_table/p1="b1",p2="b2" test_table.txt; -- test_project.test_table の p1="b1",p2="b2" パーティションから、別のローカルパスにあるファイルにデータをダウンロードします。 tunnel download test_project.test_table/p1="b1",p2="b2" D:\test\test_table.txt; resume :ファイルまたはディレクトリの転送を再開します。転送は、ネットワークの切断や Tunnel の障害が原因で中断します。このコマンドは、データアップロードの再開にのみ使用できます。1 回のデータダウンロードまたはアップロードをセッションと呼びます。このコマンドを実行する前に、resume コマンドで セッション ID を指定する必要があります。
-- SessionID を指定して、中断されたアップロードタスクを再開します。 tunnel resume 2023101012345abcedfg;show :過去のタスク情報を表示します。
-- 過去5回のデータアップロードまたはダウンロードのコマンドを表示します。 tunnel show history -n 5; -- 最後のデータアップロードまたはダウンロードのログを表示します。 tunnel show log;-
purge :セッションディレクトリから Tunnel ログファイルをパージします。デフォルトでは、3 日より前のログが削除されます。
-- 5 日前より古いログをクリアします。 tunnel purge 5; help :ヘルプ情報を取得します。
upsert : UPDATE と INSERT のセマンティクスを使用してデータを書き込みます。アップサートステートメントを使用したデータ書き込みは、トランザクションテーブル 2.0 のテーブルでのみサポートされています。
宛先テーブルに一致するデータが見つからない場合、新しいデータが挿入されます。書き込むデータがすでに存在する場合、テーブル内のデータが更新されます。
-- test_project プロジェクト内の 2 階層のパーティションを持つ test_table テーブルの p1="b1" および p2="b2" パーティションに、log.txt ファイルのデータをアップロードします。log.txt ファイルは、MaxCompute クライアントの bin ディレクトリに保存されています。 tunnel upsert log.txt test_project.test_table/p1="b1",p2="b2";
-
アップロード
説明
ローカルデータを追加モードで MaxCompute テーブルにアップロードします。
説明追加モード:インポートするデータが MaxCompute テーブルにすでに存在する場合、アップロードコマンドを実行してもデータは上書きされません。この場合、既存のデータとインポートされたデータの両方が MaxCompute テーブルに存在します。
構文
tunnel upload [options] <path> <[project.]table[/partition]>形式
Available options: -acp,-auto-create-partition <ARG> ターゲットパーティションが存在しない場合に自動で作成します。デフォルトは false です。 -bs,-block-size <ARG> ブロックサイズ (MiB 単位)。デフォルトは 100 です。 -c,-charset <ARG> ファイルの文字セットを指定します。デフォルトは ignore です。 ignore に設定すると、生データがアップロードされます。 -cf,-csv-format <ARG> CSV 形式を使用します (true|false)。デフォルトは false です。 CSV 形式でのアップロードでは、ファイル分割はサポートされません。 -cp,-compress <ARG> 圧縮します。デフォルトは true です。 -dbr,-discard-bad-records <ARG> 不正なレコードを破棄するアクションを指定します (true|false)。デフォルトは false です。 -dfp,-date-format-pattern <ARG> 日付フォーマットパターンを指定します。デフォルトは yyyy-MM-dd HH:mm:ss です。 -fd,-field-delimiter <ARG> フィールド区切り文字を指定します。Unicode をサポートします (例: \u0001)。デフォルトは "," です。 -h,-header <ARG> ローカルファイルにテーブルヘッダーを含めるかどうかを指定します。デフォルトは false です。 -mbr,-max-bad-records <ARG> 不正なレコードの最大数。デフォルトは 1,000 です。 -ni,-null-indicator <ARG> NULL を示す文字列を指定します。デフォルトは "" (空文字列) です。 -ow,-overwrite <true | false> 指定したテーブルまたはパーティションを上書きするかどうかを指定します。デフォルトは false です。 -rd,-record-delimiter <ARG> レコード区切り文字を指定します。Unicode をサポートします (例: \u0001)。デフォルトは "\r\n" です。 -s,-scan <ARG> ファイルスキャンアクションを指定します (true|false|only)。デフォルトは true です。 -sd,-session-dir <ARG> セッションディレクトリを設定します。デフォルトは D:\software\odpscmd_public\plugins\dship です。 -ss,-strict-schema <ARG> 厳密スキーマモードを指定します。false の場合、余分なデータは破棄され、 不足しているフィールドは NULL で埋められます。デフォルトは true です。 -t,-threads <ARG> スレッド数。デフォルトは 1 です。 -te,-tunnel_endpoint <ARG> トンネルエンドポイント。 -time,-time <ARG> アップロード/ダウンロードの経過時間を追跡するかどうかを指定します。デフォルトは false です。 -tz,-time-zone <ARG> タイムゾーン。デフォルトはローカルタイムゾーン: Asia/Shanghai です。 Example: tunnel upload log.txt test_project.test_table/p1="b1",p2="b2"-
パラメーター
-
必須パラメーター
-
path
アップロードするデータファイルのパスと名前を指定します。
ファイルパスは 2 つの方法で指定できます。ファイルが MaxCompute クライアントの
binディレクトリにある場合は、path パラメーターをfilename.extensionに設定します。ファイルがD:\testなどの別のディレクトリにある場合は、path パラメーターを絶対パス (例:D:\test\filename.extension) に設定します。Tunnel コマンドラインツールにはファイルサイズの制限がなく、大きなファイルのアップロードをサポートしています。大きなファイルのアップロードを最適化するには、-bs パラメーターを使用して各データブロックのサイズを調整できます。デフォルトは 100 MiB です。説明macOS では、path の値は絶対パスである必要があります。たとえば、ファイルが MaxCompute クライアントの
binディレクトリにある場合は、path パラメーターを/Users/username/MaxCompute/bin/filename.extensionなどの絶対パスに設定します。 [project.]table[/partition]
データをアップロードするテーブルの名前を指定します。パーティションテーブルの場合は、最下位レベルのパーティションを指定する必要があります。テーブルが現在のプロジェクトに属していない場合は、テーブルが配置されているプロジェクトを指定する必要があります。
-
-
任意パラメーター
-acp
データをアップロードするパーティションを指定します。指定されたパーティションが存在しない場合、パーティションが自動的に作成されます。デフォルト値:false。
-
-bs
Tunnel が毎回アップロードするデータブロックのサイズを指定します。デフォルト値:100 MiB (1 MiB = 1024 × 1024 バイト)。
-c
データファイルの文字セットを指定します。デフォルトでは、このパラメーターは指定されず、生データがアップロードされます。
-cf
ファイルが CSV ファイルかどうかを指定します。デフォルト値:false。
説明アップロードコマンドは、TXT ファイルと CSV ファイルのみをアップロードできます。デフォルトでは TXT ファイルがアップロードされます。CSV ファイルをアップロードする場合は、
-cfパラメーターを設定し、最新バージョンの MaxCompute クライアントをダウンロードする必要があります。-cp
ネットワークトラフィックを削減するために、MaxCompute にアップロードする前にローカルデータファイルを圧縮するかどうかを指定します。デフォルト値:true。
-dbr
列の追加、列の欠落、列データ型の不一致などのダーティデータを省略するかどうかを指定します。デフォルト値:false。
True:テーブルの定義と一致しないすべてのデータを省略します。デフォルトでは、1,000 件のデータレコードが省略されます。省略するデータレコードの数を変更するには、-mbr パラメーターを指定します。
False:ダーティデータが検出されるとエラーが返されます。これにより、アップロード先テーブルの生データが汚染されるのを防ぎます。
-dfp
DATETIME データの形式を指定します。デフォルトの形式は
yyyy-MM-dd HH:mm:ssです。ミリ秒まで正確な DATETIME データを指定する場合は、yyyy-MM-dd HH:mm:ss.SSS 形式を使用できます。DATETIME データ型の詳細については、データ型をご参照ください。-fd
ローカルデータファイルで使用されるフィールド区切り文字を指定します。デフォルト値:カンマ (,)。
-h
アップロードするデータファイルにテーブルヘッダーがあるかどうかを指定します。デフォルト値:false。この場合、データファイルにテーブルヘッダーを含めることはできません。このパラメーターを true に設定すると、データファイルにテーブルヘッダーを含めることができます。この場合、システムはテーブルヘッダーをスキップし、2 行目からデータをアップロードします。
-mbr
許可されるダーティデータレコードの最大数を指定します。このパラメーターは -dbr パラメーターと併用する必要があり、-dbr パラメーターが true に設定されている場合にのみ有効です。ダーティデータレコードの最大数を指定します。ダーティデータレコードの数が指定された値を超えると、アップロードが停止します。デフォルト値:1,000。
-ni
NULL 識別子を指定します。デフォルト値:空の文字列。
-
-ow
アップロードするデータでテーブルまたはパーティションを上書きするかどうかを指定します。デフォルト値:false。この場合、データは追加モードでアップロードされます。以下に例を示します。
-- パーティションテーブルを作成します。 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'); -- ローカルデータファイル D:\data.txt に次の内容を準備します。 shopx,x_id,100 shopy,y_id,200 -- パーティションテーブルにデータをアップロードします。 tunnel upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou; -- sale_detail テーブルをクエリします。 SELECT * FROM sale_detail; -- 次の結果が返されます。 +------------+-------------+-------------+------------+------------+ | shop_name | customer_id | total_price | sale_date | region | +------------+-------------+-------------+------------+------------+ | shopx | x_id | 100.0 | 201312 | hangzhou | | shopy | y_id | 200.0 | 201312 | hangzhou | +------------+-------------+-------------+------------+------------+ -- data.txt の内容を次のように変更します。 shopx,x_id,300 shopy,y_id,400 -- パーティション内のデータを上書きします。 tunnel upload -ow true data.txt sale_detail/sale_date=201312,region=hangzhou; -- sale_detail テーブルをクエリします。 SELECT * FROM sale_detail; -- 次の結果が返されます。 +------------+-------------+-------------+------------+------------+ | shop_name | customer_id | total_price | sale_date | region | +------------+-------------+-------------+------------+------------+ | shopx | x_id | 300.0 | 201312 | hangzhou | | shopy | y_id | 400.0 | 201312 | hangzhou | +------------+-------------+-------------+------------+------------+ -rd
ローカルデータファイルで使用されるレコード区切り文字を指定します。デフォルト値:
\r\n。-s
ローカルデータファイルをスキャンするかどうかを指定します。デフォルト値:true。
True:システムはデータをスキャンし、データが正しい形式の場合にのみデータのインポートを開始します。
False:システムはスキャンせずにデータをインポートします。
Only:システムはローカルデータのみをスキャンします。スキャン後、データはインポートされません。
-sd
セッションディレクトリを指定します。
-ss
厳密スキーマモードを指定します。デフォルト値:true。このパラメーターを false に設定すると、余分なデータは破棄され、不足しているフィールドは NULL で埋められます。
-t
スレッド数を指定します。デフォルト値:1。
-te
Tunnel のエンドポイントを指定します。
-time
アップロード/ダウンロード時間を追跡するかどうかを指定します。デフォルト値:false。
-tz
タイムゾーンを指定します。デフォルト値:ローカルタイムゾーン (例: Asia/Shanghai)。タイムゾーンの詳細については、タイムゾーンをご参照ください。
-
表示
-
履歴レコードを表示します。
-
構文
tunnel show history [-n <number>];-n <number>:表示する履歴の件数を指定します。
-
例
例 1:履歴レコードを表示します。デフォルトでは、500 件のデータレコードが保存されます。
tunnel show history;次の結果が返されます。
20230505xxxxxxxxxxxxxx0b0d5b3c bad 'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -dbr true -time true' 20230505xxxxxxxxxxxxxx0ad720a3 failed 'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -time true' 20230505xxxxxxxxxxxxxx0ad5ca68 bad 'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -dbr true' ......例 2:直近 5 回のデータアップロードまたはダウンロードで使用されたコマンドを表示します。
tunnel show history -n 5;次の結果が返されます。
20230505xxxxxxxxxxxxxx0aa48c4b success 'download sale_detail/sale_date=201312,region=hangzhou result.txt' 20230505xxxxxxxxxxxxxx0aa6165c success 'download sale_detail/sale_date=201312,region=hangzhou result.txt' 20230505xxxxxxxxxxxxxx0af11472 failed 'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false' 20230505xxxxxxxxxxxxxx0b464374 success 'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false' 20230505xxxxxxxxxxxxxx02dbb6bd failed 'upload d:\data.txt sale_detail/sale_date="201312",region="hangzhou" -s false'
-
直近のデータアップロードまたはダウンロードのログを表示します。
tunnel show log;
再開
説明
過去の操作を再開します。再開できるのはデータのアップロードのみです。
-
構文
tunnel resume <session_id> [-force]; パラメーター
session_id
アップロードが失敗したセッション ID を指定します。このパラメーターは必須です。
-force
過去の操作を強制的に再開するかどうかを指定します。このパラメーターはデフォルトでは省略されます。
-
例
次のコマンドを実行して、アップロードが失敗したセッションを再開します。このコマンドでは、20150610xxxxxxxxxxx70a002ec60c はアップロードが失敗したセッション ID を示します。
tunnel resume 20150610xxxxxxxxxxx70a002ec60c -force; start resume 20150610xxxxxxxxxxx70a002ec60c Upload session: 20150610xxxxxxxxxxx70a002ec60c 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
ダウンロード
説明
MaxCompute テーブルデータ、または特定のインスタンスの実行結果をローカルディレクトリにダウンロードします。
トンネルを使用してデータをダウンロードする前に、ダウンロード権限を付与されている必要があります。ダウンロード権限がない場合は、プロジェクト所有者または Super_Administrator ロールが割り当てられているユーザーに連絡して、権限の付与を依頼してください。ダウンロード権限の付与方法の詳細については、「Policy-based access control」をご参照ください。
構文
odps@ project_name>tunnel help download; usage: tunnel download [options] <[project.]table[/partition]> <path> download data to local file -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -cf,-csv-format <ARG> use csv format (true|false), default false. When uploading in csv format, file splitting not supported. -ci,-columns-index <ARG> specify the columns index(starts from 0) to download, use comma to split each index -cn,-columns-name <ARG> specify the columns name to download, use comma to split each name -cp,-compress <ARG> compress, default true -dfp,-date-format-pattern <ARG> specify date format pattern, default yyyy-MM-dd HH:mm:ss -e,-exponential <ARG> When download double values, use exponential express if necessary. Otherwise at most 20 digits will be reserved. Default false -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. default "," -h,-header <ARG> if local file should have table header, default false -limit <ARG> specify the number of records to download -ni,-null-indicator <ARG> specify null indicator string, default ""(empty string) -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\dship -t,-threads <ARG> number of threads, default 1 -te,-tunnel_endpoint <ARG> tunnel endpoint -time,-time <ARG> keep track of upload/download elapsed time or not. Default false -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai usage: tunnel download [options] instance://<[project/]instance_id> <path> download instance result to local file -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -cf,-csv-format <ARG> use csv format (true|false), default false. When uploading in csv format, file splitting not supported. -ci,-columns-index <ARG> specify the columns index(starts from 0) to download, use comma to split each index -cn,-columns-name <ARG> specify the columns name to download, use comma to split each name -cp,-compress <ARG> compress, default true -dfp,-date-format-pattern <ARG> specify date format pattern, default yyyy-MM-dd HH:mm:ss -e,-exponential <ARG> When download double values, use exponential express if necessary. Otherwise at most 20 digits will be reserved. Default false -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. default "," -h,-header <ARG> if local file should have table header, default false -limit <ARG> specify the number of records to download -ni,-null-indicator <ARG> specify null indicator string, default ""(empty string) -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\dshi -t,-threads <ARG> number of threads, default 1 -te,-tunnel_endpoint <ARG> tunnel endpoint -time,-time <ARG> keep track of upload/download elapsed time or not. Default false -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai Example: tunnel download test_project.test_table/p1="b1", p2="b2" log.txt // 特定のテーブルからデータをダウンロードします。 tunnel download instance://test_project/test_instance log.txt // 特定のインスタンスの実行結果をダウンロードします。-
パラメーター
-
必須パラメーター
-
path
ダウンロードしたデータファイルの保存先パスを指定します。
データファイルの保存先パスは 2 つの方法で指定できます。ファイルを MaxCompute クライアントの
binディレクトリに直接ダウンロードすることもできます。この場合は、path パラメーターにfilename.extensionを指定します。または、D ドライブの test フォルダーなど別のパスにダウンロードすることもできます。この場合は、path パラメーターにD:\test\filename.extensionを指定します。 [project.]table[/partition]
ダウンロードするテーブル名を指定します。パーティションテーブルの場合は、最下位レベルのパーティションを指定する必要があります。テーブルが現在のプロジェクトに属していない場合は、テーブルが属するプロジェクトを指定する必要があります。
[project/]instance_id
インスタンスの ID を指定します。特定のインスタンスの実行結果をダウンロードできます。
-
任意パラメーター
-c
ローカルデータファイルの文字セットを指定します。デフォルト値は
ignoreで、生データをダウンロードすることを示します。-cf
ファイルが CSV 形式かどうかを指定します。デフォルト値は false です。
説明ダウンロードできるのは TXT ファイルと CSV ファイルのみです。デフォルトでは TXT ファイルがダウンロードされます。CSV ファイルをダウンロードする場合は、
-cfパラメーターを true に設定し、最新バージョンの MaxCompute クライアント をダウンロードする必要があります。-cfパラメーターを true に設定した場合、フィールド区切り文字はカンマ (,) のみになります。この場合、-fd パラメーターで指定した区切り文字は有効になりません。-ci
ダウンロードする列のインデックスを指定します。列インデックスは 0 から始まります。列インデックスはカンマ (,) で区切ります。
-cn
ダウンロードする列名を指定します。列名はカンマ (,) で区切ります。
-cp
ダウンロード時にデータを圧縮してネットワークトラフィックを削減するかどうかを指定します。デフォルト値は true です。
-dfp
DATETIME データの形式を指定します。デフォルトの形式は
yyyy-MM-dd HH:mm:ssです。-e
ダウンロードする DOUBLE 型のデータを指数表記で表すかどうかを指定します。指数表記で表さない場合は、最大 20 桁を保持します。デフォルト値は false です。
-fd
ローカルデータファイルのフィールド区切り文字を指定します。デフォルトの区切り文字はカンマ (,) です。
-h
データファイルにテーブルヘッダーが含まれるかどうかを指定します。デフォルト値は false です。この値は、データファイルにテーブルヘッダーが含まれないことを示します。このパラメーターを true に設定すると、データファイルにテーブルヘッダーが含まれます。
説明-h=trueとthreads>1は同時に使用できません。threads>1は、スレッド数が 1 より大きいことを意味します。-limit
ダウンロードするレコード数を指定します。
-ni
NULL データ識別子を指定します。デフォルト値は空文字列 ("") です。
-rd
ローカルデータファイルで使用するレコード区切り文字を指定します。デフォルト値は
\r\nです。-sd
セッションディレクトリを指定します。
-t
スレッド数を指定します。デフォルト値は 1 です。
-te
トンネルエンドポイントを指定します。
-time
ダウンロード時間を計測するかどうかを指定します。デフォルト値は false です。
-tz
タイムゾーンを指定します。デフォルトでは、
Asia/Shanghaiなどのローカルタイムゾーンが使用されます。
-
パージ
-
説明
セッションディレクトリからトンネルログファイルを削除します。
-
構文
tunnel purge [n]; -
パラメーター
n :指定した日数より古いトンネルログファイルを削除します。デフォルト値は 3 です。
Upsert
-
説明
UPDATE と INSERT のセマンティクスを使用してデータを書き込みます。宛先テーブルに一致するデータが見つからない場合は、新しいデータがテーブルに挿入されます。書き込むデータがすでに存在する場合は、テーブル内のデータが更新されます。
説明-
MaxCompute クライアント (odpscmd) を使用して
Upsertコマンドを実行するには、バージョン 0.47 以降を使用する必要があります。 UPSERT ステートメントを使用したデータの書き込みをサポートしているのは、トランザクションテーブル 2.0 のテーブルのみです。
-
構文
tunnel upsert[options] <path> <[project.]table[/partition]>オプション:
Available options: -acp,-auto-create-partition <ARG> auto create target partition if not exists, default false -bs,-block-size <ARG> block size in MiB, default 100 -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -cf,-csv-format <ARG> use csv format (true|false), default false. When uploading in csv format, file splitting not supported. -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 -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. 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) -qn,-quota_name <ARG> quota name -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -sd,-session-dir <ARG> set session dir, default /Users/dingxin/Documents/debug/plugin s/dship -ss,-strict-schema <ARG> specify strict schema mode. If false, extra data will be abandoned and insufficient field will be filled with null. Default true -te,-tunnel_endpoint <ARG> tunnel endpoint -time,-time <ARG> keep track of upload/download elapsed time or not. Default false -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai Example: tunnel upsert log.txt test_project.test_table/p1="b1",p2="b2"-
パラメーター
-
必須パラメーター
-
path
アップロードするデータファイルのパスと名前を指定します。
ファイルパスは次の 2 つの方法で指定できます。ファイルが MaxCompute クライアントの
binディレクトリにある場合は、path パラメーターにfilename.extensionを指定します。ファイルがD:\testなど別のディレクトリにある場合は、path パラメーターに絶対パス (例:D:\test\filename.extension) を指定します。Tunnel コマンドにはファイルサイズの制限がなく、10 MB を超えるファイルのアップロードをサポートしています。大容量ファイルのアップロードを最適化するには、-bs パラメーターを使用して各データブロックのサイズを調整できます (デフォルトは 100 MiB)。説明macOS では、path パラメーターの値に指定できるのは絶対パスのみです。たとえば、データファイルが MaxCompute クライアントの
binディレクトリに保存されている場合は、path パラメーターに'/path/to/bin/File name.File name extension'のような形式の値を指定する必要があります。 [project.]table[/partition]
データをアップロードするテーブル名を指定します。パーティションテーブルの場合は、最下位レベルのパーティションを指定する必要があります。テーブルが現在のプロジェクトに属していない場合は、テーブルが属するプロジェクトを指定する必要があります。
-
-
任意パラメーター
-acp
データをアップロードするパーティションを指定します。指定したパーティションが存在しない場合は、パーティションが自動的に作成されます。デフォルト値:False。
-
-bs
トンネルが 1 回の処理でアップロードするデータブロックのサイズを指定します。デフォルト値:100 MiB (1 MiB = 1024 × 1024 bytes)。
-c
データファイルの文字セットを指定します。デフォルトでは、このパラメーターは指定されず、生データがダウンロードされます。
-cf
ファイルが CSV ファイルかどうかを指定します。デフォルト値:False。
説明UPSERT ステートメントを使用してアップロードできるのは TXT ファイルと CSV ファイルのみです。デフォルトでは TXT ファイルがアップロードされます。CSV ファイルをアップロードする場合は、
-cfパラメーターを設定し、最新バージョンの MaxCompute クライアント をダウンロードする必要があります。-cp
ネットワークトラフィックを削減するために、MaxCompute にアップロードする前にローカルデータファイルを圧縮するかどうかを指定します。デフォルト値:True。
-dbr
追加の列、欠落した列、列データ型の不一致などのダーティデータを省略するかどうかを指定します。デフォルト値:False。
True:テーブル定義に一致しないすべてのデータを省略します。デフォルトでは 1000 件のデータレコードが省略されます。省略するデータレコード数を変更するには、-mbr パラメーターを指定します。
False:ダーティデータが検出されるとエラーが返されます。これにより、アップロード先テーブルの生データが汚染されるのを防ぎます。
-dfp
DATETIME データの形式を指定します。デフォルトの形式は
yyyy-MM-dd HH:mm:ssです。ミリ秒精度の DATETIME データを指定する場合は、yyyy-MM-dd HH:mm:ss.SSSを使用できます。DATETIME データ型の詳細については、「Data type editions」をご参照ください。-fd
ローカルデータファイルで使用する列デリミタを指定します。デフォルト値:カンマ (,)。
-h
アップロードするデータファイルにテーブルヘッダーが含まれるかどうかを指定します。デフォルト値:False。これは、データファイルにテーブルヘッダーを含めることができないことを意味します。このパラメーターを True に設定すると、データファイルにテーブルヘッダーを含めることができます。この場合、システムはテーブルヘッダーをスキップし、2 行目からデータをアップロードします。
-mbr
許容されるダーティデータレコードの最大数を指定します。このパラメーターは -dbr パラメーターと併用する必要があり、-dbr パラメーターが True に設定されている場合にのみ有効です。ダーティデータレコード数が指定値を超えると、アップロードは停止します。デフォルト値:1000。
-ni
NULL データ識別子を指定します。デフォルト値:空文字列。
-
-qn:MaxCompute へのアクセスに使用するトンネルクォータの名前です。
MaxCompute コンソールにログオンし、リージョンを選択してから、左側のナビゲーションウィンドウで ワークスペース > クォータ (Quota) 管理 を選択すると、クォータ名を確認できます。詳細については、「Compute resources - Quota management」をご参照ください。
-rd
ローカルデータファイルで使用する行デリミタを指定します。デフォルト値:
\r\n。-sd
セッションディレクトリを指定します。
-ss
厳密なスキーマモードを指定します。デフォルト値:True。このパラメーターを False に設定すると、余分なデータは破棄され、不足しているフィールドは NULL で補完されます。
-te
トンネルのエンドポイントを指定します。エンドポイントの詳細については、「Endpoints」をご参照ください。
-time
アップロードまたはダウンロードの経過時間を追跡するかどうかを指定します。デフォルト値:False。
-tz
タイムゾーンを指定します。デフォルト値:ローカルタイムゾーン (例: Asia/Shanghai)。タイムゾーンの詳細については、「Time zones」をご参照ください。
-
注意事項
-
次の表で、データ型について説明します。
データ型
説明
STRING
最大長 8 MB の文字列。
BOOLEAN
ファイルアップロード時は、値に True、False、0、または 1 を使用できます。ファイルダウンロード時は、値に True または False を使用できます。値は、大文字と小文字を区別しません。
BIGINT
有効な値: [-9223372036854775807,9223372036854775807]。
DOUBLE
有効桁数が 16 桁の数値。
この型のデータは、データアップロード時に科学表記法で表現されます。
この型のデータは、データダウンロード時に数値で表現されます。
最大値: 1.7976931348623157E308。
最小値: 4.9E-324。
正の無限大: Infinity。
負の無限大: -Infinity。
DATETIME
デフォルトでは、タイムゾーンが GMT+8 の場合、DATETIME 型のデータをアップロードできます。コマンドラインで、この型のフォーマットパターンを指定できます。この型のデータをアップロードする場合は、時刻形式を指定する必要があります。詳細については、「データ型エディション」をご参照ください。
"yyyyMMddHHmmss":例:"20140209101000" "yyyy-MM-dd HH:mm:ss" (デフォルト形式):例:"2014-02-09 10:10:00" "MM/dd/yyyy":例:"09/01/2014"例:
tunnel upload log.txt test_table -dfp "yyyy-MM-dd HH:mm:ss" -
NULL:各データ型は NULL 値を持つことができます。
デフォルトでは、空文字列が NULL 値と見なされます。
-
-null-indicator (省略形:-ni) パラメーターで NULL 文字列を指定します。
tunnel upload log.txt test_table -ni "NULL"
-
エンコーディング形式:ファイルのエンコーディング形式を指定できます。デフォルト値: UTF-8。
tunnel upload log.txt test_table -c "gbk" -
区切り文字:Tunnel コマンドは、カスタムファイル区切り文字に対応しています。-record-delimiter (省略形:-rd) で行区切り文字を、-field-delimiter (省略形:-fd) で列区切り文字をカスタマイズします。
行または列の区切り文字は、複数の文字で指定できます。
列区切り文字に行区切り文字を含めることはできません。
コマンドラインで、区切り文字としてエスケープ文字を使用する場合、サポートされているのは \r、\n、\t のみです。
tunnel upload log.txt test_table -fd "||" -rd "\r\n"