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

AnalyticDB:MaxCompute データの読み取りと書き込み

最終更新日:Dec 06, 2025

このトピックでは、AnalyticDB for MySQL の Spark SQL を使用して MaxCompute のデータを読み書きする方法について説明します。

前提条件

手順

  1. AnalyticDB for MySQL コンソールにログインします。 コンソールの左上隅でリージョンを選択します。 左側のナビゲーションウィンドウで クラスターリスト をクリックします。 管理するクラスターを見つけ、クラスター ID をクリックします。

  2. 左側のナビゲーションウィンドウで、ジョブを開発する > Sql開発 をクリックします。

  3. [SQLConsole] ウィンドウで、Spark エンジンとジョブリソースグループを選択します。

  4. Spark SQL ジョブを記述します。

    SET spark.adb.version=3.3;
    SET spark.adb.connectors=odps;
    SET spark.sql.catalog.odps=org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog;
    SET spark.sql.extensions=org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensions;
    SET spark.hadoop.odps.project.name=spark_on_maxcompute;
    SET spark.hadoop.odps.end.point=https://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api;
    SET spark.hadoop.odps.access.id=yourAccessKeyID;
    SET spark.hadoop.odps.access.key=yourAccessKeySecret;
    SET spark.sql.catalog.odps.tableWriteProvider=tunnel;
    SET spark.sql.catalog.odps.tableReadProvider=tunnel;
    
    -- この例では、プロジェクト名は "spark_on_maxcompute" です。 この名前が spark.hadoop.odps.project.name パラメーターの値と同じであることを確認してください。
    CREATE TABLE odps.spark_on_maxcompute.spark_test(k1 int, k2 string) partitioned BY (part int);
    INSERT INTO odps.spark_on_maxcompute.spark_test PARTITION(part=1) VALUES(1, 'aaa');
    SELECT * FROM odps.spark_on_maxcompute.spark_test WHERE part=1;

    パラメーター:

    パラメーター

    説明

    spark.adb.version

    Spark のバージョン。 バージョン 3.33.5 のみが MaxCompute データソースへのアクセスをサポートしています。 どちらのバージョンでも選択できます。

    spark.adb.connectors

    データソースの名前。 MaxCompute データを読み書きするには、このパラメーターを odps に設定します。

    spark.sql.catalog.<catalog_name>

    Spark SQL でデータソースを設定するためのメソッドです。 パラメーター名の catalog_name はユーザー定義です。 MaxCompute データを読み書きするには、このパラメーターの値を org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog に設定します。

    例: spark.sql.catalog.odps=org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog

    spark.sql.extensions

    Spark SQL 拡張機能。 MaxCompute データを読み書きするには、このパラメーターを org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensions に設定します。

    spark.hadoop.odps.project.name

    MaxCompute プロジェクトの名前。 この例では、値は spark_on_maxcompute です。

    説明

    これは MaxCompute プロジェクトの名前であり、ワークスペースの名前ではありません。 MaxCompute コンソールにログインし、左上隅でリージョンを切り替え、左側のナビゲーションウィンドウで [設定の管理] > [プロジェクト] を選択して MaxCompute プロジェクトの名前を表示します。

    spark.hadoop.odps.endpoint

    MaxCompute が存在するリージョンの VPC エンドポイント

    spark.hadoop.odps.access.id

    MaxCompute プロジェクトへのアクセス権限を持つ Alibaba Cloud アカウントまたは Resource Access Management (RAM) ユーザーの AccessKey 情報

    spark.hadoop.odps.access.key

    spark.sql.catalog.odps.tableWriteProvider

    データの書き込みに使用されるインターフェイスのタイプ。 MaxCompute にデータを書き込むには、このパラメーターを tunnel に設定します。 これは、データが Tunnel を使用して MaxCompute に書き込まれることを示します。

    説明

    MaxCompute からデータを読み取るだけでよい場合は、このパラメーターを設定する必要はありません。

    spark.sql.catalog.odps.tableReadProvider

    データの読み取りに使用されるインターフェイスのタイプ。 MaxCompute からデータを読み取るには、このパラメーターを tunnel に設定します。 これは、データが Tunnel を使用して MaxCompute から読み取られることを示します。

    説明

    MaxCompute にデータを書き込むだけでよい場合は、このパラメーターを設定する必要はありません。

  5. SQL の実行 をクリックします。

  6. Spark ジョブが正常に実行された後、Spark Jar 開発 ページの アプリケーションリスト タブの ログ でテーブルデータを表示します。 詳細については、「Spark 開発エディター」をご参照ください。