本文为您介绍如何使用DataWorks中的EMR Hive节点,对同步至OSS的用户信息表(ods_user_info_d_emr)及访问日志数据表(ods_raw_log_d_emr)中的数据进行加工,进而得到目标用户画像数据。
前提条件
开始本实验前,您需完成同步数据中的操作。
步骤一:搭建数据加工链路
双击打开您在同步数据中创建的工作流workshop_emr
,单击工作流编辑页面上方的编辑工作流,对工作流进行重新编辑。
此处需要新建3个EMR Hive节点,依次命名为dwd_log_info_di_emr、dws_user_info_all_di_emr和ads_user_info_1d_emr,并配置如下图所示的依赖关系。
本教程节点名称示例及作用如下:
节点类型 | 节点名称 | 节点作用 |
节点类型 | 节点名称 | 节点作用 |
| dwd_log_info_di_emr | 用于对原始OSS日志数据进行清洗,使用内置函数、自定义函数( |
| dws_user_info_all_di_emr | 用于将清洗后的日志数据和用户基本信息数据进行汇总,对用户基本信息表( |
| ads_user_info_1d_emr | 对 |
步骤二:注册自定义函数
为了后续数据处理任务的顺利进行,您需要注册EMR自定义函数(getregion
),将同步数据阶段同步至EMR的日志数据结构拆解成表格。
上传EMR Jar资源(ip2region.jar)
下载资源JAR包。
创建EMR Jar资源。
进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的 ,进入Data Studio。
在左侧导航栏单击
,进入资源管理。
在资源管理页面,单击新建,选择EMR Jar资源类型,自定义资源名。
进入资源编辑页配置EMR Jar资源信息,关键参数配置如下:
参数
说明
参数
说明
文件来源
选择本地。
文件内容
点击上传下载的资源JAR包
ip2region-emr.jar
。存储路径
选择OSS。
选择准备环境中创建EMR集群配置的OSS Bucket。
数据源
选择您在同步数据中绑定的计算资源。
资源组
选择您在准备环境中创建的Serverless资源组。
单击保存,并发布资源至开发、生产环境。
注册EMR函数(getregion)
新建函数。
右键您所创建的EMR Jar资源,选择
,自定义函数名为getregion
,敲击回车确认新建。注册函数。
进入新建函数配置页配置EMR Function函数信息,关键参数配置如下:
参数
说明
参数
说明
函数类型
选择OTHER。
数据源
选择您在同步数据中绑定的计算资源。
EMR数据库
选择default。
资源组
选择您在准备环境中创建的Serverless资源组。
责任人
您可在此选择有权限的责任人。
类名
org.alidata.emr.udf.Ip2Region
。资源列表
选择您创建的EMR Jar资源名称。
发布函数。
单击保存,并发布函数至开发、生产环境。
步骤三:配置EMR节点
数据加工需要将每层加工逻辑通过EMR Hive调度实现,本教程已提供完整的数据加工SQL示例代码,您需要依次为dwd_log_info_di_emr
、dws_user_info_all_di_emr
和ads_user_info_1d_emr
节点配置。
步骤四:加工数据
加工数据。
在Workflow画布顶部工具栏中,单击运行,设置各节点定义的参数变量在本次运行中的取值(本教程使用
20250223
,您可以按需修改),单击确定后,等待运行完成。查询数据加工结果。
进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的 ,进入Data Studio。
在Data Studio一级功能入口单击
,进入数据开发,在二级功能入口找到项目目录区域。
右键单击您所创建的
work
目录,选择 ,自定义EMR Hive节点名,单击回车完成节点的创建。进入EMR Hive节点编辑页面,将下面脚本中的业务日期替换为当前业务日期,确认同步数据写入结果。查看导入ods_raw_log_d_emr和ods_user_info_d_emr的记录数。
查询语句中的分区列需要更新为业务日期。例如,任务运行的日期为
20250223
,则业务日期为20250222
,即任务运行日期的前一天。SELECT * FROM ads_user_info_1d_emr WHERE dt=业务日期;
上述命令查询存在数据,即表示数据加工已完成。
如果没有数据,请确保运行工作流时,配置的本次运行值与此处查询时
dt
指定的业务日期一致,您可以单击工作流,单击右侧的运行历史,在运行记录右侧操作列单击查看,然后在工作流的运行日志中确认运行工作流时业务日期的取值(partition=[pt=xxx]
)。
步骤五:发布工作流
任务需要发布至生产环境后才可自动调度运行,您可以参考如下步骤,将工作流发布至生产环境。
本教程已在工作流调度配置中统一配置了调度参数,发布前无需再为每个节点单独配置调度参数。
在Data Studio左侧导航栏单击
,然后在项目目录区域找到已创建好的工作流,单击进入工作流看板。
单击页面顶部工具栏中的发布,打开发布面板。
单击开始发布生产,根据发布流程引导,完成发布。
步骤六:在生产环境运行任务
任务发布后,在次日才会生成实例运行,您可以通过补数据来对已发布流程进行补数据操作,以便查看任务在生产环境是否可以运行,详情可参见执行补数据并查看补数据实例(新版)。
任务发布成功后,单击右上角的运维中心。
您也可以单击左上方的
图标,选择 。
单击左侧导航栏中的
,进入周期任务页面,单击workshop_start_emr
虚节点。在右侧的DAG图中,右键单击
workshop_start_emr
节点,选择 。勾选需要补数据的任务,设置业务日期,单击提交并跳转。
在补数据页面单击刷新,直至任务全部运行成功即可。
后续步骤
- 本页导读 (1)
- 前提条件
- 步骤一:搭建数据加工链路
- 步骤二:注册自定义函数
- 上传EMR Jar资源(ip2region.jar)
- 注册EMR函数(getregion)
- 步骤三:配置EMR节点
- 配置dwd_log_info_di_emr节点
- 配置dws_user_info_all_di_emr节点
- 配置ads_user_info_1d_emr节点
- 步骤四:加工数据
- 步骤五:发布工作流
- 步骤六:在生产环境运行任务
- 后续步骤