MaxCompute Query Accelerator (MaxQA) エンジンは、ニアリアルタイムシナリオでのクエリパフォーマンスを最適化します。専用のクエリコンピューティングリソースプール内で動作し、コントロールプレーン、クエリオプティマイザー、実行エンジン、ストレージエンジン、キャッシュ機構を最適化します。MaxQA は、低レイテンシーと高安定性を必要とする BI シナリオ、インタラクティブ分析、ニアリアルタイムデータウェアハウスに最適です。
サービスの可用性
リージョン別の提供タイムライン
リージョン | パブリックベータ | 一般提供 |
中国 (杭州) | 2025 年 2 月 17 日 | 2025 年 11 月 24 日 |
中国 (上海) | ||
中国 (北京) | ||
中国 (深セン) | ||
中国 (ウランチャブ) | ||
中国 (香港) | 2025 年 3 月 5 日 | 2025 年 11 月 27 日 |
日本 (東京) | 2025 年 3 月 5 日 | |
シンガポール | 2025 年 3 月 20 日 | |
インドネシア (ジャカルタ) | ||
ドイツ (フランクフルト) | 2025 年 3 月 31 日 | |
米国 (シリコンバレー) | ||
米国 (バージニア) |
注意事項
新規のインタラクティブクォータグループは、デフォルトで MaxQA モードになります。既存の MaxQA には影響しません。
MaxQA の基本操作
MaxQA インスタンスの作成
MaxQA は、サブスクリプション課金モデルを使用する MaxCompute プロジェクトでのみ利用可能です。MaxQA インスタンスを作成するには、次の手順を実行します。
MaxCompute コンソールにログインし、左上隅でリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
クォータ管理 ページで、対象のクォータの 操作 列にある Quota の設定 をクリックします。
基本設定
Quota の設定 ページで、基本設定 タブを選択し、基本構成の編集 をクリックします。
セカンダリクォータの追加 をクリックし、クォータ名 を入力し、タイプ に インタラクティブ を選択します。
MaxQA を使用する場合、クォータ名 を指定します。複数のインスタンスを区別するために、ビジネス属性に関連する名前を使用することを推奨します。
インタラクティブ クォータは、クエリアクセラレーション (MaxQA) ジョブの実行専用です。
OK をクリックします。
インスタンスを作成すると、対応するインタラクティブクォータグループのステータスが 起動中 に変わります。ステータスが 実行中 に変わるまで 5〜8 分待ちます。その後、インスタンスを使用できます。
MaxQA インスタンスの削除
クォータ管理 ページで、対象のクォータの 操作 列にある Quota の設定 をクリックします。
Quota の設定 ページで、基本設定 タブを選択し、対象のインタラクティブクォータの 操作 列にある 削除 をクリックします。
削除はバックグラウンドで実行されます。ページにはステータスの更新や削除の進捗は表示されません。
MaxQA インスタンスのスケーリング
ビジネスニーズに応じて、インタラクティブクォータグループをスケールアウトまたはスケールインできます。
クォータ管理 ページで、対象のクォータの 操作 列にある Quota の設定 をクリックします。
Quota の設定 ページで、基本設定 タブを選択し、基本構成の編集 をクリックします。
セカンダリクォータの追加 をクリックし、スケールアップまたはスケールダウンしたいインタラクティブクォータグループの リザーブド CU [minCU, maxCU] を調整します。値を大きくするとスケールアップ、小さくするとスケールダウンになります。
説明CU の最小増分は 25 です。
最小 CU は 25 以上である必要があります。安定性を確保するため、最小 CU は 50 以上に設定してください。インタラクティブリソースが不要な場合は、値を 0 に設定するか、クォータグループを削除してください。
インタラクティブクォータの制限:
エラスティックリザーブド CU はインタラクティブクォータではサポートされていません。
クエリアクセラレーションのパフォーマンスと安定性を確保するため、インタラクティブクォータでは最小 CU と最大 CU を同じ値に設定してください。
OK をクリックします。
インタラクティブクォータグループの予約 CU の調整が開始されます。
インタラクティブクォータグループの 操作 列に スケールアップ中 または スケールダウン中 が表示されます。スケールアウトには約 5〜8 分かかります。スケールインは、実行中のジョブが終了するタイミングによって、より長くかかる場合があります。最悪の場合、スケールイン操作が開始される前に、削除対象のマシン上のジョブがタイムアウトするのをシステムが待つ必要があります。スケーリング操作中、ご利用のジョブに影響はありません。
MaxQA の時間ベースのスケーリング設定
スケジュールされたスケーリングのために時間ベースのスケーリングプランを設定できます。
クォータ管理 ページで、対象のクォータの 操作 列にある Quota の設定 をクリックします。
Quota の設定 ページで、スケーリング設定 タブを選択します。
時間ベースのスケーリングプランの設定
スケーリング設定 タブで、構成プランの作成 をクリックします。構成プランの新規作成 ダイアログボックスで、構成プラン名 を入力し、レベル 2 クォータの リザーブド CU [minCU, maxCU] を設定します。
既存の設定プランを修正する場合:
スケーリング設定 タブで、対象プランの 操作 列にある 編集 をクリックして更新します。
時間ベースのスケジュールの設定
スケーリング設定 タブで、スケジュール管理 セクションの スケジュールの編集 をクリックします。
有効期間の追加 をクリックし、開始時刻 と 構成プラン を選択します。
これにより、1 日の異なる時間帯に異なるクォータ設定プランをアクティブにできます。詳細については、「コンピューティングリソースとクォータの管理」をご参照ください。
スケジューリングポリシー
ジョブを送信する際、クライアントまたは JDBC 接続文字列でインタラクティブクォータグループの名前を指定します。ジョブは対応する MaxQA インスタンスで実行されるようにスケジューリングされます。
フォールバックポリシー
MaxQA はフォールバックポリシーをサポートしています。有効にすると、システム例外により失敗した MaxQA タスクは自動的にバッチモードにフォールバックします。フォールバックポリシーは以下の方法で有効にできます。
JDBC (バージョン 3.10.7 以降):フォールバックはデフォルトで有効です。無効にするには `disableFallback` を設定し、対象のクォータを指定するには `fallbackQuota` を使用します。
Java SDK:
MaxQAConnInfo.builder().fallbackInfo(FallbackInfo.enable("<offline_quota>")).build()DataWorks:DataStudio のスケジューリング設定でフォールバックルールを設定します。詳細については、「DataWorks DataStudio の使用」をご参照ください。
アクセス方法
MaxQA には、以下の方法でアクセスできます。
MaxCompute クライアントの使用
MaxCompute クライアント (odpscmd) v0.51.1 以降をインストールして設定します。詳細については、「ローカルクライアント (odpscmd) を使用した接続」をご参照ください。
(任意) クライアントのインストール先の
confディレクトリで、odps_config.iniファイルを修正し、最終行に次のコマンドを追加します。-- MaxQA 接続情報のキャッシュを有効にします。 enable_quota_cache=truebinディレクトリ内のスクリプトファイルを実行して、MaxCompute クライアントを起動します。重要Linux/macOS システムの場合:
odpscmdスクリプトファイルを実行します。Windows の場合:
odpscmd.batファイルをダブルクリックします。
ジョブを実行する前に、次のコマンドを実行します。クライアントからの後続のジョブは、対応するインタラクティブクォータグループ上で MaxQA モードで実行されます。
USE QUOTA <name_of_the_interactive_quota_group>;または、セッションレベルで現在のジョブの MaxQA インスタンスを指定します。
SET odps.task.wlm.quota=<name_of_the_interactive_quota_group>;
DataWorks DataStudio の使用
MaxQA は、パブリックプレビュー中の新しいバージョンの DataStudio を使用するワークスペースでのみサポートされています。以前のバージョンの DataStudio を使用している場合は、MaxQA を使用するために新しいバージョンにアップグレードする必要があります。詳細については、「新しいバージョンの DataStudio を有効にする」をご参照ください。
DataWorks コンソールにログインし、左上隅でリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
ワークスペースの選択 をクリックし、[DataStudio に移動] をクリックします。
[データ開発] ページで、右側の デバッグ設定 をクリックします。
[デバッグ設定] ページで、[コンピューティングリソース] にこのワークスペースにバインドされている MaxCompute プロジェクトリソースを選択します。次の表は、各シナリオでのコンピューティングクォータの選択方法を説明しています。
説明実行環境:ジョブはデータ分析またはデータ開発モジュールで実行されます。インタラクティブからオフラインへのフォールバックは適用されません。
フォールバック実行環境:ジョブはスケジューリングモジュールで実行されます。インタラクティブモードが指定されている場合、インタラクティブモードが失敗したときにオフラインモードにフォールバックするように設定することもできます。
コンピューティングクォータの選択
指定されたクォータ / ルーティングルール
期待される実行モード
スケジューリング設定と期待されるフォールバック
プロジェクトのデフォルトクォータ
オフラインのルーティングルールが存在する場合、そのルーティングルールが有効になります。インタラクティブのルーティングルールは適用されません。
プロジェクトのデフォルトクォータはオフラインクォータです。ジョブはオフラインクォータで実行されます。
ジョブはオフラインクォータで実行されます。フォールバックは適用されません。
指定されたクォータ
オフラインクォータを選択します。
ジョブはオフラインクォータで実行されます。
ジョブはオフラインクォータで実行されます。フォールバックは適用されません。
指定されたクォータ
インタラクティブクォータを選択します。
ジョブはインタラクティブクォータグループに対応する MaxQA インスタンスで実行されます。
[スケジューリング設定] で:フォールバックが無効な場合、フォールバックは試行されません。プロジェクトのデフォルトクォータが選択されている場合、フォールバックにはプロジェクトのデフォルトクォータが使用されます (フォールバックではオフラインのルーティングルールは適用されません)。特定のクォータが選択されている場合、フォールバックには指定されたオフラインクォータが使用されます。
インタラクティブモードのルーティングルール
オフラインのルーティングルールのみが存在し、一致するインタラクティブのルーティングルールが見つかりません。
エラーが報告されます:
Cannot find MCQA quota to start connection on project *****。作成するには、「コンピューティングリソースのクォータの使用」をご参照ください。フォールバックが無効な場合、フォールバックは試行されません。プロジェクトのデフォルトクォータが選択されている場合、フォールバックにはプロジェクトのデフォルトクォータが使用されます。特定のクォータが選択されている場合、フォールバックには指定されたオフラインクォータが使用されます。
インタラクティブモードのルーティングルール
一致するインタラクティブのルーティングルールが存在します。
ジョブはインタラクティブクォータグループに対応する MaxQA インスタンスで実行されます。
設定が完了すると、SQL ノード上のジョブは、インタラクティブクォータグループに対応する MaxQA インスタンスにスケジューリングされます。
詳細については、「DataWorks で MaxCompute SQL ノードを作成する」をご参照ください。
コンソールでの SQL 分析の使用
MaxCompute コンソールにログインし、左上隅でリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
SQL エディターに SQL ステートメントを入力し、右側の [実行設定] をクリックして [プロジェクト] と [コンピューティングクォータ] を設定します。
インタラクティブクォータグループに対応するコンピューティングリソースを選択します。
設定が完了すると、[SQL 分析] ページのジョブは、インタラクティブクォータグループに対応する MaxQA インスタンスにスケジューリングされます。
詳細については、「SQL 分析」をご参照ください。
MaxCompute Studio の使用
MaxCompute Studio をインストールし、MaxCompute プロジェクトに接続していることを確認してください。MaxQA を使用するには、スクリプトを実行します。
MaxCompute Studio v4.3.2 以降をインストールして設定します。詳細については、「MaxCompute Studio のインストール」をご参照ください。
MaxCompute Studio プロジェクトを作成し、ご利用の MaxCompute プロジェクトに接続します。詳細については、「プロジェクト接続の管理」をご参照ください。
プロジェクトで MaxCompute SQL スクリプトを作成します。詳細については、「SQL スクリプトの開発と送信」をご参照ください。
MaxCompute SQL スクリプトに SQL ステートメントを入力します。[実行モード] ドロップダウンリストから、MaxQA を選択します。
[追加パラメーターの指定]
ボタンをクリックし、インタラクティブクォータグループ名を入力して、[OK] をクリックします。スクリプトを実行します。ジョブは MaxQA クエリアクセラレーション機能を使用するようになります。
JDBC の使用
JDBC を使用して MaxCompute に接続する際に MaxQA を有効にするには:JDBC 接続の詳細については、「ユーザーガイド」をご参照ください。
MaxQA をサポートするソースコードをダウンロードします。
Maven で POM 依存関係を設定します。
<dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-jdbc</artifactId> <version>${Latest Version}</version> </dependency>重要上記のコードでは、
Latest Versionはプレースホルダーです。プロジェクトを正常にコンパイルするには、特定の SDK バージョン番号に置き換える必要があります。Maven Central Repository にアクセスして、リリースされているすべての odps-jdbc バージョンを確認してください。最新バージョンを使用することを推奨します。バージョン番号のフォーマットは X.X.X です。ソースコードから Java プログラムを作成し、ご利用の環境に合わせて調整します。詳細については、「MaxCompute JDBC」をご参照ください。以下のコードは一例です。
import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class MaxCompute { private static final String DRIVER_NAME = "com.aliyun.odps.jdbc.OdpsDriver"; // Alibaba Cloud アカウントの AccessKey ID は、すべての API 操作を呼び出す権限を持っています。これは高リスクな操作です。RAM ユーザーを作成して使用し、API 操作を呼び出すか、日常の O&M を実行することを推奨します。RAM ユーザーを作成するには、RAM コンソールにログインしてください。 // この例では、AccessKey ID と AccessKey Secret は環境変数に保存されています。ビジネスニーズに応じて、設定ファイルに保存することもできます。 // コードに AccessKey ID と AccessKey Secret をハードコーディングしないことを強く推奨します。これはセキュリティリスクをもたらします。 private static String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); private static String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); public static void main(String[] args) throws SQLException { try { Class.forName(DRIVER_NAME); } catch (ClassNotFoundException e) { e.printStackTrace(); System.exit(1); } Connection conn = DriverManager.getConnection( "jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000", MaxCompute.accessId, MaxCompute.accessKey); // テーブルを作成します Statement stmt = conn.createStatement(); final String tableName = "jdbc_test11"; stmt.execute("DROP TABLE IF EXISTS " + tableName); stmt.execute("CREATE TABLE " + tableName + " (key BIGINT, value STRING)"); // メタデータを取得します DatabaseMetaData metaData = conn.getMetaData(); System.out.println("product = " + metaData.getDatabaseProductName()); System.out.println("jdbc version = " + metaData.getDriverMajorVersion() + ", " + metaData.getDriverMinorVersion()); ResultSet tables = metaData.getTables(null, "default", tableName, null); while (tables.next()) { String name = tables.getString("TABLE_NAME"); System.out.println("inspecting table: " + name); ResultSet columns = metaData.getColumns(null, null, name, null); while (columns.next()) { System.out.println( columns.getString("COLUMN_NAME") + "\t" + columns.getString("TYPE_NAME") + "(" + columns.getInt("DATA_TYPE") + ")"); } columns.close(); } tables.close(); stmt.close(); conn.close(); } }
以下のコードは、JDBC 接続文字列の例です。
// your_quota_group_name は、使用したいインタラクティブクォータグループの名前です。
jdbc:odps:<MaxCompute_endpoint>?
project=<MaxCompute_project_name>&interactiveMode=true"aName=your_quota_group_name&enableLimit=false&enableOdpsLogger=true"パラメーター | 説明 |
MaxCompute_endpoint | MaxCompute サービスが配置されているリージョンのエンドポイント。詳細については、「エンドポイント」をご参照ください。 |
MaxCompute_project_name | MaxCompute プロジェクトの名前。 |
interactiveMode | MaxQA 機能の切り替え。有効にするには |
quotaName | 使用したいインタラクティブクォータグループの名前。 |
enableLimit | 10,000 行を超えるデータのダウンロードを許可するかどうかを指定します。 |
enableOdpsLogger | ログ出力を有効にします。SLF4J が設定されていない場合に推奨されます。 |
BI ツールの使用
Tableau、Quick BI、Guandata BI、SQL Workbench/J などの BI ツールを使用して MaxQA に接続できます。
Tableau
サーバー URL パスに interactiveMode=true プロパティと quotaName=your_quota_nick_name プロパティを追加して、MaxQA 機能を有効にします。ログを出力するために enableOdpsLogger=true プロパティも追加することを推奨します。詳細な手順については、「Tableau を使用するための JDBC の設定」をご参照ください。
URL フォーマット:
<MaxCompute_endpoint>?project=<MaxCompute_project_name>&charset=UTF-8&interactiveMode=true"aName=<your_quota_group_name>&autoSelectLimit=1000000000パラメーター
必須
説明
MaxCompute_endpoint
はい
MaxCompute サービスが配置されているリージョンのエンドポイント。詳細については、「エンドポイント」をご参照ください。たとえば、中国 (杭州) リージョンのエンドポイントは
https://service.cn-hangzhou.maxcompute.aliyun.com/apiです。MaxCompute_project_name
はい
MaxCompute プロジェクトの名前。例:
maxqatomax。your_quota_group_name
はい
インタラクティブクォータグループの名前。例:
maxfor1。[Alibaba MaxCompute] 接続ダイアログボックスの [一般] タブで、構築した URL を [サーバー] フィールドに入力します。[ユーザー名] フィールドに AccessKey ID を、[パスワード] フィールドに AccessKey Secret を入力します。その後、[サインイン] をクリックします。
URL の例:
https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000
Quick BI
Quick BI コンソールにログインします。
左側のナビゲーションウィンドウで [データソース] を選択し、右上隅の [データソースの作成] をクリックします。
[データソースの作成] ページで、[MaxCompute] を選択します。
[接続の設定] ページで、[クォータコンピューティングリソースグループ] に MaxQA クォータコンピューティングリソースの名前を入力して、MaxQA 機能を有効にし、MaxQA コンピューティングリソースを使用します。詳細については、「Quick BI と MaxCompute の接続」をご参照ください。
たとえば、[クォータコンピューティングリソースグループ] フィールドに maxqa (MaxQA クォータ名) を入力します。
Guandata BI
ドライバーの追加
MaxCompute JDBC Driver v3.8.5 以降を Guandata BI にアップロードします。詳細については、「MaxCompute JDBC」および「リリースノート」をご参照ください。
Guandata BI コンソールの右上隅にある
アイコンをクリックして、[管理センター] に移動します。[システム設定] > [一般設定] をクリックし、[ドライバーとコネクタ] ページに移動します。
[ドライバー管理] タブで、[ドライバーの追加] をクリックし、[ドライバー名] を入力して設定を保存します。
新しいドライバーの名前をクリックします。[ドライバーリスト] セクションで、[ファイルのアップロード] をクリックして MaxCompute JDBC ドライバーをアップロードします。次に、[ドライバー] に com.aliyun.odps.jdbc.OdpsDriver を選択し、[適用] をクリックします。
MaxQA を使用して MaxCompute データソースに接続するためのデータアカウントを作成します。
トップメニューバーで、[データ準備] をクリックします。
左側のペインで、[データアカウント] タブをクリックします。右上隅で、[新しいデータアカウント] をクリックし、プロンプトに従ってアカウントを設定します。
パラメーター
説明
コネクタの選択
[MaxCompute] を選択します。
データアカウントの設定
接続方法
[JDBC URL] を選択します。
ログオン ID
ご利用の Alibaba Cloud アカウントの AccessKey ID。
ログオンキー
ご利用の Alibaba Cloud アカウントの AccessKey Secret。
JDBC URL
MaxQA JDBC 接続文字列の URL フォーマットは次のとおりです:
jdbc:odps:<maxcompute_endpoint>?project=<maxcompute_projectName>&charset=UTF-8&interactiveMode=true"aName=<your_quota_nickName>&autoSelectLimit=1000000000。次の表にパラメーターを説明します。
maxcompute_endpoint:MaxCompute サービスが配置されているリージョンのエンドポイント。詳細については、「エンドポイント」をご参照ください。たとえば、中国 (杭州) リージョンのエンドポイントはhttps://service.cn-hangzhou.maxcompute.aliyun.com/apiです。maxcompute_projectName:MaxCompute プロジェクト名。例:maxqatomax。your_quota_nickName:使用するインタラクティブクォータグループの名前。例:maxfor1。インタラクティブクォータグループの作成方法については、「コンピューティングリソース - クォータ管理」をご参照ください。
例:
jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000SQL バージョン
[2.0/hive 互換モード] を選択します。
最大接続数
デフォルト値は 16 です。
ドライバー
[カスタム] を選択し、作成したドライバーを選択します。
[接続テスト] をクリックします。[接続に成功しました] というメッセージが表示されたら、[次へ] をクリックします。
データアカウント情報を確認し、カスタムの [表示名] を入力して、[確認して作成] をクリックします。
SQL Workbench/J
プロファイル設定で JDBC URL を変更して、SQL Workbench/J で MaxQA を有効にします。詳細については、「JDBC を使用した SQL Workbench/J の設定」をご参照ください。
URL フォーマット:
jdbc:odps:<MaxCompute_endpoint>? project=<MaxCompute_project_name>&charset=UTF-8&interactiveMode=true"aName=<your_quota_group_name>&autoSelectLimit=1000000000"パラメーター
必須
説明
MaxCompute_endpoint
はい
MaxCompute サービスリージョンのエンドポイント。詳細については、「エンドポイント」をご参照ください。たとえば、中国 (杭州) リージョンのエンドポイントは
https://service.cn-hangzhou.maxcompute.aliyun.com/apiです。MaxCompute_project_name
はい
MaxCompute プロジェクト名。例:
maxqatomax。your_quota_group_name
はい
使用したいインタラクティブクォータグループの名前。例:
maxfor1。URL の例:
jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000
Java SDK の使用
Java SDK の詳細については、「Java SDK の概要」をご参照ください。
Maven で POM 依存関係を設定します。以下のコードは一例です。
<dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-sdk-core</artifactId> <version>${Latest Version}</version> </dependency>重要上記のコードでは、
Latest Versionはプレースホルダーです。プロジェクトを正常にコンパイルするには、特定の SDK バージョン番号に置き換える必要があります。Maven Central Repository にアクセスして、リリースされているすべての odps-sdk-core バージョンを確認してください。最新バージョンを使用することを推奨します。バージョン番号のフォーマットは X.X.X-public です。Java プログラムを作成します。以下のコードは一例です。
import com.aliyun.odps.Odps; import com.aliyun.odps.OdpsException; import com.aliyun.odps.account.Account; import com.aliyun.odps.account.AliyunAccount; import com.aliyun.odps.sqa.ExecuteMode; import com.aliyun.odps.sqa.SQLExecutor; import com.aliyun.odps.sqa.SQLExecutorBuilder; import java.util.HashMap; import java.util.Map; public class MaxCompute { public static void main(String args[]) { // アカウントとプロジェクト情報を設定します。 // Alibaba Cloud アカウントの AccessKey ID は、すべての API 操作を呼び出す権限を持っています。これは高リスクな操作です。RAM ユーザーを作成して使用し、API 操作を呼び出すか、日常の O&M を実行することを推奨します。RAM ユーザーを作成するには、RAM コンソールにログインしてください。 // この例では、AccessKey ID と AccessKey Secret は環境変数に保存されています。ビジネスニーズに応じて、設定ファイルに保存することもできます。 // コードに AccessKey ID と AccessKey Secret をハードコーディングしないことを強く推奨します。これはセキュリティリスクをもたらします。 Account account = new AliyunAccount(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); Odps odps = new Odps(account); odps.setDefaultProject("maxqatomax"); odps.setEndpoint("https://service.cn-hangzhou.maxcompute.aliyun.com/api"); // SQLExecutor のビルドを準備します。 SQLExecutorBuilder builder = SQLExecutorBuilder.builder(); SQLExecutor sqlExecutor = null; try { // デフォルトで MaxQA モードを使用するエグゼキュータを作成します。 // enableMcqaV2(true) は MaxQA モードを有効にします sqlExecutor = builder.odps(odps) .executeMode(ExecuteMode.INTERACTIVE) .quotaName("maxfor1") .enableMcqaV2(true) .build(); // 必要に応じて、クエリにカスタム設定を渡すことができます。 Map<String, String> queryHint = new HashMap<>(); queryHint.put("odps.sql.mapper.split.size", "128"); // クエリジョブを送信します。ヒントを渡すことができます。 sqlExecutor.run("select count(1) from test_table;", queryHint); // 現在のクエリジョブの Logview。 System.out.println("Logview:" + sqlExecutor.getLogView()); // 現在のクエリジョブのインスタンス ID。 System.out.println("InstanceId:" + sqlExecutor.getQueryId()); } catch (OdpsException e) { e.printStackTrace(); } finally { if (sqlExecutor != null) { // リソースを解放するためにエグゼキュータを閉じます。 sqlExecutor.close(); } } } }
PyODPS の使用
PyODPS v0.12.1 以降は MaxQA をサポートしています。以下のコードは一例です。
import os
from odps import ODPS
# アカウントとプロジェクト情報を設定します。
# ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET
# 環境変数が AccessKey ID と AccessKey Secret に設定されていることを確認してください。
# AccessKey ID と AccessKey Secret の文字列を直接使用することは推奨しません。
o = ODPS(
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
project='maxto****',
endpoint='https://service.cn-hangzhou.maxcompute.aliyun.com/api',
)
# 必要に応じて、クエリにカスタム設定を渡すことができます。
hints = {"odps.sql.mapper.split.size": "128"}
inst = o.execute_sql_interactive(
'select count(1) from test_table',
use_mcqa_v2=True,
quota_name='maxfor1',
# quota_name を MaxQA インスタンスのインタラクティブクォータグループの名前に設定します。
hints=hints,
)
# 現在のクエリジョブの Logview。
print(inst.get_logview_address())
# 現在のクエリジョブのインスタンス ID。
print(inst.id)
# データを 1 行ずつ読み取ります。
with inst.open_reader() as reader:
result = [res.values for res in reader]SQLAlchemy または SQLAlchemy をサポートする他のサードパーティツールで PyODPS を使用したクエリアクセラレーション
PyODPS v0.12.2 以降は、SQLAlchemy を使用して MaxQA 経由で MaxCompute データをクエリすることをサポートしています。接続文字列に以下のパラメーターを指定します。
パラメーター | 必須 | 説明 |
interactive_mode=v2 | はい | クエリアクセラレーション機能のメインスイッチ。 |
quota_name=<YOUR_INTERACTIVE_QUOTA_GROUP_NAME> | はい | インタラクティブクォータグループの名前。 |
reuse_odps=true | いいえ | 強制的な接続の再利用を有効にします。Apache Superset などの一部のサードパーティツールでは、このオプションでパフォーマンスが向上する場合があります。 |
たとえば、以下の接続文字列は MaxQA と強制的な接続の再利用を有効にします。
odps://<access_id>:<ACCESS_KEY>@<project>/?endpoint=<endpoint>"a_name=<YOUR_INTERACTIVE_QUOTA_GROUP_NAME>&interactive_mode=v2&reuse_odps=trueジョブが MaxQA モードを使用しているかの確認
Logview ページから
ジョブが完了した後、その Logview ページに移動して、MaxQA モードで実行されたことを確認します。以下を確認してください。
MaxCompute InstanceId の末尾が
_mcqaであること。クォータニックネームは、指定されたインタラクティブなクォータの名前です。
[Summary] タブで、ジョブの実行モードが
mcqa 2.0であること。
ジョブの O&M ページから
MaxCompute コンソールにログインし、左上隅でリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
ジョブ運用保守 ページで、標準リスト タブをクリックし、ジョブタイプ を [MCQA2] に設定して、指定した 時間範囲 内の MaxQA ジョブを表示します。