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

MaxCompute:トンネルコマンド

最終更新日:Aug 19, 2026

オンプレミス環境と 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=truethreads>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"

リファレンス