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

MaxCompute:ローカルクライアント (odpscmd) を使用した接続

最終更新日:Mar 03, 2026

MaxCompute ローカルクライアント (odpscmd) は、ローカルマシン上で効率的な操作を実行するためのコマンドラインインターフェイスを提供します。このクライアントを使用してコマンドを実行し、MaxCompute プロジェクトを管理できます。本トピックでは、クライアントのダウンロード、インストール、設定、起動、および使用方法について説明します。

適用範囲

  • ご利用のデバイスに Java 8 以降がインストールされている必要があります。

  • バージョン互換性

    • MaxCompute クライアント v0.28.0 以降は JDK 1.9 をサポートしています。それ以前のバージョンは JDK 1.8 のみをサポートしています。MaxCompute クライアントを起動した後、コマンドラインインターフェイスに表示されるバージョン番号を確認してください。MaxCompute クライアントの起動

    • クライアントの出力形式は前方互換性がありません。コマンドの構文および動作はバージョンによって異なる場合があります。自動化目的でクライアント出力を解析しないでください。

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

  • エンコーディング形式

    クライアントはデフォルトで UTF-8 エンコーディングを使用します。ローカル環境で異なるエンコーディングが使用されている場合、クエリ結果やアップロードファイル内の中国語文字が文字化けする可能性があります。これは、MaxCompute テーブルに対するクエリ実行時や、Tunnel コマンドを使用したローカルデータファイルのアップロード時に発生する場合があります。

課金

クライアントを使用した MaxCompute プロジェクトへの接続は無料です。ただし、クライアント経由で実行する操作には MaxCompute の課金が発生する場合があります。たとえば、SQL クエリまたは書き込みコマンドを送信すると、コンピューティングリソースが消費されます。また、データの書き込みにはストレージ容量も使用されます。コンピューティングおよびストレージの両方に対して課金されます。詳細については、「課金項目および課金方法」をご参照ください。

MaxCompute クライアントのインストールおよび設定

v0.27.0 以降では、クライアントが MaxCompute V2.0 の新しいデータの型をサポートしています。これらの新しいデータの型の使用を推奨します。サポートされているデータの型の一覧については、「MaxCompute V2.0 のデータの型」をご参照ください。

