讀寫MaxCompute資料

更新時間:
Copy as MD

本文介紹如何在AnalyticDB for MySQL中通過Spark SQL讀寫MaxCompute資料。

前提條件

操作步驟

  1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,然後單擊目的地組群ID。

  2. 在左側導覽列,單擊作業開發 > SQL開發

  3. SQL Console視窗,選擇Spark引擎和Job型資源群組。

  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專案(Project)名稱。本文樣本為spark_on_maxcompute

    說明

    此處為MaxCompute專案名稱,非工作空間名稱。您可以登入MaxCompute控制台,左上方切換地區後,在左側導覽列選擇管理配置 > 项目管理,查看具體的MaxCompute專案名稱。

    spark.hadoop.odps.endpoint

    MaxCompute所在地區對應VPC網路的Endpoint

    spark.hadoop.odps.access.id

    阿里雲帳號或者具備MaxCompute專案存取權限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開發編輯器