You need to enable JavaScript to run this app.
导航
EMR Serverless Spark SQL
最近更新时间:2025.06.05 10:59:07首次发布时间:2024.05.24 15:27:43
我的收藏
有用
有用
无用
无用

DataLeap 支持对接火山引擎 E - MapReduce(EMR)中的 Serverless Spark 实例,可在 DataLeap 数据开发中编写 Spark SQL 进行作业开发,实现周期调度的定制化数据加工与查询分析。下面将向您介绍 DataLeap 中 EMR Serverless Spark SQL 任务配置的详细说明。

1 背景信息

在大数据处理领域,企业对高效、便捷且兼容开源的计算工具需求日益增长。EMR Serverless Spark 全托管形态的数据产品应运而生。具备开箱即用的特性,无需额外集群管理,且能提供完全兼容开源的 Spark 引擎能力。而 EMR Serverless Spark SQL 任务可用于加工处理 LAS Catalog 元数据库表中的数据,支持基于 Spark SQL 进行 SQL 作业开发,并完成 Spark SQL 的解析与任务提交,其语法 100% 兼容开源 Spark 3.5.1 版本,详细语法可参考 Spark 3.5.1 版本

2 使用限制

  1. 需开通 DataLeap 服务版本中大数据分析、DataOps敏捷研发分布式数据自治的服务,项目方可继续绑定 EMR Serverless Spark 实例。详见版本服务说明
  2. SQL 查询结果因结果页界面预览数据上限为 1000,以及项目数据安全设置均存在限制,查询结果显示数据可能小于实际数据量。建议按如下处理方式:
    1. 前往项目控制台,调整项目数据安全设置上限,上限 1 万行。
    2. 项目控制台 > 配置信息 > 数据安全设置 > 查询结果勾选允许下载,您便可在查询结果区域单击下载按钮,下载完整数据至本地查看。
      操作详见:新建项目
  3. 本任务类型暂不支持调试执行成功或失败后发送消息通知。

3 使用前提

  1. 已开通 EMR Serverless Spark 队列资源实例。详见队列管理
  2. 已在 DataLeap 项目控制台中,绑定相应的 EMR Serverless Spark 服务实例。详见创建项目
  3. 子用户访问 EMR Serverless Spark 队列资源时,需确保拥有 EMRServerlessFullAccessEMRServerlessReadOnlyAccess 权限策略,子用户可请主账号在访问控制界面进行权限策略添加,或者也可通过自定义策略方式进行配置相应权限。详见自定义策略

4 新建任务

  1. 登录 DataLeap租户控制台
  2. 在具体项目中进入数据开发界面,并单击新建任务按钮进行任务新建。
  3. 依次选择数据开发 > EMR Serverless Spark > EMR Serverless Spark SQL 任务类型。
  4. 填写任务基本信息,单击确定按钮,完成任务创建。

注意

  1. 在项目控制台管理界面中,如果新增或修改了引擎,那么在数据开发任务新建窗口中,需刷新整个 DataLeap 数据开发界面,才能看到新增或修改后的引擎任务类型。
  2. 任务名称信息仅允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需要在127个字符以内。

Image

5 任务配置说明

5.1 编辑 SQL 代码

任务创建成功后,进入代码编辑器界面,以 SQL 语句示例代码如下:

说明

--创建数据库,指定自定义 TOS 桶路径进行存储,您需确保该 TOS 桶存在,并且当前用户有该桶路径的读写权限。
create database db_demo location 'tos://您的tos bucket name/warehouse/';

--建表
CREATE  TABLE db_demo.table_01 (`id` INT, `name` STRING, `age` INT)
        PARTITIONED BY(date STRING);

--插入数据
INSERT INTO TABLE db_demo.table_01 PARTITION (date = '20240403') VALUES(1, 'testyw', 26),
(2, '章三', 26),
(3, '李四', 23),
(4, '王五', 24),
(5, '刘六', 23),
(6, '方园', 88);

--查数
SELECT  *
FROM    db_demo.table_01;

5.2 导航栏功能区解析

功能名称

描述

格式化

依据在个性化设置中的SQL格式化风格的设置,格式化书写的代码,使其语法结构看起来简洁明了。

解析

解析检查书写的 SQL 代码的语法和语义正确性,运行前检查语法错误信息,防止运行出错。

注意

如果任务在调度设置 > 输入参数中使用项目参数类型,且参数设置勾选了加密选项,当非项目管理员操作任务解析时,由于解析不到加密参数会提示异常。此时若确保 SQL 符合执行逻辑,则您可跳过该解析异常提示。

执行引擎

默认支持选择 Spark 引擎。

6 调度设置

