本文为您介绍如何将同步至MaxCompute的用户信息表ods_user_info_d_odps
及访问日志数据ods_raw_log_d_odps
,通过DataWorks的MaxCompute节点加工得到目标用户画像数据,阅读本文后,您可以了解如何通过DataWorks+MaxCompute产品组合来计算和分析已同步的数据,完成数仓简单数据加工场景。
前提条件
开始本实验前,请先完成同步数据中的操作。
步骤一:搭建数据加工链路
在同步数据阶段,已经成功将数据同步至MaxCompute,本阶段需要对数据进行进一步加工,以输出基本用户画像数据。
在Data Studio左侧导航栏单击
,进入数据开发页面,然后在项目目录区域找到已创建好的工作流,单击进入工作流编辑页。
单击编辑工作流,在工作流编辑页面,从左侧拖拽MaxCompute SQL节点至画布中,分别设置节点名称。
本教程节点名称示例及作用如下:
节点类型
节点名称
节点作用
MaxCompute SQL
dwd_log_info_di_odps
使用内置函数、自定义函数(
getregion
)等完成原始日志ods_raw_log_d_odps
数据拆分写入dwd_log_info_di_odps
表多个字段。MaxCompute SQL
dws_user_info_all_di_odps
对用户基本信息表(
ods_user_info_d_odps
)和初步加工后的日志数据表(dwd_log_info_di_odps
)进行汇总,将数据写入dws_user_info_all_di_odps
表中。MaxCompute SQL
ads_user_info_1d_odps
对
dws_user_info_all_di_odps
表中数据进一步加工,将数据写入ads_user_info_1d_odps
表,产出基本用户画像。手动拖拽连线,配置各节点的上游节点。最终效果如下:
在顶部工具栏单击保存。
步骤二:注册自定义函数
为了后续数据处理任务的顺利进行,您需要注册MaxCompute自定义函数(getregion
),将同步数据阶段同步至MaxCompute的日志数据结构拆解成表格。
本教程已为您提供用于将IP解析为地域的函数所需资源,您仅需将其下载至本地,并在DataWorks注册函数前,将函数涉及的资源上传至DataWorks空间即可。
该函数仅为本教程使用(IP资源样例),若需在正式业务中实现IP到地理位置的映射功能,需前往专业IP网站获取相关IP转换服务。
上传资源(ip2region.jar)
- 说明
ip2region.jar
资源样例仅为教程使用。 在Data Studio页面左侧导航栏单击
,进入资源管理页面,单击 ,设置资源名称后,进入资源上传页面。
说明资源名称无需与上传的文件名保持一致。
文件来源选择本地,单击文件内容后的点击上传,选择已下载至本地的
ip2region.jar
。数据源选择准备环境阶段绑定的MaxCompute计算资源。
在节点工具栏单击保存,然后单击发布,根据发布面板提示,将资源发布至开发环境和生产环境对应的MaxCompute项目中。
注册函数(getregion)
在资源管理页面,单击
,设置资源名称后,进入注册函数页面(本教程函数命名为getregion
)。在注册函数页面,配置相关参数。以下为本教程所需配置的关键参数,未说明参数保持默认即可。
参数
描述
函数类型
选择
OTHER
。数据源
选择准备环境阶段绑定的MaxCompute计算资源。
类名
输入
org.alidata.odps.udf.Ip2Region
。资源列表
选择
ip2region.jar
。描述
IP地址转换地域。
命令格式
输入
getregion('ip')
。参数说明
IP地址。
在节点工具栏单击的保存,然后单击发布,根据发布面板提示,将函数发布至开发环境和生产环境对应的MaxCompute项目中。
步骤三:配置数据加工节点
数据加工需要将每层加工逻辑通过MaxCompute SQL调度实现,本教程已提供完整的数据加工SQL示例代码,您需要依次为dwd_log_info_di_odps
、dws_user_info_all_di_odps
和ads_user_info_1d_odps
节点配置。
配置dwd_log_info_di_odps节点
在本节点的示例代码中,利用创建的函数处理上游表ods_raw_log_d_odps
字段的SQL代码,并将其写入dwd_log_info_di_odps
表中。
在Data Studio左侧导航栏单击
,进入数据开发页面,然后在项目目录区域找到已创建好的工作流,单击进入工作流编辑页。
在工作流编辑页面中,鼠标悬停至
dwd_log_info_di_odps
节点上,单击打开节点。将如下代码粘贴至节点编辑页面。
配置调试参数。
在MaxCompute SQL节点编辑页面右侧单击调试配置,配置以下参数,用于在步骤四调试运行中使用调试配置的相关参数测试运行。
配置项
配置说明
计算资源
选择准备环境阶段绑定的MaxCompute计算资源以及其对应的计算配额。
资源组
选择准备环境阶段购买的Serverless资源组。
脚本参数
无需配置。本教程提供的示例代码中统一使用
${bizdate}
表示业务日期,在步骤四调试运行工作流时,设置本次运行值为具体常量(例如20250223
),任务运行将会使用此常量替换任务中定义的变量。(可选)配置调度属性。
本教程调度配置相关参数保持默认即可,您可以在MaxCompute SQL页面右侧单击调度配置。调度配置中参数的详细说明,详情可参见调度配置。
调度参数:本教程已在工作流调度参数中统一配置,工作流内部节点无需配置,在任务或代码中可直接使用。
调度策略:您可以在延时执行时间参数中指定子节点在工作流执行后,延迟多久再执行,本教程不设置。
在节点工具栏单击保存。
配置dws_user_info_all_di_odps节点
本节点对用户基本信息表(ods_user_info_d_odps
)和初步加工后的日志数据表(dwd_log_info_di_odps
)进行汇总,将数据写入dws_user_info_all_di_odps
表中。
在工作流编辑页面中,鼠标悬停至
dws_user_info_all_di_odps
节点上,单击打开节点。将如下代码粘贴至节点编辑页面。
配置调试参数。
在MaxCompute SQL节点编辑页面右侧单击调试配置,配置以下参数,用于在步骤四调试运行中使用调试配置的相关参数测试运行。
配置项
配置说明
计算资源
选择准备环境阶段绑定的MaxCompute计算资源以及其对应的计算配额。
资源组
选择准备环境阶段购买的Serverless资源组。
脚本参数
无需配置。本教程提供的示例代码中统一使用
${bizdate}
表示业务日期,在步骤四调试运行工作流时,设置本次运行值为具体常量(例如20250223
),任务运行将会使用此常量替换任务中定义的变量。(可选)配置调度属性。
本教程调度配置相关参数保持默认即可,您可以在MaxCompute SQL页面右侧单击调度配置。调度配置中参数的详细说明,详情可参见调度配置。
调度参数:本教程已在工作流调度参数中统一配置,工作流内部节点无需配置,在任务或代码中可直接使用。
调度策略:您可以在延时执行时间参数中指定子节点在工作流执行后,延迟多久再执行,本教程不设置。
在节点工具栏单击保存。
配置ads_user_info_1d_odps节点
本节点对dws_user_info_all_di_odps
表中数据进一步加工,将数据写入ads_user_info_1d_odps
表,产出基本用户画像。
在工作流编辑页面中,鼠标悬停至
ads_user_info_1d_odps
节点上,单击打开节点。将如下代码粘贴至节点编辑页面。
配置调试参数。
在MaxCompute SQL节点编辑页面右侧单击调试配置,配置以下参数,用于在步骤四调试运行中使用调试配置的相关参数测试运行。
配置项
配置说明
计算资源
选择准备环境阶段绑定的MaxCompute计算资源以及其对应的计算配额。
资源组
选择准备环境阶段购买的Serverless资源组。
脚本参数
无需配置。本教程提供的示例代码中统一使用
${bizdate}
表示业务日期,在步骤四调试运行工作流时,设置本次运行值为具体常量(例如20250223
),任务运行将会使用此常量替换任务中定义的变量。(可选)配置调度属性。
本教程调度配置相关参数保持默认即可,您可以在MaxCompute SQL页面右侧单击调度配置。调度配置中参数的详细说明,详情可参见调度配置。
调度参数:本教程已在工作流调度参数中统一配置,工作流内部节点无需配置,在任务或代码中可直接使用。
调度策略:您可以在延时执行时间参数中指定子节点在工作流执行后,延迟多久再执行,本教程不设置。
在节点工具栏单击保存。
步骤四:加工数据
加工数据。
在工作流工具栏中,单击运行,设置各节点定义的参数变量在本次运行中的取值(本教程使用
20250223
,您可以按需修改),单击确定后,等待运行完成。查询数据加工结果。
在Data Studio左侧导航栏单击
,进入数据开发页面,然后在个人目录区域,单击
,创建一个后缀为
.sql
的文件(文件名称自定义即可)。在页面底部如下位置确认语言模式是否为
MaxCompute SQL
。在SQL编辑窗口中输入如下SQL语句,查看最终结果表
ads_user_info_1d_odps
的记录数,确认是否产生数据加工结果。-- 此处您需要修改分区过滤条件为您当前操作的实际业务日期。本教程中,前文配置的调试参数bizdate(业务日期)为20250223。 SELECT count(*) FROM ads_user_info_1d_odps WHERE dt='业务日期';
上述命令查询存在数据,即表示数据加工已完成。
如果没有数据,请确保运行工作流时,配置的本次运行值与此处查询时
dt
指定的业务日期一致,您可以单击工作流,单击右侧的运行历史,在运行记录右侧操作列单击查看,然后在工作流的运行日志中确认运行工作流时业务日期的取值(partition=[pt=xxx]
)。
步骤五:发布工作流
任务需要发布至生产环境后才可自动调度运行,您可以参考如下步骤,将工作流发布至生产环境。
本教程已在工作流调度配置中统一配置了调度参数,发布前无需再为每个节点单独配置调度参数。
在Data Studio左侧导航栏单击
,进入数据开发页面,然后在项目目录区域找到已创建好的工作流,单击进入工作流编辑页面。
单击节点工具栏中的发布,打开发布面板。
单击开始发布生产,根据发布流程引导,完成发布。
步骤六:在生产环境运行任务
任务发布后,在次日才会生成实例运行,您可以通过补数据来对已发布流程进行补数据操作,以便查看任务在生产环境是否可以运行,详情可参见执行补数据并查看补数据实例(新版)。
任务发布成功后,单击右上角的运维中心。
您也可以单击左上方的
图标,选择 。
单击左侧导航栏中的
,进入周期任务页面,单击workshop_start_odps
虚节点。在右侧的DAG图中,右键单击
workshop_start_odps
节点,选择 。勾选需要补数据的任务,设置业务日期,单击提交并跳转。
在补数据页面单击刷新,直至SQL任务全部运行成功即可。