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

MaxCompute:odpscmd を使用した MaxCompute への接続

最終更新日:Jun 13, 2026

MaxCompute クライアント (odpscmd) は、ローカルマシンからコマンドを実行し、プロジェクトを管理できるコマンドラインインターフェイス (CLI) です。本トピックでは、odpscmd のダウンロード、インストール、構成、および使用方法について説明します。

前提条件

  • MaxCompute クライアントには Java 8 以降が必要です。

  • バージョン互換性

    • MaxCompute クライアント v0.28.0 以降は JDK 1.9 以降をサポートしています。v0.28.0 より前のバージョンは JDK 1.8 のみをサポートしています。MaxCompute クライアントの起動後、コマンドラインインターフェイスでクライアントのバージョンを確認できます。

    • MaxCompute クライアントの出力フォーマットは下位互換性がありません。クライアントのバージョンによってコマンド形式や動作が異なる場合があります。クライアントの出力フォーマットを解析用途で使用しないでください。

    • その他のクライアントバージョンについては、aliyun-odps-console をご参照ください。

  • 文字コード

    クライアントはデフォルトで UTF-8 を使用します。ローカル環境の文字コードが UTF-8 でない場合、MaxCompute テーブルから中国語を含むデータをクエリしたり、Tunnel コマンドを使用して中国語を含むローカルファイルをアップロードしたりすると、文字化けが発生する可能性があります。

課金

MaxCompute クライアントを使用してプロジェクトに接続する操作は無料ですが、クライアント経由で実行される操作は MaxCompute の課金対象となります。たとえば、SQL クエリを送信すると計算リソースが消費され、データを書き込むとストレージ領域が使用されます。これにより、計算およびストレージコストが発生します。MaxCompute の課金に関する詳細については、「課金対象項目と課金方法」をご参照ください。

odpscmd のインストールと構成

odpscmd v0.27.0 以降は MaxCompute 2.0 のデータ型をサポートしています。これらのデータ型を使用することを推奨します。サポートされているデータ型の一覧については、「データ型 (V2.0)」をご参照ください。