SQL 任务配置完成后,在右侧导航栏中,单击调度配置按钮,进入调度配置窗口,您可以在此设置任务基本信息、调度属性、依赖等信息,详细参数设置详见:调度设置

  • 调度基本信息 > 计算队列选择时,您可下拉选择项目控制台中已绑定的 Spark 计算队列,SQL 任务支持选择公共队列SQL 专用资源通用资源队列,来执行 EMR Serverless Spark SQL 任务。
    更多计算队列操作详见队列管理
    Image
  • 调度基本信息 > 是否使用项目模板选择时,您可按需选择当前任务,是否使用项目控制台已创建的**模板管理。**在模版管理中,您可新建通用的任务执行队列、优先级、Set 参数设置等模板内容,来提升日常任务配置效率。详见模板管理

    注意

    选择使用项目模板的任务,模板中配置的内容可覆盖任务原配置,且模版配置内容在任务中不可进行修改,若需要修改模板参数,您需前往项目控制台 > 模板管理进行修改,该操作会对所有使用该模板的任务生效,需谨慎操作。

    Image

6.1 任务产出数据登记

任务产出数据登记,用于记录任务、数据血缘信息,并不会对代码逻辑造成影响。您可在调度设置 > 任务产出数据登记一栏中,设置产出登记相关信息。
对于系统无法通过解析获取产出信息的其他任务,EMR Serverless Spark SQL 任务可自动或手动方式登记其产出信息。如果任务含有 LAS Catalog 库表数据的产出,则强烈建议填写,以便后续维护任务数据血缘关系。

  • 自动登记:
    任务产出数据使用“自动登记”模式,则任务每次上线时,系统将根据代码解析结果自动进行更新。您可单击查看“线上版本”的产出数据、查看“草稿版本”的产出数据按钮,查看当前任务不同版本下的产出数据自动登记结果。

    注意

    选择自动登记时,若 SQL 代码查询的字段名中包含 SQL 关键字,则需对其进行转义操作,即添加转义符号,如将 group 转义为 `group`、order 转义为 `order` 等。若不进行转义,将会影响后续数据地图中的数据血缘图谱、表生产信息等内容展现,或者您也可通过下方的手动登记方式,进行手动登记任务产出数据。

  • 手动登记:
    您手动填写的内容即为任务产出,支持填写多个。其他任务依赖时,您可在其调度设置界面,通过依赖推荐手动添加的方式,依据此处 EMR Serverless Spark SQL 任务产出的库表名信息来搜索添加依赖。 具体登记内容包括以下数据类型:

    说明

    若刚通过 SQL 方式创建的库表,手动登记选择不到库表时,您可先前往数据地图 > 元数据采集界面,手动执行元数据采集后,便可继续进行手动登记选择库表操作。手动执行采集操作详见元数据采集

    • EMR Serverless Spark:该任务逻辑会将数据写入到 LAS Catalog 表,需填写 LAS Catalog 的数据库名、表名、分区名,分区内容可以使用变量,如 ${date}、${hour} 形式。
    • 其他:该任务逻辑不写数据到 LAS Catalog 表。

7 调试运行

代码逻辑和参数配置完成,单击保存调试按钮,便可开始运行任务。同时您也可在下方查看调试记录:

注意

  • 调试操作,直接使用线上数据进行调试,需谨慎操作。
  • 本任务类型暂不支持调试执行成功或失败后发送消息通知。
  • 在调试记录左侧,您可通过选择调试状态,筛选出不同调试状态下的历史运行记录。

    • 鼠标移动至调试记录上,可查看包括状态、业务日期、提交人等信息。
    • 双击调试记录,您还可编辑调试名称信息,并回车保存。
      Image
  • 单击调试记录,在调试记录右侧,可以查看运行记录的日志、结果等详细信息:

    • 概览:查看运行结果的概览情况,包括调试业务日期、执行时长和 TrackingURL 执行详情链接等信息。
    • 日志:查看任务执行日志详情,可在此处查看引擎对应的 JobManager、Submit 和 Driver 日志详情信息。您也可前往 EMR Serverless Spark 控制台 > 队列详情 > 计算组 > 作业实例管理页签中,查看任务执行更多详细日志情况。

      说明

      您可通过 DataLeap 执行日志中的引擎实例名称或引擎实例ID 信息,在 EMR Serverless Spark 作业实例管理界面中,进行相关日志信息搜索。
      Image

      Image
    • 结果:查看运行代码后,查询的结果信息。

    说明

    因结果页界面预览数据上限为 1000,以及项目数据安全设置均存在限制,查询结果显示数据可能小于实际数据量。建议按如下处理方式:

    • 前往项目控制台,调整项目数据安全设置上限,上限 1 万行。
    • 项目控制台 > 配置信息 > 数据安全设置 > 查询结果勾选允许下载,您便可在查询结果区域单击下载按钮,下载完整数据至本地查看。
      操作详见:新建项目

8 提交任务

调试任务成功后,单击上方操作栏中的保存提交上线按钮,在提交上线对话框中,选择回溯数据、监控设置、提交设置等参数,最后单击确认按钮,完成作业提交。 提交上线说明详见:数据开发概述---离线任务提交

注意

如果租户主账号或项目管理员在项目控制台>流水线管理中启用了流水线流程校验,则您需要确保提交的任务符合流水线扩展程序的校验规则,才能成功提交。详见4 流水线管理

后续任务运维操作详见:离线任务运维