すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:Tunnel コマンド

最終更新日:Jun 03, 2025

オンプレミス環境と 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 つのデータのダウンロードまたはアップロードは、セッションと呼ばれます。このコマンドを実行する前に、セッション IDresume コマンドで指定する必要があります。

      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 ディレクトリにデータファイルを保存できます。この場合、pathFile name.File name extension 形式の値に設定する必要があります。D ドライブのテストフォルダなど、別のディレクトリにデータファイルを保存することもできます。この場合、pathD:\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=truethreads>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"

参考資料