You need to enable JavaScript to run this app.
导航
EMR Serverless Spark SQL
最近更新时间:2024.09.04 11:44:24首次发布时间:2024.05.24 15:27:43

1 概述

EMR Serverless Spark 是火山引擎 E-MapReduce(EMR)框架下 Serverless 形态的数据产品,提供开箱即用,完全兼容开源的 Spark 引擎能力。
DataLeap 支持对接 EMR Serverless Spark 实例,通过编写 Spark SQL 的方式,在 DataLeap 数据开发中进行 SQL 作业开发,完成 Spark SQL 的解析与任务提交,实现定制化数据加工、查询分析需求。支持 Serverless 全托管能力,开箱即用,无需额外集群管理,EMR Serverless Spark 语法 100% 兼容开源 Spark 3.5.1 版本,详细语法可参考:Spark 3.5.1 语法
下面将向您介绍 DataLeap 中 EMR Serverless Spark SQL 任务配置的详细说明。

2 使用前提

  1. 目前 DataLeap 绑定 EMR Serverless Spark 实例处于白名单使用阶段,您可通过提工单的方式,请 DataLeap 支持同学进行白名单开通使用。
  2. 已开通 EMR Serverless Spark 队列资源实例。详见队列管理
  3. 需开通 DataLeap 服务版本中大数据分析、DataOps敏捷研发分布式数据自治的服务,项目方可继续绑定 EMR Serverless Spark 实例。详见版本服务说明
  4. 已在 DataLeap 项目控制台中,绑定相应的 EMR Serverless Spark 服务实例。详见创建项目
  5. 子用户访问 EMR Serverless Spark 队列资源时,需确保拥有 EMRServerlessFullAccessEMRServerlessReadOnlyAccess 权限策略,子用户可请主账号在访问控制界面进行权限策略添加。

3 新建任务

  1. 登录 DataLeap租户控制台
  2. 概览界面,显示加入的项目中,单击数据开发进入对应项目。
  3. 任务开发界面,左侧导航栏中,单击新建任务按钮,进入新建任务页面。
  4. 选择任务类型:
    1. 分类:数据开发
    2. 绑定引擎:EMR Serverless Spark

      注意

      在项目控制台管理界面中,如果新增或修改了引擎,那么在数据开发任务新建窗口中,需刷新整个 DataLeap 数据开发界面,才能看到新增或修改后的引擎任务类型。

    3. 关联实例:显示项目绑定时的集群实例信息。
    4. 选择任务:离线数据 EMR Serverless Spark SQL
  5. 填写任务基本信息:
    1. 任务名称:输入任务的名称,只允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需要在127个字符以内。
    2. 保存至:选择任务存放的目标文件夹目录。
  6. 单击确定按钮,成功创建任务。

图片

4 任务配置说明

4.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;

4.2 导航栏功能区解析

功能名称

描述

格式化

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

解析

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

注意

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

执行引擎

默认支持选择 Spark 引擎。

5 调度设置

SQL 任务配置完成后,在右侧导航栏中,单击调度配置按钮,进入调度配置窗口,您可以在此设置任务基本信息、调度属性、依赖等信息,详细参数设置详见:调度设置
其中在调度基本信息 > 计算队列选择时,您可下拉选择项目控制台中已绑定的 Spark 计算队列,SQL 任务支持选择公共队列SQL 专用资源通用资源队列,来执行 EMR Serverless Spark SQL 任务。
更多计算队列操作详见队列管理

5.1 任务产出数据登记

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

  • 自动登记:
    任务产出数据使用“自动登记”模式,则任务每次上线时,系统将根据代码解析结果自动进行更新。您可单击查看“线上版本”的产出数据、查看“草稿版本”的产出数据按钮,查看当前任务不同版本下的产出数据自动登记结果。
  • 手动登记:
    您手动填写的内容即为任务产出,支持填写多个。其他任务依赖时,您可在其调度设置界面,通过依赖推荐手动添加的方式,依据此处 EMR Serverless Spark SQL 任务产出的库表名信息来搜索添加依赖。 具体登记内容包括以下数据类型:

    说明

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

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

6 调试运行

6.1 调试任务

代码逻辑和参数配置完成后,您可以在界面进行调试操作。
编辑器上方,单击保存按钮后,再单击调试按钮,开始运行任务。

注意

  • 调试操作,直接使用线上数据进行调试,需谨慎操作。
  • 本任务类型支持调试执行成功或失败后发送消息通知,您可根据业务情况,前往项目控制台 > 配置信息 > 消息通知设置中,选择是否开启任务调试运行成功失败通知。
    • 默认通知方式为邮箱,您需在“账号管理”中,提前绑定相应的安全邮箱信息;
    • 您也可根据业务需要,自行配置飞书应用机器人,通过飞书的方式发送消息通知,飞书消息通知前置操作详见1.1 飞书应用机器人创建

6.2 调试记录

调试任务开始运行后,可在下方查看调试记录:

  • 在调试记录左侧,您可通过选择调试状态,筛选出不同调试状态下的历史运行记录。
    • 鼠标移动至调试记录上,可查看包括状态、业务日期、提交人等信息。
    • 双击调试记录,您还可编辑调试名称信息,并回车保存。
      图片
  • 单击调试记录,在调试记录右侧,可以查看运行记录的日志、结果等详细信息:
    • 日志:查看运行代码日志详情,您也可前往 EMR Serverless Spark 控制台 > 作业管理页签中,查看任务执行更多详细日志情况。
      图片
    • 结果:查看运行代码后,查询的结果信息。

      说明

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

      1. 前往项目控制台,调整项目数据安全设置上限,上限 20 万行。您也可以通过提工单形式,请 DataLeap 支持同学将下载上限调整到 300 万行。
      2. 项目控制台 > 配置信息 > 数据安全设置 > 查询结果勾选允许下载,您便可在查询结果区域单击下载按钮,下载完整数据至本地查看。

      操作详见:新建项目

7 提交任务

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

注意

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

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