通过本教程,您可以了解如何使用DataWorks和MaxCompute产品组合进行数仓开发与分析,并通过案例体验DataWorks数据集成、数据开发和运维中心模块的相关能力。
注意事项
请确保操作账号拥有开通购买权限。阿里云主账号默认拥有该权限,若使用RAM子账号操作,请联系阿里云主账号前往RAM控制台,为RAM用户授权AliyunDataWorksFullAccess和AliyunBSSOrderAccess权限。具体操作,请参见为RAM用户授权。
环境准备
以下步骤为使用DataWorks和MaxCompute产品组合进行数仓开发的环境准备通用步骤。
步骤一:服务开通
本教程以华东2(上海)地域为例进行演示,请根据您华东2(上海)地域的服务开通情况,进行环境准备操作。
未开通DataWorks服务
请参考以下操作在华东2(上海)地域开通DataWorks版本服务、开通MaxCompute产品服务,并准备DataWorks任务调度和服务运行使用的Serverless资源组。
进入服务开通页。
进入阿里云DataWorks官网,单击立即开通,即可进入DataWorks服务开通页。
开通服务。
请根据下图指引选择服务,并根据界面提示配置相关参数后,点击确认订单并支付,完成后续服务开通。
本案例选择开通(0元/月)DataWorks基础版服务,涵盖基本的数据集成、数据开发、调度能力,您也可根据业务实际需要的产品能力自行选择。
在选择DataWorks资源组时,您需要为资源组绑定可连通的专有网络,绑定后,DataWorks资源组默认可访问您指定专有网络下的云服务。您可自定义该资源组名称。本案例资源组命名为
Serverless_Resource_Group
。
确认资源。
说明首次开通DataWorks服务,系统将会自动创建DataWorks默认工作空间和资源组,由于DataWorks默认工作空间为简单模式,而本教程需要使用标准模式的工作空间,因此,只需要确认资源组创建成功即可。
进入DataWorks资源组列表,在页面顶部切换地域为华东2(上海),确认已创建资源组。
已开通DataWorks服务
若您在华东2(上海)地域已开通过任意版本DataWorks服务,则只需创建资源组即可。
进入DataWorks资源组列表,在页面顶部切换地域为华东2(上海),单击新建资源组。
请根据下图指引购买资源组,并根据界面提示配置相关参数后,单击立即购买,完成后续资源组购买。
说明本教程资源组名称以
Serverless_Resource_Group
为例,您可以自定义。如果没有专有网络(VPC)和交换机(V-Switch),请根据页面提示前往专有网络VPC控制台创建。VPC和交换机的更多信息,请参见什么是专有网络。
首次购买资源组需要创建DataWorks服务关联角色。
确认资源。
进入DataWorks资源组列表,在页面顶部切换地域为华东2(上海),确认已创建资源组。
步骤二:为资源组开通公网
DataWorks已提供本案例涉及的原始数据供您体验,并提供其公网访问地址。若要在DataWorks访问该原始测试数据并确保本次实验可顺利开展,您需要确保您的DataWorks资源组已具备公网访问能力。
步骤一创建的通用型Serverless资源组默认不具备公网访问能力,您需要通过公网NAT网关添加EIP的方式,为资源组绑定的VPC,使该资源组获得公网访问能力,具体操作参考下文。
登录专有网络-公网NAT网关控制台,在顶部菜单栏切换至华东2(上海)地域。
单击创建NAT网关,配置相关参数。
参数
取值
所属地域
华东2(上海)。
所属专有网络
选择资源组绑定的VPC和交换机。
您可以前往DataWorks资源组列表,切换地域后,找到步骤一已创建的资源组,然后单击操作列的网络设置,在数据调度 & 数据集成区域查看DataWorks资源组的绑定专有网络和交换机参数。VPC和交换机的更多信息,请参见什么是专有网络。
关联交换机
访问模式
VPC全通模式(SNAT)。
弹性公网IP
新购弹性公网IP。
关联角色创建
首次创建公网NAT网关时,需要创建服务关联角色,请单击创建关联角色。
说明上表中未说明的参数保持默认值即可。
单击立即购买,勾选服务协议后,单击确认订单,完成购买。
步骤三:创建工作空间
工作空间是DataWorks中进行任务开发和成员权限管理、协同开发的基本单元,DataWorks所有开发工作都将在工作空间内进行,请参考以下内容准备DataWorks工作空间,为本案例提供基本开发环境。
步骤四:创建并绑定MaxCompute数据源
在DataWorks数据开发中新建MaxCompute项目,并将其绑定至数据开发模块作为数据开发计算和存储的引擎服务,为本教程提供计算和存储能力。
前往MaxCompute数据源绑定页。
您可以通过多种方式进行MaxCompute数据源绑定:
创建工作空间成功页
在创建工作空间完成后,DataWorks会自动引导您绑定MaxCompute数据源,您可以单击立即绑定。
在数据源页面,单击新建数据源,然后选择MaxCompute。
工作空间列表页
如果您在创建工作空间成功后关闭了绑定MaxCompute引导页,您还可以从工作空间列表页如下位置创建并绑定MaxCompute数据源。
单击工作空间操作列的
。在数据源页面,单击新建数据源,然后选择MaxCompute。
数据开发模块
您还可以直接进入DataWorks数据开发中,手动创建并绑定MaxCompute数据源。
单击工作空间操作列的
。在左侧导航栏单击数据源(),然后在数据源页面,单击新建数据源,选择MaxCompute。
请根据下图指引创建并绑定MaxCompute数据源。
关键参数说明:
本教程数据源名称以
MaxCompute_Source
为例,您可以自定义。数据源创建方式:配置为创建MaxCompute项目。
MaxCompute项目名称:自定义。
重要MaxCompute项目名称全网唯一,不允许重名,请勿与本教程完全一致,您可以自定义项目名称或添加唯一标识作为后缀,避免因命名冲突而报错。
计算资源付费类型配置为按量付费,然后选择默认Quota。
说明如果按量付费不可选,请单击按量付费后的去开通,完成MaxCompute服务的开通。
生产环境默认访问身份配置为阿里云主账号。
单击新建数据源并绑定数据开发。
根据页面提示,刷新数据开发数据源页面后,即可看到已创建并绑定的MaxCompute数据源。
任务开发
本教程以网站用户画像分析为例,为您介绍如何通过DataWorks和MaxCompute产品组合实现具体业务开发与周期调度。
步骤一:流程设计
网站用户行为分析案例通过DataWorks数据集成模块的离线同步能力,将业务数据同步至MaxCompute,然后通过DataWorks数据开发(DataStudio)模块的ODPS SQL,完成用户画像的数据加工,最终将加工结果写入ads_user_info_1d表。业务数据包括:
存储于MySQL中的用户基本信息(ods_user_info_d),平台默认提供,无需开通,将访问信息以添加数据源的方式配置到您的空间即可在您空间下访问这份数据。
存储于OSS中的网站访问日志数据(user_log.txt),平台默认提供,无需开通,将访问信息以添加数据源的方式配置到您的空间即可在您空间下访问这份数据。
步骤二:任务开发
基于步骤一:流程设计,在DataWorks完成工作流的任务开发。DataWorks已提供本教程的相关代码,您可参考以下操作通过一键导入快速体验该案例。后续您也可参考用户画像分析(MaxCompute版)逐步实操进行体验。
进入ETL工作流模板页面。
进入ETL工作流模板,找到网站用户行为分析模板,单击查看详情。
载入模板。
在模板详情页,单击载入模板。然后根据下图指引完成模板载入。
关键参数说明:
确认载入结果。
在载入模板页面,单击确认后将自动开始载入,您可以在页面弹窗中查看导入进度,所有内容导入完成后,您可以单击前往查看。
说明关闭导入进度窗口,不会影响模板的导入,您可以单击工作空间操作列的
前往数据开发模块查看导入的模板内容。查看案例介绍。
在数据开发的业务流程下,双击
体验案例1_用户行为分析
,打开业务流程画布。您可以双击画布中业务流程的第一个节点(),查看该业务流程的案例背景和各节点加工逻辑说明等。
说明在首次业务流程执行成功前,打开离线同步任务节点()会因同步目标MaxCompute表不存在而报错,您可以先手动运行上游节点(
table_ddl_ods_raw_log_d
和table_ddl_ods_user_info_d
),创建目标表后,再查看离线同步详情。如果业务流程画布中显示效果与下图不一致,可单击画布中的进行格式化。
步骤三:任务运行
任务开发完成后,可通过以下方式确认代码及流程是否符合预期。
运行用户画像业务流程。
导入的案例为完整案例,您可以在业务流程画布中,单击运行按钮运行整个业务流程。
查看业务流程运行过程。
请耐心等待2~3分钟,确保所有任务节点均运行成功(如下图所示)后,再进行后续步骤。
确认用户画像数据。
单独运行最后一个任务节点,即可查看最终产出的用户画像数据。
在业务流程画布中,双击业务流程中最后一个节点
用户行为分析结果查询
,进入节点详情页面,并按照图示说明,单独运行代码,查询ads_user_info_1d
表,获取最终的用户画像数据。说明DataWorks提供调度参数,可实现代码动态入参,您可在SQL代码中通过
${变量名}
的方式定义代码中的变量,并在调度配置>调度参数处,为该变量赋值。调度参数支持的格式,详情请参见调度参数支持的格式。本案例的SQL中使用了调度参数${bizdate}
,表示业务日期为前一天。若查询的分区没有数据或报错分区不存在,请再次执行业务流程,并通过日志查看代码中的
${bizdate}
替换情况,明确数据最终写入的分区。
运行结果示例:
任务运维
步骤一:任务发布至生产环境
待数据开发(DataStudio)中用户画像分析业务流程运行无误后,您可以参考如下步骤,通过提交、发布流程,将任务发布至生产调度系统进行周期性自动调度运行。
如果您在导入时未勾选自动发布,请手动将任务发布至生产环境。
步骤二:查看生产调度任务
任务发布后,您可在运维中心>周期任务页面查看空间下所有周期性调度的任务,并在此对周期任务执行相关运维操作。
在左上角单击
。在左侧导航栏单击
,您可以查看空间下所有处于调度系统中的任务,通常,这些任务都将按照调度配置情况自动调度。您可以参考图示位置确认生产环境任务状态,包括但不限于:生产任务依赖关系:单击用户行为分析案例说明任务名称,进入DAG面板,右键
,快速查看任务的上下游依赖关系。生产任务详情:双击DAG图任意节点可快速展开节点属性面板,您可以在此查看节点的基本信息、节点责任人、执行时间、操作日志以及调度运行的代码等。
如果该界面未找到任务,请参考步骤一:任务发布至生产环境手动执行任务发布操作。
步骤三:补数据回刷去年同期数据
补数据可通过补历史或未来一段时间的数据,将写入数据至对应时间分区,可实现指定业务日期的数据处理,主要用于历史数据回刷。
本教程通过补数据功能将业务库去年同期的数据回刷至MaxCompute,并在MaxCompute完成历史同期的用户画像数据加工。
在周期任务列表找到用户行为分析案例说明节点,右键选择
。在补数据页面配置相关参数。
关键参数说明:
补数据包含当前任务:配置为是。
选择下游节点:全选下游节点。
业务日期:配置为去年的同期业务日期。
单击提交并跳转,查看补数据任务是否成功。
DataWorks通过实例的方式运行离线调度任务,对任务执行补数据操作后,您可查看实例详情确认补数据任务执行情况。
您可以单击某个任务节点,然后单击查看日志。
确认数据写入的MaxCompute表及分区。
后续:查看任务周期调度情况
周期任务列表中的任务将通过实例的方式运行,周期任务自动调度将生成周期实例,调度周期不同,每日生成的实例个数不同。后续任务正常调度后,您可以在左侧导航栏单击
,查看单个实例的运行情况。小时任务定义
00:00~23:59
之间,每小时调度一次,那么在周期实例界面每天将生成24个小时实例,每个实例有自己的实例ID作为唯一标识,同一个任务产生的所有实例的任务ID(节点ID)相同。若周期调度任务运行异常,可查看实例日志快速定位异常原因。
任务查询
待补数据实例运行完成后,请前往数据开发(DataStudio),创建临时查询节点,获取用户画像分析业务流程通过补数据产出的去年同期的分区数据。
在左上角单击
。创建临时查询节点。
在临时查询节点中,查询生产表
ads_user_info_1d
去年同期的数据。select * from <生产项目名称>.ads_user_info_1d where dt = '<生产表实际被写入的分区>';
本教程中,DataWorks生产环境绑定的MaxCompute项目名为
user_profile_mc_pro
,补数据业务日期为20230829
。说明如何查看DataWorks空间生产环境绑定的MaxCompute项目,请参见步骤四:创建并绑定MaxCompute数据源。
DataWorks默认RAM用户无权限访问生产项目下的表数据,若您查询生产表数据报错无权限,需要前往安全中心申请,详情请参见:MaxCompute数据访问权限控制。
资源释放
为避免后续产生费用,您可参考本节将本教程创建的资源释放。