使用EMR SQL 语句,从源表中获取待加工数据,加工完成后写入目标表。EMR 支持 Hive 和 Spark 两种执行引擎。
下面将向您介绍 EMR SQL 任务配置的详细说明。
任务配置步骤如下:
任务创建成功后,进入代码编辑器界面,以 SQL 语句示例代码如下:
说明
EMR Hadoop 集群若开启安全模式,子用户执行 SQL 语句时,需确保有相应的 Hive 库表权限。开启安全模式操作详见绑定 Hadoop 集群,子用户申请库表权限详见申请权限。
//方式1静态分区,场景:根据数据到来的频率,新数据的到来时间确定,分区的值是确定的。 insert overwrite table 目标库名.目标表名 partition (date = "${date}") select name, age from 源库名.源表名 where `date` = '${DATE-1}'
//方式2动态分区,谨慎使用,根据已有数据进行动态分区,分区的值是非确定的。 insert overwrite table 目标库名.目标表名 partition (p_date,app) select user_id, date as p_date, app_name as app//分区字段 from 源库名.源表名 where `date` = '${DATE-1}'
智能代码编辑器具备以下能力:
功能 | 说明 |
---|---|
Text Editor | 具备 Editor 基础能力、列编辑、代码格式化、代码解析等,辅助提升开发效率。 |
智能联想及补全 | 开发过程中,支持智能联想库、表、字段、函数、SQL 关键词等。 |
实时语法检查 | 开发过程触发智能语法检查。 |
语法解析 | 完成SQL编写后,可以单击解析按钮,检查代码是否存在语法错误以及是否具备引用库表的读写权限。 |
语法高亮 | 在关键字、函数、参数、字段、字符串等信息中,高亮提醒,提高整体代码的可阅读性。 |
跳转定义 | 鼠标移动至表名,支持快捷键跳转到数据地图表详情页,Mac按住Command,Windows按住 Control 。 |
字段展开 | 编写 Select * 查询语句时,使用光标选中 * 号后,会立即有灯泡符号的提示,单击灯泡将自动列出引用表字段 。 |
代码列编辑 |
|
局部代码调试分析 |
|
编辑器右下角的全屏图标 | 单击图标,支持全屏代码开发。 |
注意
任务被模板使用后,格式化、表管理、执行引擎选择功能将不支持使用。
功能名称 | 描述 |
---|---|
格式化 | 依据在个性化设置中的SQL格式化风格的设置,格式化书写的代码,使其语法结构看起来简洁明了。 |
解析 | 解析检查书写的 SQL 代码的语法和语义正确性,运行前检查语法错误信息,防止运行出错。 |
任务模板 | 您可以选择是否通过任务模板方式,便捷快速的复用代码模板逻辑,在弹窗中选择 EMR SQL 任务模板,并选择相应的版本号,输入替换的参数即可完成复用。 注意
|
表管理 | 若数据需要存入的表尚未创建,则编写完 SQL 语句后,单击表管理 > 快速建表 ,可基于解析代码快速填充建表页面。 |
执行引擎 | 目前支持 Spark、Hive。 注意 若 EMR Hadoop 集群,在集群绑定时,选择开启安全模式访问,并在 EMR 集群的 Ranger 服务中已开启 Hive Plugin 或 SparkSQL Plugin,则选择不同执行引擎运行任务前,您需先保障执行账号拥有数据库表的访问权限。详见申请权限。 |
任务配置完成后,在右侧导航栏中,单击调度配置按钮,进入调度配置窗口,您可以在此设置任务基本信息、调度属性、依赖等信息,详细参数设置详见:调度设置。
任务产出数据登记,用于记录任务、数据血缘信息,并不会对代码逻辑造成影响。您可在调度设置 > 任务产出数据登记一栏中,设置产出登记相关信息。
对于系统无法通过解析获取产出信息的其他任务,EMR SQL 任务可自动或手动方式登记其产出信息。如果任务含有 Hive 库表数据或 HDFS 目录数据的写入操作,则强烈建议填写,以便后续维护任务数据血缘关系。
自动登记:
任务产出数据使用“自动登记”模式,则任务每次上线时,系统将根据代码解析结果自动进行更新。您可单击查看“线上版本”的产出数据、查看“草稿版本”的产出数据按钮,查看当前任务不同版本下的产出数据自动登记结果。
注意
选择自动登记时,若 SQL 代码查询的字段名中包含 SQL 关键字,则需对其进行转义操作,即添加转义符号,如将 group 转义为 group
、order 转义为 order
等。若不进行转义,将会影响后续数据地图中的数据血缘图谱、表生产信息等内容展现,或者您也可通过下方的手动登记方式,进行手动登记任务产出数据。
手动登记:
您手动填写的内容即为任务产出,支持填写多个。其他任务依赖时,您可在其调度设置界面,通过依赖推荐或手动添加的方式,依据此处 EMR SQL 任务产出的 Hive 表或者 HDFS 目录信息来搜索添加依赖。 具体登记内容包括以下数据类型:
代码逻辑和参数配置完成后,您可以在界面进行调试操作。
编辑器上方,单击保存按钮后,再单击调试按钮,开始运行任务。
注意
调试任务开始运行后,可在下方查看调试记录:
一段代码执行完成后,会展现查询结果,在整个结果页中用了类似 Excel 功能,无需跑多段代码就可对数据进行操作和分析,以增强代码逻辑的改进。
功能描述如下:
功能 | 说明 |
---|---|
单列字段搜索 | 对单个字段进行模糊和精确查找。 |
升降序排列 | 数据排序功能。 |
隐藏列 | 只显示需要操作的列数据。 |
复制该行 | 鼠标移动到想要复制的具体某条数据,单击复制该行,即完成复制整行操作。 |
复制该列 | 鼠标移动到想要复制的具体某条数据,单击复制该列,即完成复制整列操作。 |
复制选中 | 鼠标圈选需要复制的数据,单击复制选中,即完成复制选中的数据。 |
全局搜索 | 在整个工作表中查找数据。 |
下载 |
操作详见:新建项目。 |
调试任务成功后,单击上方操作栏中的保存和提交上线按钮,在提交上线对话框中,选择回溯数据、监控设置、提交设置等参数,最后单击确认按钮,完成作业提交。 提交上线说明详见:数据开发概述---离线任务提交。
后续任务运维操作详见:离线任务运维。