读写MaxCompute数据

更新时间:

本文介绍如何在云原生数据仓库 AnalyticDB MySQL 版中通过Spark SQL读写MaxCompute数据。

前提条件

操作步骤

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版、基础版或湖仓版页签下,单击目标集群ID。

  2. 在左侧导航栏,单击作业开发 > SQL开发

  3. SQLConsole窗口,选择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=LTAI****************;
    SET spark.hadoop.odps.access.key=yourAccessKeySecret;
    SET spark.sql.catalog.odps.tableWriteProvider=tunnel;
    SET spark.sql.catalog.odps.tableReadProvider=tunnel;
    
    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.adbtest2.spark_test2 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。

    查询各地域VPC网络的Endpoint,请参见各地域Endpoint对照表(阿里云VPC网络连接方式)

    spark.hadoop.odps.access.id

    阿里云账号或者具备MaxCompute项目访问权限RAM用户的AccessKey ID。

    如何获取AccessKey ID,请参见获取AccessKey信息

    spark.hadoop.odps.access.key

    阿里云账号或者具备MaxCompute项目访问权限RAM用户的AccessKey Secret。

    如何获取AccessKey Secret,请参见获取AccessKey信息

    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开发编辑器