You need to enable JavaScript to run this app.
导航

EMR SQL

最近更新时间2023.12.11 10:57:26

首次发布时间2021.08.13 15:07:14

1 概述

使用EMR SQL 语句,从源表中获取待加工数据,加工完成后写入目标表。EMR 支持 Hive 和 Spark 两种执行引擎。

下面将向您介绍 EMR SQL 任务配置的详细说明。

2 使用前提

若仅开通 Dataleap产品 湖仓一体的服务,不支持绑定 EMR 引擎。

3 任务配置说明

3.1 新建任务

任务配置步骤如下:

  1. 登录 DataLeap租户控制台

  2. 概览界面,显示加入的项目中,单击数据开发进入对应项目。

  3. 任务开发界面,左侧导航栏中,单击新建任务按钮,进入新建任务页面。

  4. 选择任务类型:

    1. 分类:数据开发

    2. 绑定引擎:EMR

    3. 关联实例:在下拉列表中选择项目绑定时的 Hadoop 引擎实例,项目支持绑定多个 EMR 引擎,您可在多个引擎实例中选取该任务需执行的引擎实例。多引擎绑定详见创建项目

    4. 选择任务:离线数据 EMR SQL

  5. 填写任务基本信息:

    1. 任务名称:输入任务的名称,只允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需要在127个字符以内。

    2. 保存至: 选择任务存放的目标文件夹目录。

  6. 单击确认按钮,成功创建任务。

3.2 编辑任务

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

//方式1静态分区,场景:根据数据到来的频率,新数据的到来时间确定,分区的值是确定的。
insert overwrite table 目标db.目标表名 partition (date = "${date}")
select
name,
age
from
源库名.源表名
where
`date` = '${DATE-1}'
//方式2动态分区,谨慎使用,根据已有数据进行动态分区,分区的值是非确定的。
insert overwrite table 目标db.目标表名 partition (p_date,app)
select
user_id,
date as p_date,
app_name as app//分区字段
from
源库名.源表名
where
`date` = '${DATE-1}'

3.3 智能代码编辑器

智能代码编辑器具备以下能力:

功能说明
Text Editor具备 Editor 基础能力、列编辑、代码格式化、代码解析等,辅助提升开发效率。
智能联想及补全开发过程中,支持智能联想库、表、字段、函数、SQL 关键词等。
实时语法检查开发过程触发智能语法检查。
语法解析完成SQL编写后,可以单击解析按钮,检查代码是否存在语法错误以及是否具备引用库表的读写权限。
语法高亮在关键字、函数、参数、字段、字符串等信息中,高亮提醒,提高整体代码的可阅读性。
跳转定义鼠标移动至表名,支持快捷键跳转到数据地图表详情页,Mac按住Command,Windows按住 Control 。
字段展开编写 Select * 查询语句时,使用光标选中 * 号后,会立即有灯泡符号的提示,单击灯泡将自动列出引用表字段 。

代码列编辑

  • 通常需要在 DDL 语言中批量对数据类型,注释,列增加前缀、后缀进行编辑。

  • Mac 按住 ⇧ + ⌥ + Click ,Windows 按住 Shift + Alt + Click

局部代码调试分析

  • 支持多段 SQL 调试运行。

  • 选中某一个分段代码,即可对其运行、格式化、解析等操作。

编辑器右下角的全屏图标alt单击图标,支持全屏代码开发。

3.4 导航栏功能区解析

注意

任务被模板使用后,格式化、表管理、执行引擎选择功能将不支持使用。

功能名称描述
格式化依据在个性化设置中的SQL格式化风格的设置,格式化书写的代码,使其语法结构看起来简洁明了。
解析解析检查书写的 SQL 代码的语法和语义正确性,运行前检查语法错误信息,防止运行出错。

任务模板

您可以选择是否通过任务模板方式,便捷快速的复用代码模板逻辑,在弹窗中选择 EMR SQL 任务模板,并选择相应的版本号,输入替换的参数即可完成复用。

注意

  • 使用任务模板时,界面编辑器不支持再次编辑,若当前任务模板代码,不符合您当前业务场景逻辑,您可通过修改或新建任务模板,形成新版本的任务模板,来实现不同业务场景的复用。

  • 修改模板时,需注意其他任务引用情况,操作说明详见:任务模板

表管理若数据需要存入的表尚未创建,则编写完 SQL 语句后,单击表管理 > 快速建表 ,可基于解析代码快速填充建表页面。
执行引擎目前支持 Spark、Hive。

3.5 调度设置

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

3.5.1 任务产出数据登记

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

  • 自动登记:

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

  • 手动登记:

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

    • HDFS:该任务会写数据到 HDFS 目录,请填写 HDFS 路径名,路径名可以使用变量。

    • Hive:该任务会写数据到 Hive 表,请填写 Hive 库、表名、分区名,分区内容可以使用变量。

    • 其他:该任务不写数据到 Hive 表或 HDFS 目录。

3.6 查询控制台

3.6.1 调试任务

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

说明

如果 DataLeap 控制台中创建了相关的建表规范管理,则 EMR SQL 语句中,包含建表逻辑,且创建的表在建表规范生效范围内时,您在对任务的解析运行提交时,会触发相应的建表规范检查。
建表规范操作说明请参见“建表规范管理”。

3.6.2 调试记录

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

  • 在调试记录左侧,您可通过选择调试状态,筛选出不同调试状态下的历史运行记录。
    • 鼠标移动至调试记录上,可查看包括状态、业务日期、提交人等信息。

    • 双击调试记录,您还可编辑调试名称信息,并回车保存。

  • 单击调试记录,在调试记录右侧,可以查看运行记录的概览、日志、结果等详细信息:
    • 概览:查看调试业务时间、开始时间、结束时间、运行时长、提交人和运行代码等信息。

    • 日志:查看运行代码日志详情,单击界面中下载日志按钮,支持将完整日志下载到本地。

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

3.7.3 查询结果Excel展示

一段代码执行完成后,会展现查询结果,在整个结果页中用了类似 Excel 功能,无需跑多段代码就可对数据进行操作和分析,以增强代码逻辑的改进。
功能描述如下:

功能说明
单列字段搜索对单个字段进行模糊和精确查找。
升降序排列数据排序功能。
隐藏列只显示需要操作的列数据。
复制该行鼠标移动到想要复制的具体某条数据,单击复制该行,即完成复制整行操作。
复制该列鼠标移动到想要复制的具体某条数据,单击复制该列,即完成复制整列操作。
复制选中鼠标圈选需要复制的数据,单击复制选中,即完成复制选中的数据。
全局搜索在整个工作表中查找数据。

下载

  • 项目控制台 > 配置信息 > 数据安全设置 > 查询结果勾选允许下载时,才支持下载结果页数据。

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

    b. 查询结果区域单击下载按钮,下载完整数据至本地查看。

操作详见:新建项目

4 提交任务

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