Serverless Spark SQL节点

通过创建Serverless Spark SQL节点,实现基于EMR Serverless Spark计算资源的分布式SQL查询引擎处理结构化数据,提高作业的执行效率。

适用范围

  • 计算资源限制:仅支持绑定EMR Serverless Spark计算资源,需确保资源组和计算资源网络连通。

  • 资源组限制:仅支持使用Serverless资源组运行该类型任务。

  • (可选,RAM账号需要)进行任务开发的RAM账号已被添加至对应工作空间中,并具有开发空间管理员(权限较大,谨慎添加)角色权限,添加成员的操作详情请参见为工作空间添加空间成员

    如果您使用的是主账号,则可忽略该添加操作。

新建节点

新建入口参考:创建节点

开发节点

SQL编辑区域开发任务代码,语法支持catalog.database.tablename。若省略catalog,即为集群默认Catalog;若省略catalog.database,即为集群默认Catalog的默认数据库。

Catalog更多信息,请参见EMR Serverless Spark 管理数据目录
-- 需替换 <catalog.database.tablename> 
SELECT * FROM <catalog.database.tablename> 

在代码中使用${变量名}的方式定义变量,并在节点编辑页面右侧调度配置调度参数中为该变量赋值。实现调度场景下代码的动态传参,调度参数使用详情,请参考调度参数支持格式,示例如下。

SHOW TABLES; 
-- 通过${var}定义名为var的变量,若将该变量赋值${yyyymmdd},可通过调度任务实现创建以业务日期作为后缀的表。
CREATE TABLE IF NOT EXISTS userinfo_new_${var} (
  ip STRING COMMENT'IP地址',
  uid STRING COMMENT'用户ID'
)PARTITIONED BY(
  dt STRING
); --可以结合调度参数使用。
说明

SQL语句最大不能超过130KB。

调试节点

  1. 调试配置选择配置计算资源资源组

    配置项

    说明

    计算资源

    选择已绑定的EMR Serverless Spark计算资源。若无可用计算资源,可在下拉框中选择新建计算资源

    资源组

    选择已绑定工作空间的资源组。

    脚本参数

    在配置节点内容时,通过${参数名}的方式定义变量,需要在脚本参数处配置参数名参数值信息,任务运行时会将它动态替换为真实的取值。详情请参见调度参数支持格式

    ServerlessSpark节点参数

    Spark程序运行参数,支持:

  2. 在节点编辑页面上方工具栏,单击运行SQL任务。

    重要

    发布前,需将调试配置ServerlessSpark节点参数同步至调度配置ServerlessSpark节点参数处。

后续步骤

  • 节点调度:若项目目录下的节点需要周期性调度执行,您需要在节点右侧的调度配置中设置调度策略,配置相关的调度属性。

  • 节点发布:若任务需要发布至生产环境执行,请单击界面image图标唤起发布流程,通过该流程将任务发布至生产环境。项目目录下的节点只有在发布至生产环境后,才会进行周期性调度。

  • 任务运维:任务发布后,您可以在运维中心查看周期任务的运行情况。详情请参见运维中心入门

附录:DataWorks参数

高级参数

配置说明

FLOW_SKIP_SQL_ANALYZE

SQL语句执行方式。取值如下:

  • true:表示每次执行多条SQL语句。

  • false(默认值):表示每次执行一条SQL语句。

说明

该参数仅支持用于数据开发环境测试运行流程。

DATAWORKS_SESSION_DISABLE

任务提交方式。在数据开发执行任务时,默认将任务提交至SQL Compute执行。您可以通过该参数指定任务是通过SQL Compute执行还是提交到队列执行。

  • true:任务提交到队列执行。默认使用绑定计算资源时指定的默认队列。当DATAWORKS_SESSION_DISABLE参数为true时,您可以配置SERVERLESS_QUEUE_NAME参数来指定数据开发执行时任务提交的队列。

  • false(默认值):任务提交到SQL Compute执行。

    说明

    该参数仅在数据开发执行时生效,调度运行时不生效。

SERVERLESS_RELEASE_VERSION

Spark引擎版本,默认使用管理中心计算资源中集群配置的默认引擎版本。如需为不同任务设置不同的引擎版本,您可在此进行设置。

说明

注册集群指定的SQL Compute(会话)在EMR Serverless Spark控制台处于未启动状态的时候,高级设置配置中的SERVERLESS_RELEASE_VERSION参数才会生效。

SERVERLESS_QUEUE_NAME

指定任务提交的资源队列。当任务指定提交到队列执行时,默认使用管理中心集群管理中集群配置的默认资源队列。如有资源隔离和管理需求,可通过添加队列实现。详情请参见管理资源队列

配置方式:

  • 通过设置节点参数指定任务提交的资源队列。

  • 通过设置全局Spark参数指定任务提交的资源队列。

说明
  • 注册集群指定的SQL Compute(会话)在EMR Serverless Spark控制台处于未启动状态的时候,高级设置配置中的SERVERLESS_QUEUE_NAME参数才会生效。

  • 数据开发执行时:您需要先将DATAWORKS_SESSION_DISABLE设置为true,任务才会提交到队列执行。此时配置SERVERLESS_QUEUE_NAME参数指定任务队列才会生效。

  • 运维中心调度执行时:任务会强制提交到队列执行,无法提交到SQL Compute执行。

SERVERLESS_SQL_COMPUTE

指定SQL Compute(SQL会话),默认使用管理中心计算资源中集群配置的默认SQL Compute。如需面向不同任务设置不同的SQL会话,您可在此进行设置。如需创建管理SQL会话,详情请参见管理SQL会话

其他

自定义Spark Configuration参数,添加Spark特有属性参数。

配置格式如下: spark.eventLog.enabled : false ,DataWorks会自动在最终下发EMR集群的代码中进行补全,格式为:--conf key=value

说明

DataWorks支持您设置全局Spark参数,即按照工作空间粒度指定DataWorks各模块使用的Spark参数,您可自行指定该全局Spark参数的优先级是否高于指定模块内的Spark参数。关于设置全局Spark参数,详情请参见设置全局Spark参数