オンプレミス環境と MaxCompute の間で大量のデータを転送する場合、MaxCompute が提供する Tunnel コマンドを実行してデータをアップロードおよびダウンロードできます。Tunnel コマンドを実行して、バッチデータまたは増分データをアップロードおよびダウンロードし、大規模なデータ転送中の効率とセキュリティを向上させることができます。このトピックでは、Tunnel コマンドを使用してデータをアップロードおよびダウンロードする方法について説明します。
コマンドの説明
構文
tunnel <subcommand> [options] [args]オプション
Available subcommands: upload (u) download (d) resume (r) show (s) purge (p) help (h) upsert(us)パラメーター
upload: データを MaxCompute テーブルにアップロードします。一度に 1 つのテーブルまたはテーブル内の 1 つのパーティションのみにファイルをアップロードできます。パーティションテーブルの場合は、データをアップロードするパーティションを指定する必要があります。複数レベルのパーティションテーブルの場合は、最下位レベルのパーティションを指定する必要があります。
-- Upload data in the log.txt file to the p1="b1" and p2="b2" partitions of the test_table table that has two levels of partitions in the test_project project. The log.txt file is saved in the bin directory of the MaxCompute client. tunnel upload log.txt test_project.test_table/p1="b1",p2="b2"; -- Upload data in the log.txt file to the test_table table. The scan parameter is used to check whether data in the log.txt file complies with the schema of the test_table table. If the data does not comply, the system reports an error and stops the upload. tunnel upload log.txt test_table --scan=true; -- Upload data in the log.txt file from another directory to the p1="b1" and p2="b2" partitions of the test_table table that has two levels of partitions in the test_project project. tunnel upload D:\test\log.txt test_project.test_table/p1="b1",p2="b2";download: MaxCompute テーブルからデータをダウンロードします。一度に 1 つのテーブルまたはパーティションから 1 つのローカルファイルにのみデータをダウンロードできます。パーティションテーブルの場合は、データをダウンロードするパーティションを指定する必要があります。複数レベルのパーティションテーブルの場合は、最下位レベルのパーティションを指定する必要があります。
-- Download data from the test_project.test_table table, which has two levels of partitions, to the test_table.txt file in the bin directory of the MaxCompute client. tunnel download test_project.test_table/p1="b1",p2="b2" test_table.txt; -- Download data from the test_project.test_table table, which has two levels of partitions, to the test_table.txt file in another directory. tunnel download test_project.test_table/p1="b1",p2="b2" D:\test\test_table.txt;resume: ファイルまたはディレクトリの転送を再開します。ネットワークが切断された場合、または Tunnel に障害が発生した場合、転送は中断されます。このコマンドを使用して、データのアップロードのみを再開できます。1 つのデータのダウンロードまたはアップロードは、セッションと呼ばれます。このコマンドを実行する前に、セッション ID を resume コマンドで指定する必要があります。
tunnel resume;show: 履歴タスク情報を表示します。
-- Display the commands used in the last five data uploads or downloads. tunnel show history -n 5; -- Display the logs of the last data upload or download. tunnel show log;purge: セッションディレクトリをクリアします。デフォルトでは、過去 3 日間のログがクリアされます。
-- Clear logs from the last five days. tunnel purge 5;help: ヘルプ情報を取得します。
upsert: UPDATE および INSERT セマンティクスを使用してデータを書き込みます。Transaction Table 2.0 テーブルのみが、UPSERT 文によるデータ書き込みをサポートしています。
一致するデータがデスティネーションテーブルに見つからない場合は、新しいデータがテーブルに挿入されます。書き込むデータが既に存在する場合は、テーブル内のデータが更新されます。
-- Upload data in the log.txt file to the p1="b1" and p2="b2" partitions of the test_table table that has two levels of partitions in the test_project project. The log.txt file is saved in the bin directory of the MaxCompute client. tunnel upsert log.txt test_project.test_table/p1="b1",p2="b2";
Upload
説明
ローカルデータを追記モードで MaxCompute テーブルにアップロードします。
説明追記モード: インポートするデータが MaxCompute テーブルに既に存在する場合、Upload コマンドを実行した後もデータは上書きされません。この場合、既存のデータとインポートされたデータの両方が MaxCompute テーブルに存在します。
構文
tunnel upload [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) -ow,-overwrite <true | false> overwrite specified table or partition, default: false -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -s,-scan <ARG> specify scan file action(true|false|only), default true -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\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 -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 upload log.txt test_project.test_table/p1="b1",p2="b2"パラメーター
必須パラメーター
path
アップロードするデータファイルのパスと名前を指定します。
データファイルは、MaxCompute クライアントの
binディレクトリに保存できます。この場合、path パラメーターをファイル名.ファイル名拡張子形式の値に設定する必要があります。また、データファイルをドライブ D の test フォルダなど、別のディレクトリに保存することもできます。この場合、path パラメーターをD:\test\ファイル名.ファイル名拡張子形式の値に設定する必要があります。説明macOS では、path パラメーターの値は絶対パスのみ可能です。たとえば、データファイルが MaxCompute クライアントの
binディレクトリに保存されている場合、path パラメーターを/Users/ユーザー名/MaxCompute/bin/ファイル名.ファイル名拡張子形式の値に設定する必要があります。[project.]table[/partition]
データをアップロードするテーブルの名前を指定します。パーティションテーブルの場合は、最下位レベルのパーティションを指定する必要があります。テーブルが現在のプロジェクトに属していない場合は、テーブルが配置されているプロジェクトを指定する必要があります。
オプションパラメーター
-acp
データをアップロードするパーティションを指定します。指定されたパーティションが存在しない場合は、パーティションが自動的に作成されます。デフォルト値: False。
-bs
Tunnel によって一度にアップロードされるデータブロックのサイズを指定します。デフォルト値: 100 MiB(1 MiB = 1024 × 1024 バイト)。
-c
データファイルのエンコード形式を指定します。デフォルトでは、このパラメーターは指定されておらず、生データがダウンロードされます。
-cf
ファイルが CSV ファイルかどうかを指定します。デフォルト値: False。
説明Upload コマンドを使用して、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 データ型の詳細については、「データ型エディション」をご参照ください。-fd
ローカルデータファイルで使用される列区切り文字を指定します。デフォルト値: カンマ (,)。
-h
アップロードするデータファイルにテーブルヘッダーがあるかどうかを指定します。デフォルト値: False。この値は、データファイルにテーブルヘッダーを含めることができないことを示します。このパラメーターを True に設定すると、データファイルにテーブルヘッダーを含めることができます。この場合、システムはテーブルヘッダーをスキップし、2 行目からデータをアップロードします。
-mbr
ダーティデータレコードの最大許容数を指定します。このパラメーターは、-dbr パラメーターと組み合わせて使用する必要があり、-dbr パラメーターが True に設定されている場合にのみ有効です。ダーティデータレコードの最大数を指定します。ダーティデータレコードの数が指定された値を超えると、アップロードは停止します。デフォルト値: 1000。
-ni
NULL データ識別子を指定します。デフォルト値: 空の文字列。
-ow
アップロードされたデータがテーブルまたはパーティションを上書きするかどうかを指定します。デフォルト値: False。この値は、データが追記モードでアップロードされることを示します。次のコードは例を示しています。
-- Create a partitioned 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'); -- Prepare the local data file data.txt. The file contains the following content: shopx,x_id,100 shopy,y_id,200 -- Upload data to the partitioned table. tunnel upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou; -- Query the sale_detail table. select * from sale_detail; -- The following result is returned: +------------+-------------+-------------+------------+------------+ | shop_name | customer_id | total_price | sale_date | region | +------------+-------------+-------------+------------+------------+ | shopx | x_id | 100.0 | 201312 | hangzhou | | shopy | y_id | 200.0 | 201312 | hangzhou | +------------+-------------+-------------+------------+------------+ -- Modify the data in the file data.txt. The file contains the following content: shopx,x_id,300 shopy,y_id,400 -- Upload the file after the data in the file is modified. The new file overwrites the existing file. tunnel upload -ow true data.txt sale_detail/sale_date=201312,region=hangzhou; -- Query the sale_detail table. select * from sale_detail; -- The following result is returned: +------------+-------------+-------------+------------+------------+ | 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)。タイムゾーンの詳細については、「タイムゾーン」をご参照ください。
Show
履歴レコードを表示します。
構文
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;
Resume
説明
履歴操作の実行を再開します。データのアップロードのみを再開できます。
構文
odps@ project_name>tunnel help resume; usage: tunnel resume [session_id] [-force] resume an upload session -f,-force force resume Example: tunnel resumeパラメーター
session_id
アップロードに失敗したセッションの ID を指定します。これは必須パラメーターです。
-f
履歴操作の実行を強制的に再開するかどうかを指定します。このパラメーターは、デフォルトでは省略されます。
例
次のコマンドを実行して、アップロードに失敗したセッションを再開します。このコマンドでは、20150610xxxxxxxxxxx70a002ec60c は、アップロードに失敗したセッションの ID を示します。
odps@ project_name>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
Download
説明
MaxComputeテーブルデータまたは特定のインスタンスの実行結果をローカルディレクトリにダウンロードします。 Tunnelを使用してデータをダウンロードする前に、ダウンロード権限を付与する必要があります。 ダウンロード権限がない場合は、プロジェクトの所有者またはSuper_Administratorロールが割り当てられているユーザーに連絡して承認を完了する必要があります。
詳細については、「ポリシーベースのアクセス制御」をご参照ください。
構文
odps@ project_name>tunnel help download; usage: tunnel download [options] <[project.]table[/partition]> <path> ローカルファイルにデータをダウンロードします -c,-charset <ARG> ファイルの文字セットを指定します。デフォルトは無視です。 生データをダウンロードするには、無視を設定します -cf,-csv-format <ARG> CSV フォーマットを使用します (true|false)。デフォルトは false です。CSV フォーマットでアップロードする場合、 ファイル分割はサポートされていません。 -ci,-columns-index <ARG> ダウンロードする列のインデックス (0 から開始) を指定します。各インデックスを区切るには カンマを使用します -cn,-columns-name <ARG> ダウンロードする列の名前を指定します。各名前を区切るには カンマを使用します -cp,-compress <ARG> 圧縮します。デフォルトは true です -dfp,-date-format-pattern <ARG> 日付フォーマットパターンを指定します。デフォルトは yyyy-MM-dd HH:mm:ss です -e,-exponential <ARG> 倍精度値をダウンロードする場合、必要に応じて指数表現を使用します。 それ以外の場合は、最大 20 桁が保持されます。デフォルトは false です -fd,-field-delimiter <ARG> フィールドデリミタを指定します。Unicode をサポートします (例: \u0001)。デフォルトは "," です -h,-header <ARG> ローカルファイルにテーブルヘッダーを含めるかどうかを指定します。デフォルトは false です -limit <ARG> ダウンロードするレコード数を指定します -ni,-null-indicator <ARG> null インジケータ文字列を指定します。デフォルトは "" (空の文字列) です -rd,-record-delimiter <ARG> レコードデリミタを指定します。Unicode をサポートします (例: \u0001)。デフォルトは "\r\n" です -sd,-session-dir <ARG> セッションディレクトリを設定します。デフォルトは D:\software\odpscmd_public\plugins\dship です -t,-threads <ARG> スレッド数。デフォルトは 1 です -te,-tunnel_endpoint <ARG> トンネルエンドポイント -time,-time <ARG> アップロード/ダウンロードの経過時間を追跡するかどうか。デフォルトは false です -tz,-time-zone <ARG> タイムゾーン。デフォルトはローカルタイムゾーン (Asia/Shanghai) です usage: tunnel download [options] instance://<[project/]instance_id> <path> インスタンスの結果をローカルファイルにダウンロードします -c,-charset <ARG> ファイルの文字セットを指定します。デフォルトは無視です。 生データをダウンロードするには、無視を設定します -cf,-csv-format <ARG> CSV フォーマットを使用します (true|false)。デフォルトは false です。CSV フォーマットでアップロードする場合、 ファイル分割はサポートされていません。 -ci,-columns-index <ARG> ダウンロードする列のインデックス (0 から開始) を指定します。各インデックスを区切るには カンマを使用します -cn,-columns-name <ARG> ダウンロードする列の名前を指定します。各名前を区切るには カンマを使用します -cp,-compress <ARG> 圧縮します。デフォルトは true です -dfp,-date-format-pattern <ARG> 日付フォーマットパターンを指定します。デフォルトは yyyy-MM-dd HH:mm:ss です -e,-exponential <ARG> 倍精度値をダウンロードする場合、必要に応じて指数表現を使用します。 それ以外の場合は、最大 20 桁が保持されます。デフォルトは false です -fd,-field-delimiter <ARG> フィールドデリミタを指定します。Unicode をサポートします (例: \u0001)。デフォルトは "," です -h,-header <ARG> ローカルファイルにテーブルヘッダーを含めるかどうかを指定します。デフォルトは false です -limit <ARG> ダウンロードするレコード数を指定します -ni,-null-indicator <ARG> null インジケータ文字列を指定します。デフォルトは "" (空の文字列) です -rd,-record-delimiter <ARG> レコードデリミタを指定します。Unicode をサポートします (例: \u0001)。デフォルトは "\r\n" です -sd,-session-dir <ARG> セッションディレクトリを設定します。デフォルトは D:\software\odpscmd_public\plugins\dshi です -t,-threads <ARG> スレッド数。デフォルトは 1 です -te,-tunnel_endpoint <ARG> トンネルエンドポイント -time,-time <ARG> アップロード/ダウンロードの経過時間を追跡するかどうか。デフォルトは false です -tz,-time-zone <ARG> タイムゾーン。デフォルトはローカルタイムゾーン (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
ダウンロードしたデータファイルが保存されるパスを指定します。
MaxCompute クライアントの
binディレクトリにデータファイルを保存できます。この場合、path をFile name.File name extension形式の値に設定する必要があります。D ドライブのテストフォルダなど、別のディレクトリにデータファイルを保存することもできます。この場合、path をD:\test\File name.File name extension形式の値に設定する必要があります。[project.]table[/partition]
ダウンロードするテーブルの名前を指定します。パーティションテーブルの場合は、最下位レベルのパーティションを指定する必要があります。テーブルが現在のプロジェクトに属していない場合は、テーブルが配置されているプロジェクトを指定する必要があります。
[project/]instance_id
インスタンスの ID を指定します。特定のインスタンスの実行結果をダウンロードできます。
オプションパラメーター
-c
ローカルデータファイルのエンコード形式を指定します。このパラメーターはデフォルトでは省略されます。
-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
Tunnel のエンドポイントを指定します。
-time
ダウンロード時間を追跡するかどうかを指定します。デフォルト値:False。
-tz
タイムゾーンを指定します。デフォルトでは、Asia/Shanghai などのローカルタイムゾーンが使用されます。
消去
説明
セッションディレクトリをクリアします。
構文
odps@ project_name>tunnel help purge; // tunnel purge の使用方法 usage: tunnel purge [n] force session history to be purged.([n] 日前、デフォルトは3日) // 例 Example: tunnel purge 5パラメータ
n: 履歴ログがクリアされるまでの日数を指定します。 デフォルト値:3。
Upsert
説明
UPDATE と INSERT のセマンティクスを使用してデータを書き込みます。一致するデータがデスティネーションテーブルに見つからない場合は、新しいデータがテーブルに挿入されます。書き込むデータが既に存在する場合は、テーブル内のデータが更新されます。
説明MaxCompute クライアント (odpscmd) を使用して UPSERT 文を実行する場合は、クライアントのバージョンが V0.47 以降であることを確認してください。
トランザクションテーブル 2.0 テーブルのみが、UPSERT 文を使用したデータ書き込みをサポートしています。
構文
tunnel upsert[options] <path> <[project.]table[/partition]>形式:
Available options: -acp,-auto-create-partition <ARG> ターゲットパーティションが存在しない場合に自動作成、デフォルトは false -bs,-block-size <ARG> ブロックサイズ(MiB)、デフォルトは 100 -c,-charset <ARG> ファイルの文字セットを指定、デフォルトは無視。 無視に設定すると、生データがダウンロードされます -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> 不正なレコードの最大数、デフォルトは 1000 -ni,-null-indicator <ARG> NULL インジケータ文字列を指定、 デフォルトは ""(空の文字列) -qn,-quota_name <ARG> クォータ名 -rd,-record-delimiter <ARG> レコード区切り文字を指定、Unicode をサポート、例: \u0001。デフォルトは "\n" -sd,-session-dir <ARG> セッションディレクトリを設定、デフォルトは /Users/dingxin/Documents/debug/plugin s/dship -ss,-strict-schema <ARG> 厳密なスキーママモードを指定。false の場合、 余分なデータは破棄され、不足しているフィールドは NULL で埋められます。デフォルトは true -te,-tunnel_endpoint <ARG> Tunnel エンドポイント -time,-time <ARG> アップロード/ダウンロードの経過時間を追跡するかどうか。デフォルトは false -tz,-time-zone <ARG> タイムゾーン、デフォルトはローカルタイムゾーン: Asia/Shanghai Example: tunnel upsert log.txt test_project.test_table/p1="b1",p2="b2"パラメーター
必須パラメーター
path
アップロードするデータファイルのパスと名前を指定します。
データファイルは、MaxCompute クライアントの
binディレクトリに保存できます。この場合、path パラメーターをファイル名.ファイル拡張子形式の値に設定する必要があります。また、データファイルをドライブ D の test フォルダなどの別のディレクトリに保存することもできます。この場合、path パラメーターをD:\test\ファイル名.ファイル拡張子形式の値に設定する必要があります。説明macOS では、path パラメーターの値は絶対パスのみ可能です。たとえば、データファイルが MaxCompute クライアントの
binディレクトリに保存されている場合は、path パラメーターをD:\MaxCompute\bin\ファイル名.ファイル拡張子形式の値に設定する必要があります。[project.]table[/partition]
データをアップロードするテーブルの名前を指定します。パーティションテーブルの場合は、最下位レベルのパーティションを指定する必要があります。テーブルが現在のプロジェクトに属していない場合は、テーブルが配置されているプロジェクトを指定する必要があります。
オプションパラメーター
-acp
データをアップロードするパーティションを指定します。指定したパーティションが存在しない場合は、パーティションが自動的に作成されます。デフォルト値: False。
-bs
Tunnel によって毎回アップロードされるデータブロックのサイズを指定します。デフォルト値: 100 MiB(1 MiB = 1024 × 1024 バイト)。
-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 データ型の詳細については、「データ型エディション」をご参照ください。-fd
ローカルデータファイルで使用される列区切り文字を指定します。デフォルト値: カンマ (,)。
-h
アップロードするデータファイルにテーブルヘッダーが含まれているかどうかを指定します。デフォルト値: False。この値は、データファイルにテーブルヘッダーを含めることができないことを示します。このパラメーターを True に設定すると、データファイルにテーブルヘッダーを含めることができます。この場合、システムはテーブルヘッダーをスキップし、2 行目からデータをアップロードします。
-mbr
ダーティデータレコードの許容最大数を指定します。このパラメーターは、-dbr パラメーターと組み合わせて使用する必要があり、-dbr パラメーターが True に設定されている場合にのみ有効です。ダーティデータレコードの最大数を指定します。ダーティデータレコードの数が指定された値を超えると、アップロードは停止します。デフォルト値: 1000。
-ni
NULL データ識別子を指定します。デフォルト値: 空の文字列。
-qn: MaxCompute へのアクセスに使用される Tunnel クォータの名前。
MaxCompute コンソール にログインし、上部のナビゲーションバーでリージョンを選択し、左側のナビゲーションウィンドウで [ワークスペース] > [クォータ] を選択して、クォータ名を表示できます。詳細については、「新しい MaxCompute コンソールでのクォータの管理」をご参照ください。
-rd
ローカルデータファイルで使用される行区切り文字を指定します。デフォルト値:
\r\n。-sd
セッションディレクトリを指定します。
-ss
厳密なスキーママモードを指定します。デフォルト値: True。このパラメーターを False に設定すると、不要なデータが破棄され、指定されていないフィールドは NULL で埋められます。
-te
Tunnel のエンドポイントを指定します。エンドポイントの詳細については、「エンドポイント」をご参照ください。
-time
アップロード時間を追跡するかどうかを指定します。デフォルト値: False。
-tz
タイムゾーンを指定します。デフォルト値: ローカルタイムゾーン(Asia/Shanghai など)。タイムゾーンの詳細については、「タイムゾーン」をご参照ください。
注意事項
次の表は、データ型について説明しています。
データ型
説明
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 パラメーターを使用して、null 文字列を指定します。
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 "\r\n"