操作手順

  1. odpscmd インストールパッケージ (GitHub) をダウンロードします。

    説明
    • リリースページにアクセスし、最新バージョンの odpscmd インストールパッケージ (odpscmd_public.zip) をダウンロードします。

    • GitHub のリンクからパッケージをダウンロードできない場合は、odpscmd インストールパッケージ (OSS) をダウンロードしてください。GitHub へのアクセスに問題がある場合は、オンラインで解決策を検索することを推奨します。

  2. ダウンロードしたパッケージを解凍します。展開されたディレクトリには、binconflib、および plugins フォルダが含まれています。

  3. conf フォルダに移動し、odps_config.ini ファイルを構成します。

    odps_config.ini ファイルでは、シャープ記号 (#) がコメントを示します。次の表にパラメーターを示します。

    パラメーター

    必須

    説明

    project_name

    はい

    送信先 MaxCompute プロジェクトの名前。

    標準モードでワークスペースを作成した場合、project_name パラメーターを構成する際に、本番環境と開発環境 (_dev) のプロジェクト名を区別する必要があります。詳細については、「ワークスペースモードの違い」をご参照ください。

    1. MaxCompute コンソール にログインし、左上隅でリージョンを選択します。

    2. 左側のナビゲーションウィンドウで、構成の管理 > プロジェクト管理 を選択します。

    3. プロジェクト管理 ページで、MaxCompute プロジェクト名を確認します。

    doc_test_dev

    access_id

    はい

    Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID。AccessKey ID は AccessKey 管理 ページから取得します。

    N/A

    access_key

    はい

    AccessKey ID に対応する AccessKey Secret。

    N/A

    end_point

    はい

    MaxCompute サービスのエンドポイント。

    ご利用の MaxCompute プロジェクトが配置されているリージョンおよびネットワーク接続タイプに基づいてエンドポイントを構成する必要があります。リージョンおよびネットワークタイプ別のエンドポイントの一覧については、「エンドポイント」をご参照ください。

    重要
    • エンドポイントは MaxCompute サービスに接続し、トンネルエンドポイントは MaxCompute Tunnel サービスに接続します。ここでは MaxCompute サービスのエンドポイントを指定してください。

    • エンドポイントの構成が誤っていると、アクセスエラーが発生します。

    http://service.cn-hangzhou.maxcompute.aliyun.com/api

    log_view_host

    いいえ

    LogView URL。このパラメーターの構成を推奨します。構成しない場合、ジョブ失敗の原因を迅速に特定できなくなる可能性があります。

    この URL を使用して、ジョブのランタイム情報を詳細に表示し、エラーをトラブルシューティングできます。固定値は http://logview.odps.aliyun.com です。

    http://logview.odps.aliyun.com

    https_check

    いいえ

    MaxCompute プロジェクトへのアクセスリクエストを HTTPS で暗号化するかどうかを指定します。有効な値:

    • True:HTTPS を有効にします。

    • False:HTTP を使用します。

    デフォルト値は False です。

    True

    data_size_confirm

    いいえ

    入力データサイズの最大値 (単位:GB)。上限はありません。推奨値:100。

    100

    update_url

    いいえ

    このパラメーターは将来の使用のために予約されています。

    N/A

    use_instance_tunnel

    いいえ

    InstanceTunnel を使用して SQL 実行結果をダウンロードするかどうかを指定します。有効な値:

    • True:InstanceTunnel を使用して SQL 実行結果をダウンロードします。

    • False: InstanceTunnel を使用して SQL 実行結果をダウンロードしないでください。

    デフォルト値は False です。

    True

    instance_tunnel_max_record

    いいえ

    SQL 実行結果の最大レコード数。use_instance_tunnelTrue に設定されている場合、このパラメーターを構成する必要があります。最大値は 10,000 です。

    10000

    tunnel_endpoint

    いいえ

    Tunnel サービスのパブリックエンドポイント。

    • このパラメーターを構成しない場合、Tunnel は自動的に MaxCompute サービスのネットワークに対応するトンネルエンドポイントにリクエストをルーティングします。

    • トンネルエンドポイントを構成した場合、Tunnel はその値を使用し、自動ルーティングを行いません。

    リージョンおよびネットワークタイプ別のトンネルエンドポイントの一覧については、「エンドポイント」をご参照ください。

    http://dt.cn-hangzhou.maxcompute.aliyun.com

    set.<key>

    いいえ

    MaxCompute プロジェクトのプロパティを設定します。

    プロパティの詳細については、「プロパティ一覧」をご参照ください。

    set.odps.sql.decimal.odps2=true

    上記の情報を正しく構成してください。構成ミスにより、プロジェクトへの接続が失敗する可能性があります。

MaxCompute クライアントの起動

  1. MaxCompute プロジェクトの作成を行います。

  2. RAM ユーザーとして MaxCompute クライアントを使用する場合は、Alibaba Cloud アカウントを使用して RAM ユーザーを対象の MaxCompute プロジェクトに追加します。ユーザーの追加方法の詳細については、「他のユーザーへの権限付与」をご参照ください。

  3. 次のいずれかの方法で MaxCompute クライアントを起動します。

    スクリプトファイル

    MaxCompute クライアントのインストールディレクトリにある bin ディレクトリで、Windows の場合は odpscmd.bat を、macOS の場合は odpscmd をダブルクリックして MaxCompute クライアントを起動します。次の出力が表示されると、MaxCompute プロジェクトへの接続が成功しています。

    odpscmd
    Aliyun ODPS Command Line Tool
    Version 0.4xxx
    @Copyright 2020 Alibaba Cloud Computing Co., Ltd. All rights reserved.
    Connecting to http://service.xxx.maxcompute.aliyun.com/api, project: xxx
    Executing predefined SET command: SET odps.sql.hive.compatible=true
    OK
    Endpoint: http://service.xxx.maxcompute.aliyun.com/api
    Project: xxx
    Schema: default
    Quota: default in region N/A
    Timezone: Asia/Shanghai
    Connected!

    コマンドラインウィンドウ

    コマンドラインウィンドウで、MaxCompute クライアントのインストールディレクトリにある bin ディレクトリに移動します。Windows では odpscmd を、Linux または macOS では sh odpscmd を実行して MaxCompute クライアントを起動します。成功メッセージが表示されると、クライアントが MaxCompute プロジェクトに接続されています。

    説明

    Ubuntu では、sh odpscmd を実行するとエラーが返されます。./odpscmd を代わりに使用してください。

    コマンドラインウィンドウから MaxCompute クライアントを起動する際、スタートアップパラメーターを指定してコマンドを実行できます。詳細については、「スタートアップパラメーター」をご参照ください。

MaxCompute クライアントの操作

コマンドヘルプ

次のいずれかの方法で MaxCompute クライアントコマンドのヘルプを取得できます。

MaxCompute クライアント内

  • すべてのコマンドのヘルプを表示します。

    odps@project_name>help;
    -- 次のコマンドも同等です。
    odps@project_name>h;
  • 特定のキーワードに関連するコマンドのヘルプを表示します。

    たとえば、テーブル関連のコマンドのヘルプを取得するには、次のコマンドを実行します。

    odps@project_name>help table;
    -- 次のような出力が返されます。
    Usage: alter table <tablename> merge smallfiles
    Usage: export table <tablename>
    Usage: show tables [in <project_name>] [like '<prefix>']
           list|ls tables [-p,-project <project_name>]
    Usage: describe|desc [<projectname>.]<tablename> [partition(<spec>)]
    Usage: read [<project_name>.]<table_name> [(<col_name>[,..])] [PARTITION (<partition_spec>)] [line_num]
    重要

    read コマンドは SQL 構文を使用し、SQL 課金の対象となります。

システム CLI から

システムのコマンドラインウィンドウで、MaxCompute クライアントのインストールディレクトリにある bin ディレクトリに移動します。その後、次のコマンドを実行してすべてのコマンドのヘルプを表示します。コマンドラインウィンドウから MaxCompute クライアントを起動する際に一連のパラメーターを指定できます。パラメーターの詳細については、「パラメーター」をご参照ください。

...\odpscmd\bin>odpscmd -h

現在のユーザー情報

次のコマンドを実行して現在のユーザー情報を取得します。

odps@project_name>whoami;

出力には次のフィールドが含まれます。

  • Name:現在のアカウント。

  • Source IP:MaxCompute クライアントを実行しているデバイスの IP アドレス。

  • End_Point:MaxCompute サービスのエンドポイント。

  • Project:プロジェクト名。

  • Schema:プロジェクト内のスキーマ。

MaxCompute クライアントの終了

次のコマンドを実行して MaxCompute クライアントを終了します。

odps@project_name>quit;
-- 次のコマンドも同等です。
odps@project_name>q;

tunnel download コマンド

  • tunnel download コマンドを初めて実行すると、MaxCompute クライアントはインストールディレクトリの plugins/dship ディレクトリにログ用のセッションフォルダを作成します。

  • 複数のユーザーが同一デバイスで tunnel download コマンドを実行する場合、次の方法でデータセキュリティを確保します。

    • オペレーティングシステムの権限設定を使用して、セッションフォルダへのアクセスを制御します。

    • -sd <new_session_folder_name> または -session-dir <new_session_folder_name> パラメーターを tunnel download コマンドに追加して、別のセッションフォルダにデータをダウンロードします。tunnel download コマンドの詳細については、「ダウンロード」をご参照ください。

関連ドキュメント

MaxCompute クライアントにログイン後、MaxCompute プロジェクト内で SQL コマンドを実行できます。詳細については、「MaxCompute クライアントの使用」をご参照ください。

MaxCompute クライアントのコマンド構文の詳細については、「コマンドリファレンス」または「SQL コマンドと関数」をご参照ください。

よくある質問

odps_config.ini ファイルを構成して MaxCompute クライアントを起動した後、次の一般的なエラーが発生する場合があります。

エラー: no java found

  • 原因

    MaxCompute クライアントを実行しているマシンに Java がインストールされていません。

  • 解決策

    マシンに Java をインストールし、環境変数を構成します。MaxCompute クライアント v0.28.0 以降は JDK 1.9 以上をサポートしています。それより前のバージョンは JDK 1.8 のみをサポートしています。

エラー: Could not find or load main class com.aliyun.openservices.odps.console.ODPSConsole

  • 原因

    クライアントパッケージを 2 回ダウンロードしたため、ディレクトリ名が自動的に odpscmd_public (1) に変更された可能性があります。スペースなどの特殊文字を含むディレクトリ名は、パス解決に失敗する原因になります。

  • 解決策

    ディレクトリ名からスペースやその他の特殊文字を削除してください。

エラー: Accessing project '<projectname>' failed: ODPS-0420111: Project not found - '<projectname>'.

  • 原因

    odps_config.ini ファイルのプロジェクト名が誤っている可能性があります。

  • 解決策

    1. MaxCompute コンソール にログインし、左上隅でリージョンを選択します。

    2. 左側のナビゲーションウィンドウで、構成の管理 > プロジェクト管理 を選択します。

    3. プロジェクト管理 ページで、MaxCompute プロジェクトの正しい名前を確認し、odps_config.ini ファイルを修正します。

エラー: Accessing project '<projectname>' failed: ODPS-0420095: Access Denied - Authorization Failed [4002], You don't exist in project <projectname>.

エラー: Accessing project '<projectname>' failed: { "Code": "InvalidProjectTable", "Message": "The specified project or table name is not valid or missing."} または Accessing project '<projectname>' failed: connect timed out

  • 原因

    end_point パラメーターの値が誤っています。たとえば、ローカルコンピューターから接続しようとしているのに、内部ネットワーク (クラシックネットワークなど) またはトンネルエンドポイント用のエンドポイントを構成している可能性があります。

  • 解決策

    エンドポイント」ドキュメントを参照し、プロジェクトのリージョンおよびネットワーク環境に適した正しいエンドポイントを選択してください。

    end_point パラメーターには、MaxCompute サービスのエンドポイントを使用してください。トンネルエンドポイントは MaxCompute Tunnel サービス用です。

エラー: Accessing project '<projectname>' failed: <endpoint>

  • 原因

    end_point パラメーターの値が誤っています。たとえば、http://service.ch-hangzhou.maxcompute.aliyun.com/api を入力している可能性があります。中国 (杭州) リージョンの正しいパブリックネットワークエンドポイントは http://service.cn-hangzhou.maxcompute.aliyun.com/api です。

  • 解決策

    エンドポイント」ドキュメントを参照し、プロジェクトのリージョンおよびネットワーク環境に適した正しいエンドポイントをコピーしてください。手動で入力するのではなく、エンドポイントをコピーすることを推奨します。

スタートアップパラメーター

システムコマンドラインからスタートアップパラメーターを指定することで、コマンドを迅速に実行できます。

Usage: odpscmd [OPTION]...
where options include:
    --help                                  (-h)for help
    --config=<config_file>                  specify another config file
    --project=<prj_name>                    use project
    --endpoint=<http://host:port>           set endpoint
    -k <n>                                  will skip begining queries and start from specified position
    -r <n>                                  set retry times
    -f <"file_path;">                       execute command in file
    -e <"command;[command;]...">            execute command, include sql command

次の表に、スタートアップパラメーターを示します。

パラメーター

説明

--help または -h

すべての MaxCompute クライアントコマンドのヘルプ情報を表示します。

odpscmd --help

--config

odps_config.ini ファイルのパスを指定します。デフォルトパスは odpscmd_public/conf/odps_config.ini です。

odpscmd --config=D:/odpscmd/conf/odps_config.ini

--project

アクセスする MaxCompute プロジェクトの名前を指定します。

odpscmd --project=doc_test

--endpoint

MaxCompute サービスへの接続エンドポイントを指定します。詳細については、「エンドポイント」をご参照ください。

odpscmd --endpoint=http://service.cn-shanghai.maxcompute.aliyun.com/api

-k

最初の n-1 文をスキップし、n 番目の文から実行を開始します。n≤0 の場合、最初の文から実行を開始します。文はセミコロン (;) で区切られます。

最初の 2 文をスキップし、3 番目の文から実行を開始します。 odpscmd -k 3 -e "drop table table_name;create table table_name (dummy string);insert overwrite table table_name select count(*) from table_name;"

-r

ジョブ失敗時の再試行回数を設定します。

odpscmd -r 2 -e "select * from sale_detail;select * from table_test;"

-f

実行するコマンドを含むファイルを指定します。

  1. D ドライブに script.txt という名前のローカルスクリプトファイルを作成します。たとえば、次の内容を保存します。

    drop table if exists test_table_mj;
    create table test_table_mj (id string, name string);
    drop table test_table_mj;
  2. コマンドラインで MaxCompute クライアントの bin ディレクトリに移動し、次のコマンドを実行します。

    ..\odpscmd\bin>odpscmd -f D:/script.txt;

-e

実行するコマンドを指定します。

odpscmd -e "select * from sale_detail;"

シェルまたは Windows コマンドラインで、odpscmd -e <SQL_statement> を使用して、動的な戻り値をシェル変数にキャプチャし、後続のジョブで使用できます。このシナリオでは、戻り値にランタイム詳細やヘッダーなどの余分な情報が含まれてはなりません。シェルスクリプトを容易にするために、odps_config.ini ファイル内の use_instance_tunnel パラメーターを false に設定して Instance Tunnel を無効にしてください。その後、set odps.sql.select.output.format={"needHeader":false,"fieldDelim":" "}; コマンドを実行してヘッダーを抑制します。

たとえば、1 列で 1、2、3 の 3 行のデータを持つ noheader という名前のテーブルがあるとします。次のコマンドを実行して標準出力をファイルにリダイレクトします。出力にはデータのみが含まれ、余分な情報は含まれません。

--Windows コマンドライン:
...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt
--結果は D:\test.txt に保存されます。
--シェル:
/Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt 
--結果は /Users/A/temp/test.txt に保存されます。
--出力:
1
2
3

バージョン履歴

次の表に、odpscmd の最近の更新内容を示します。詳細については、特定のバージョンのリンクをクリックしてください。

odpscmd のバージョンおよびリリースノートの完全な一覧については、GitHub をご参照ください。

バージョン

タイプ

説明

v0.52.3-public

新機能

STS トークンを一時的なセキュリティ認証情報として使用するサポートを追加しました。

バグ修正

依存関係の互換性問題を解決するために Apache Arrow ライブラリを更新しました。

v0.52.2-public

新機能

MaxCompute クエリアクセラレーション (MCQA) 2.0 ジョブの進捗レポートを無効にする skip_progress パラメーターを追加しました。

機能強化

  • MCQA V2 モードをより適切にサポートするようにコマンドを強化しました。

  • compact コマンドを強化し、特定の compact ID を受け入れるようにしました。

v0.51.2-public

バグ修正

CVE 脆弱性を解決するために依存関係をアップグレードしました。

v0.51.1-public

新機能

外部ボリュームのダウンロードを高速化するオプションを追加しました。

機能強化

DescribeTableCommandShowPartitionsCommand、および ShowTablesCommand コマンドをリファクタリングし、外部プロジェクト V2 のサポートを向上させました。

v0.51.0-public

新機能

  • クォータ情報のローカルファイルシステムキャッシュを実装し、パフォーマンスを向上させました。

  • compact コマンドを強化し、ローカルしきい値オプション、強制モード、およびパラメーター検証を改善しました。

  • SQL クエリプランを分析および最適化する TUNE コマンドを導入しました。このコマンドは複数の候補実行計画を評価し、チューニング履歴およびレポートを提供します。

機能強化

  • MCQA 2.0 のセッション管理およびクォータロードを強化しました。

  • ネットワークタイムアウトパラメーター (network_read_timeout および network_connect_timeout) を再実装し、REST クライアント構成と統合しました。

v0.50.0-public

新機能

  • MCQA 2.0 ジョブの送信をサポートしました。

  • インタラクティブなクォータグループを指定する UseQuotaCommand を追加しました。

v0.48.0-public

新機能

  • odps-sdk0.47.0-public から 0.48.6-public にアップグレードしました。機能強化および修正の一覧については、odps-sdk の変更履歴 をご参照ください。

  • DESC EXTENDED コマンドを強化し、データマスキング情報を表示できるようにしました。

バグ修正

MCQA モードを改善し、フォールバック動作をより正確に検出し、重複する Logview 表示を防止しました。

v0.47.0-public

新機能

  • 現在の認証情報で HTTP リクエストを送信できる http コマンドを追加しました。

  • --keep-session-variables スタートアップパラメーターを追加しました。有効にすると、use [project] コマンドで既存のセッション変数 (SET a=b などで設定されたもの) がクリアされなくなり、プロジェクト間の切り替え時に保持されるようになります。

機能強化

  • read コマンドが TIMESTAMP_NTZ および JSON データ型をサポートするようになりました。

  • Tunnel コマンドのアップグレード:

    • TUNNEL UPLOAD/DOWNLOAD コマンドが -qn フラグをサポートし、Tunnel QuotaName を指定できるようになりました。

    • TUNNEL UPLOAD コマンドが -dfp フラグをサポートし、テキストファイル内の DATETIME 値のフォーマットを設定できるようになりました。

  • HistoryCommand に grep サポートを追加し、検索機能を向上させました。

  • DROP project 構文のサポートを追加し、コンソールとの整合性を図りました。DELETE project 構文は引き続き利用可能です。

  • setproject コマンドを強化し、より長い値文字列および JSON などの複雑なデータ型をサポートしました。

v0.46.5-public

新機能

Tunnel 操作で JSON データ型のサポートを追加しました。

v0.46.4-public

新機能

  • データ操作の UPSERT 機能:この機能により、Tunnel 経由で UPSERT 操作を実行できます。データ更新および操作の回復をサポートするために、DshipUpdate クラスおよび RESUME_UPSERT_ID 定数を追加しました。

  • SQL 実行のタイムゾーン管理を改善しました。SET odps.sql.timezone=UTC; を使用して、セッションレベルのタイムゾーンを設定できます。

  • セキュリティ構成の処理を改善しました。

  • SetCommand をリファクタリングし、解析機能およびコマンドマッチングを向上させました。

機能強化

DescribeTableCommand を拡張し、ストレージレイヤーに関するより詳細な情報を表示できるようにしました。

v0.45.1-public

新機能

  • DescribeTableCommand を強化し、パーティションテーブルおよび非パーティション化テーブルの両方についてストレージレイヤー情報を表示できるようにしました。

  • このコマンドは、ストレージレイヤー名、パーティションの最終更新時刻、およびパーティションテーブル内の各ストレージレイヤーのストレージサイズを表示します。

v0.45.0-public

新機能

  • MCQA セッションへのアタッチタイムアウトを制御する attach_session_timeout パラメーターを追加しました。

    説明

    このパラメーターは MCQA (クエリアクセラレーション 1.0) に適用されます。MaxQA (クエリアクセラレーション 2.0) の構成については、「クエリアクセラレーション MaxQA」をご参照ください。

  • SetCommand のスキーマ検証を改善しました。デフォルトスキーマを設定する際、クライアントがスキーマの存在をより正確に検証し、無効なスキーマ名をより効果的に処理するようになりました。

機能強化

  • セッション管理を強化し、セッションビルダー構成に attachTimeout パラメーターを追加しました。

  • dship コマンドを強化し、日時値の解析および処理を改善しました。

  • TopInstanceCommand の解析およびオプション処理を改善しました。

v0.43.2-public

新機能

  • 外部ボリュームの作成をサポートしました。

  • show コマンドを強化し、現在の MaxCompute プロジェクト内のすべてのビルトイン関数をクエリしたり、特定のパターンでフィルターしたりできるようにしました。

v0.40.10-public

バグ修正

Log4j 依存関係を削除しました。

v0.40.8-public

新機能

プロジェクト内でのスキーマベースのデータ編成をサポートしました。詳細については、「スキーマ操作」をご参照ください。

v0.37.5-public

新機能

Tunnel 経由での複雑なデータ型のアップロードおよびダウンロードをサポートしました。

v0.37.4-public

機能強化

  • コマンドのヘルプメッセージを改善しました。

  • desc extended partition コマンドを強化し、より多くのパーティションプロパティを返すようにしました。

v0.36.0-public

新機能

Data Lake Formation (DLF) に接続する外部プロジェクトの作成をサポートしました。これにより、レイクハウス機能が有効になります。

バグ修正

TIMESTAMP データのナノ秒部分がダウンロード中に誤って処理される問題を修正しました。