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