以下の手順に従ってください。

  1. MaxCompute クライアントパッケージ (GitHub)」をダウンロードします。

    説明
    • 上記リンクからクライアントのリリースページにアクセスし、最新の MaxCompute クライアントパッケージ (odpscmd_public.zip) をダウンロードします。

    • 上記リンクが機能しない場合は、「MaxCompute クライアントパッケージ (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 の管理 ページにアクセスして、AccessKey ID を取得してください。

    なし

    access_key

    はい

    AccessKey ID に対応する AccessKey Secret です。

    なし

    end_point

    はい

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

    この値は、MaxCompute プロジェクトを作成する際に選択したリージョンおよびネットワークタイプに基づいて設定してください。「エンドポイント」で、リージョンおよびネットワーク別のエンドポイント一覧をご確認ください。

    重要
    • このエンドポイントは MaxCompute サービス用です。MaxCompute Tunnel サービスには 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 GB を推奨します。

    100

    update_url

    いいえ

    予約済みパラメーターです。現時点では無視してください。

    なし

    use_instance_tunnel

    いいえ

    SQL クエリ結果のダウンロードに InstanceTunnel を使用するかどうかを指定します。有効な値は次のとおりです。

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

    • False: InstanceTunnel は、SQL 実行結果をダウンロードするために使用されません。

    デフォルト値:False。

    True

    instance_tunnel_max_record

    いいえ

    SQL クエリ結果として返される最大レコード数です。use_instance_tunnelTrue の場合に設定します。最大値:10000。

    10000

    tunnel_endpoint

    いいえ

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

    • Tunnel エンドポイントを設定しない場合、Tunnel は自動的に MaxCompute サービスのリージョンおよびネットワークに対応する Tunnel エンドポイントにルーティングされます。

    • Tunnel エンドポイントを設定した場合、Tunnel はそのエンドポイントを使用し、自動ルーティングされません。

    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 アカウントを使用して、対象の MaxCompute プロジェクトにその RAM ユーザーを追加してください。「他のユーザーへの権限付与」をご参照ください。

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

    方法 1:インストールパッケージ内のスクリプトファイル

    MaxCompute クライアントのインストールパス直下の bin フォルダで、odpscmd.bat (Windows) または odpscmd (macOS) をダブルクリックします。これにより MaxCompute クライアントが起動します。接続が成功すると、以下のメッセージが表示されます。image.png

    方法 2:システムのコマンドラインウィンドウ

    システムのコマンドラインウィンドウで、MaxCompute クライアントのインストールパス直下の bin ディレクトリに移動します。その後、odpscmd (Windows) または sh odpscmd (Linux または macOS) を実行します。これにより MaxCompute クライアントが起動します。接続が成功すると、以下のメッセージが表示されます。

    説明

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

    image.png

    システムのコマンドラインから 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 の課金」をご参照ください。

システムのコマンドラインウィンドウでのコマンドヘルプの表示

システムのコマンドラインウィンドウで、MaxCompute クライアントのインストールパス直下の bin フォルダに移動します。その後、以下のコマンドを実行して、すべてのコマンドのヘルプを表示します。コマンドラインから MaxCompute クライアントを起動する場合、複数の引数を渡すことができます。「起動パラメーター」で詳細をご確認ください。

...\odpscmd\bin>odpscmd -h

現在のユーザー情報の取得

MaxCompute クライアントを起動した後、以下のコマンドを実行して、現在のユーザー情報を取得します。

odps@project_name>whoami;

返されたパラメーターの説明を以下に示します。

  • Name:ご利用のアカウント名です。

  • Source IP:MaxCompute クライアントが実行されているデバイスの IP アドレスです。

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

  • Project:ご利用の MaxCompute プロジェクト名です。

  • Schema:ご利用の MaxCompute プロジェクト内のスキーマです。

MaxCompute クライアントの終了

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

odps@project_name>quit;
-- 次と同等です:
odps@project_name>q;

tunnel download コマンドの実行

  • MaxCompute クライアント内で初めて tunnel download コマンドを実行すると、クライアントはログを格納するセッションフォルダを作成します。このフォルダは、ご利用のデバイス上のクライアントインストールディレクトリ内の plugins/dship サブディレクトリにあります。

  • 複数のユーザーが同じデバイスを共有して tunnel download コマンドを実行する場合、以下のいずれかの方法を使用してデータのセキュリティを確保してください。

    • ご利用のデバイスのフォルダ権限制御を使用して、セッションフォルダへのアクセスを管理します。

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

関連ドキュメント

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

コマンドの完全な構文については、「共通コマンド」または「SQL コマンドおよび関数」をご参照ください。

よくある質問

odps_config.ini ファイルを設定して MaxCompute クライアントを起動した後、発生する一般的なエラーを以下に示します。

エラー:no java found

  • 原因

    ご利用のマシンに 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 回ダウンロードした可能性があります。2 回目のダウンロードでは、フォルダ名が odpscmd_public (1) に変更されています。フォルダ名にスペースまたは特殊文字が含まれていると、パスエラーが発生します。

  • 解決方法

    フォルダ名からスペースおよび特殊文字を削除してください。

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

  • 原因

    odps_config.ini ファイル内のプロジェクト名が正しくありません。

  • 解決方法

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

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

    3. プロジェクト管理 ページで、正しいプロジェクト名をコピーし、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 の値が間違っています。たとえば、内部ネットワーク接続にクラシックネットワークのエンドポイントを使用している、または MaxCompute エンドポイントではなく Tunnel エンドポイントを入力しているなどです。

  • 解決方法

    プロジェクトのリージョンおよびネットワークに一致するエンドポイントを選択してください。「エンドポイント」のドキュメントをご参照ください。

    end_point パラメーターには、Tunnel エンドポイントではなく MaxCompute エンドポイントを指定する必要があります。

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

  • 原因

    end_point パラメーターの値が間違っています。たとえば、中国 (杭州) リージョンのパブリックエンドポイント http://service.cn-hangzhou.maxcompute.aliyun.com/apihttp://service.ch-hangzhou.maxcompute.aliyun.com/api と誤って入力しています。

  • 解決方法

    エンドポイント のドキュメントから正しいエンドポイントをコピーしてください。手動で入力しないでください。

起動パラメーター

システムのコマンドラインウィンドウで、起動パラメーターを使用してコマンドをすばやく実行できます。構文は以下のとおりです。

Usage: odpscmd [OPTION]...
where options include the following:
    --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≤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 ステートメント> の動的な戻り値をシェル変数にキャプチャし、その後のタスクでその変数を使用する必要がある場合があります。ランタイム情報やテーブルヘッダーなどの余分な出力を回避するには、odps_config.ini パラメーター use_instance_tunnel を false に設定して Instance Tunnel を無効化します。その後、set odps.sql.select.output.format={"needHeader":false,"fieldDelim":" "}; を実行してテーブルヘッダーを非表示にします。

たとえば、テーブル noheader には 1 列と 3 行のデータ (1、2、3) が含まれています。以下のコマンドを実行すると、出力が stdout にリダイレクトされ、余分な情報なしで生データのみが出力されます。

-- 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

バージョン履歴

以下の表に、MaxCompute クライアントの最近の更新を示します。各バージョンのリンクをクリックすると、詳細をご確認いただけます。

その他のバージョンおよび機能の更新については、「GitHub」をご参照ください。

バージョン

種別

説明

v0.52.3-public

新機能

STS トークンを一時的なセキュリティ資格情報としてサポート。

バグ修正

Apache Arrow ライブラリを更新して、依存関係の互換性の問題を修正。

v0.52.2-public

新機能

skip_progress を追加して、MCQA 2.0 ジョブの進行状況レポートを制御。

機能強化

  • MCQA V2 のサポートを強化: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 コマンドのアップグレード:

    • -qnTUNNEL UPLOAD/DOWNLOAD に追加して Tunnel QuotaName を設定。

    • -dfpTUNNEL UPLOAD に追加して DATETIME テキストフォーマットを設定。

  • HistoryCommand に grep を追加して検索機能を強化。

  • プロジェクト削除構文をコンソールと整合: DROP projectDELETE 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

新機能

  • attach_session_timeout を追加して MCQA セッションのアタッチタイムアウトを制御。

  • SetCommand のパターン検証を改善:無効なパターンに対する存在チェックおよびエラー処理を強化。

機能強化

  • セッションビルダ設定に attachTimeout を追加して、設定可能なタイムアウトを実現。

  • dship コマンドを強化:DATETIME の解析および実行を改善。

  • TopInstanceCommand を強化:解析およびオプション処理を改善。

v0.43.2-public

新機能

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

  • MaxCompute プロジェクト内のすべてのビルトイン関数、またはルールに一致する関数を一覧表示する show コマンドをサポート。

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 データのダウンロード時にナノ秒 (nano) を正しく処理。