用户画像分析(MaxCompute简化版)

通过本教程,您可以了解如何使用DataWorks和MaxCompute产品组合进行数仓开发与分析,并通过案例体验DataWorks数据集成、数据开发和运维中心模块的相关能力。

注意事项

请确保操作账号拥有开通购买权限。阿里云主账号默认拥有该权限,若使用RAM子账号操作,请联系阿里云主账号前往RAM控制台,为RAM用户授权AliyunDataWorksFullAccessAliyunBSSOrderAccess权限。具体操作,请参见为RAM用户授权

环境准备

以下步骤为使用DataWorks和MaxCompute产品组合进行数仓开发的环境准备通用步骤。

步骤一:服务开通

本教程以华东2(上海)地域为例进行演示,请根据您华东2(上海)地域的服务开通情况,进行环境准备操作。

未开通DataWorks服务

请参考以下操作在华东2(上海)地域开通DataWorks版本服务、开通MaxCompute产品服务,并准备DataWorks任务调度和服务运行使用的Serverless资源组。

  1. 进入服务开通页。

    进入阿里云DataWorks官网,单击立即开通,即可进入DataWorks服务开通页。

  2. 开通服务。

    请根据下图指引选择服务,并根据界面提示配置相关参数后,点击确认订单并支付,完成后续服务开通。

    • 本案例选择开通(0元/月)DataWorks基础版服务,涵盖基本的数据集成、数据开发、调度能力,您也可根据业务实际需要的产品能力自行选择。

    • 在选择DataWorks资源组时,您需要为资源组绑定可连通的专有网络,绑定后,DataWorks资源组默认可访问您指定专有网络下的云服务。您可自定义该资源组名称。本案例资源组命名为Serverless_Resource_Group

    image

  1. 确认资源。

    说明

    首次开通DataWorks服务,系统将会自动创建DataWorks默认工作空间和资源组,由于DataWorks默认工作空间简单模式,而本教程需要使用标准模式的工作空间,因此,只需要确认资源组创建成功即可。

    进入DataWorks资源组列表,在页面顶部切换地域为华东2(上海),确认已创建资源组。

    image

已开通DataWorks服务

若您在华东2(上海)地域已开通过任意版本DataWorks服务,则只需创建资源组即可。

  1. 进入DataWorks资源组列表,在页面顶部切换地域为华东2(上海),单击新建资源组

  2. 请根据下图指引购买资源组,并根据界面提示配置相关参数后,单击立即购买,完成后续资源组购买。

    说明

    image

  3. 确认资源。

    进入DataWorks资源组列表,在页面顶部切换地域为华东2(上海),确认已创建资源组。

    image

步骤二:为资源组开通公网

DataWorks已提供本案例涉及的原始数据供您体验,并提供其公网访问地址。若要在DataWorks访问该原始测试数据并确保本次实验可顺利开展,您需要确保您的DataWorks资源组已具备公网访问能力。

步骤一创建的通用型Serverless资源组默认不具备公网访问能力,您需要通过公网NAT网关添加EIP的方式,为资源组绑定的VPC,使该资源组获得公网访问能力,具体操作参考下文。

  1. 登录专有网络-公网NAT网关控制台,在顶部菜单栏切换至华东2(上海)地域。

  2. 单击创建NAT网关,配置相关参数。

    参数

    取值

    所属地域

    华东2(上海)。

    所属专有网络

    选择资源组绑定的VPC和交换机。

    您可以前往DataWorks资源组列表,切换地域后,找到步骤一已创建的资源组,然后单击操作列的网络设置,在数据调度 & 数据集成区域查看DataWorks资源组的绑定专有网络交换机参数。VPC和交换机的更多信息,请参见什么是专有网络

    关联交换机

    访问模式

    VPC全通模式(SNAT)。

    弹性公网IP

    新购弹性公网IP。

    关联角色创建

    首次创建公网NAT网关时,需要创建服务关联角色,请单击创建关联角色

    说明

    上表中未说明的参数保持默认值即可。

  3. 单击立即购买,勾选服务协议后,单击确认订单,完成购买。

    image

步骤三:创建工作空间

工作空间是DataWorks中进行任务开发和成员权限管理、协同开发的基本单元,DataWorks所有开发工作都将在工作空间内进行,请参考以下内容准备DataWorks工作空间,为本案例提供基本开发环境。

  1. 进入工作空间列表页。

    进入工作空间列表,在页面顶部切换地域为华东2(上海),然后单击创建工作空间

  2. 创建工作空间。

    请根据下图指引自定义工作空间名称、指定空间模式(生产、开发环境隔离),设置默认资源组配置步骤一创建的资源组。其他参数可使用默认值或不填写。

    重要

    DataWork工作空间名称全网唯一,请勿与本教程完全一致,您可以自定义工作空间名称或添加唯一标识作为后缀,避免因命名冲突而报错。

    image

步骤四:创建并绑定MaxCompute数据源

在DataWorks数据开发中新建MaxCompute项目,并将其绑定至数据开发模块作为数据开发计算和存储的引擎服务,为本教程提供计算和存储能力。

  1. 创建MaxCompute空间

    在DataWorks工作空间内绑定MaxCompute数据源前,需创建MaxCompute项目。

    1. 登录MaxCompute控制台,在左上角选择地域。

    2. 在左侧导航栏选择工作区 > 项目管理,并单击新建项目

      image

    3. 新增项目对话框,根据界面提示文案配置项目信息后,单击确定

      其中需重点关注的配置参数如下,其他参数可参考界面提示文案进行配置。关于参数详情,您也可参见项目管理

      参数

      描述

      计算资源付费类型默认Quota

      您可根据已购买的MaxCompute的资源情况选择使用哪种。

      • 包年包月

        如果您已购买了包年包月的MaxCompute资源,您可将资源做好Quota规划,为本项目选择后续作业运行需要使用的包年包月资源Quota。Quota规划与管理请参见计算资源-Quota管理

      • 按量付费

        MaxCompute开通时默认购买的为按量计费标准版的MaxCompute,如果您没有购买其他MaxCompute资源,可选择按量付费,并选择默认后付费Quota

    4. 创建成功后,即可在左侧导航栏的工作区 > 项目管理中查看新创建的MaxCompute项目。

      image

  2. 前往MaxCompute数据源绑定页。

    您可以通过多种方式进行MaxCompute数据源绑定:

    工作空间列表页

    您可以从工作空间列表页如下位置创建并绑定MaxCompute数据源。

    1. 单击工作空间操作列的image > 创建数据源 > MaxCompute

      image

    2. 数据源页面,单击新建数据源,然后选择MaxCompute

      image

    数据开发模块

    您还可以直接进入DataWorks数据开发中,手动创建并绑定MaxCompute数据源。

    1. 单击工作空间操作列的快速进入 > 数据开发

      image

    2. 在左侧导航栏单击数据源image),然后在数据源页面,单击新建数据源,选择MaxCompute

      image

  3. 请根据下图指引创建并绑定MaxCompute数据源。

    image关键参数说明:

    • 本教程数据源名称MaxCompute_Source为例,您可以自定义。

    • 所属云账号:配置为当前阿里云主账号

    • 地域:选择与当前DataWorks空间一致的地域华东2(上海)地域。

    • MaxCompute项目名称:选择华东2(上海)地域下已创建的MaxCompute项目。

      重要

      MaxCompute项目名称全网唯一,不允许重名,请勿与本教程完全一致,您可以自定义项目名称或添加唯一标识作为后缀,避免因命名冲突而报错。

    • 默认访问身份:开发环境默认为执行者,生产环境可根据当前登录账号进行下拉选择。

      • 如您当前登录的为主账号或RAM管理员账号:可以选择所有身份。

      • 如您当前登录的为子账号/RAM角色:

        • 是该项目的Super_Administrator或Admin角色:可以选择所有身份。

        • 不是该项目的Super_Administrator或Admin角色:仅能选择自己的身份。

    • Endpoint:选择自动适配

  4. 单击新建数据源并绑定数据开发

  5. 根据页面提示,刷新数据开发数据源页面后,即可看到已创建并绑定的MaxCompute数据源。

    image

任务开发

本教程以网站用户画像分析为例,为您介绍如何通过DataWorks和MaxCompute产品组合实现具体业务开发与周期调度。

步骤一:流程设计

网站用户行为分析案例通过DataWorks数据集成模块的离线同步能力,将业务数据同步至MaxCompute,然后通过DataWorks数据开发(DataStudio)模块的ODPS SQL,完成用户画像的数据加工,最终将加工结果写入ads_user_info_1d表。业务数据包括:

  • 存储于MySQL中的用户基本信息(ods_user_info_d),平台默认提供,无需开通,将访问信息以添加数据源的方式配置到您的空间即可在您空间下访问这份数据。

  • 存储于OSS中的网站访问日志数据(user_log.txt),平台默认提供,无需开通,将访问信息以添加数据源的方式配置到您的空间即可在您空间下访问这份数据。

image

步骤二:任务开发

基于步骤一:流程设计,在DataWorks完成工作流的任务开发。DataWorks已提供本教程的相关代码,您可参考以下操作通过一键导入快速体验该案例。后续您也可参考用户画像分析(MaxCompute版)逐步实操进行体验。

  1. 进入ETL工作流模板页面。

    进入ETL工作流模板,找到网站用户行为分析模板,单击查看详情

  2. 载入模板。

    在模板详情页,单击载入模板。然后根据下图指引完成模板载入。

    image

    关键参数说明:

    • 工作空间:选择ETL案例模板导入的目标工作空间,配置为步骤三创建的工作空间。

    • 数据源名称:选择为本教程提供计算和存储服务的数据源,配置为步骤四创建并绑定至数据开发的MaxCompute数据源。

    • 调度资源组和集成资源组:选择执行任务同步和任务调度的资源组,配置为步骤一创建的资源组。

    • 载入方式:选择当案例包含的节点或资源已经在该空间存在时的处理策略,保持默认即可。

    • 发布规则:选择任务导入后是否直接进入生产调度系统进行每日自动调度,保持默认即可,取消选中表示仅在数据开发测试使用,不自动调度,后续您可手动发布。

  3. 确认载入结果。

    载入模板页面,单击确认后将自动开始载入,您可以在页面弹窗中查看导入进度,所有内容导入完成后,您可以单击前往查看

    说明

    关闭导入进度窗口,不会影响模板的导入,您可以单击工作空间操作列的快速进入 > 数据开发前往数据开发模块查看导入的模板内容。

    image

  4. 查看案例介绍。

    数据开发业务流程下,双击体验案例1_用户行为分析,打开业务流程画布。

    您可以双击画布中业务流程的第一个节点(image),查看该业务流程的案例背景和各节点加工逻辑说明等。

    说明
    • 在首次业务流程执行成功前,打开离线同步任务节点(image)会因同步目标MaxCompute表不存在而报错,您可以先手动运行上游节点(table_ddl_ods_raw_log_dtable_ddl_ods_user_info_d),创建目标表后,再查看离线同步详情。

    • 如果业务流程画布中显示效果与下图不一致,可单击画布中的image进行格式化。

    image

步骤三:任务运行

任务开发完成后,可通过以下方式确认代码及流程是否符合预期。

  1. 运行用户画像业务流程。

    导入的案例为完整案例,您可以在业务流程画布中,单击运行按钮运行整个业务流程。

    image

  2. 查看业务流程运行过程。

    请耐心等待2~3分钟,确保所有任务节点均运行成功(如下图所示)后,再进行后续步骤。

    image

  3. 确认用户画像数据。

    单独运行最后一个任务节点,即可查看最终产出的用户画像数据。

    在业务流程画布中,双击业务流程中最后一个节点用户行为分析结果查询,进入节点详情页面,并按照图示说明,单独运行代码,查询ads_user_info_1d表,获取最终的用户画像数据。

    说明
    • DataWorks提供调度参数,可实现代码动态入参,您可在SQL代码中通过${变量名}的方式定义代码中的变量,并在调度配置>调度参数处,为该变量赋值。调度参数支持的格式,详情请参见调度参数支持的格式。本案例的SQL中使用了调度参数${bizdate},表示业务日期为前一天。

    • 若查询的分区没有数据或报错分区不存在,请再次执行业务流程,并通过日志查看代码中的${bizdate}替换情况,明确数据最终写入的分区。

    image

    运行结果示例:

    image

任务运维

步骤一:任务发布至生产环境

待数据开发(DataStudio)中用户画像分析业务流程运行无误后,您可以参考如下步骤,通过提交发布流程,将任务发布至生产调度系统进行周期性自动调度运行。

如果您在导入时未勾选自动发布,请手动将任务发布至生产环境。

image

步骤二:查看生产调度任务

任务发布后,您可在运维中心>周期任务页面查看空间下所有周期性调度的任务,并在此对周期任务执行相关运维操作。

  1. 在左上角单击image > 全部产品 > 数据开发与运维 > 运维中心(工作流)

  2. 在左侧导航栏单击周期任务运维 > 周期任务,您可以查看空间下所有处于调度系统中的任务,通常,这些任务都将按照调度配置情况自动调度。您可以参考图示位置确认生产环境任务状态,包括但不限于:

    • 生产任务依赖关系:单击用户行为分析案例说明任务名称,进入DAG面板,右键用户行为分析案例说明 > 展开父/子节点 > 六层,快速查看任务的上下游依赖关系。

      image

    • 生产任务详情:双击DAG图任意节点可快速展开节点属性面板,您可以在此查看节点的基本信息、节点责任人执行时间操作日志以及调度运行的代码等。

      image

说明

如果该界面未找到任务,请参考步骤一:任务发布至生产环境手动执行任务发布操作。

步骤三:补数据回刷去年同期数据

补数据可通过补历史或未来一段时间的数据,将写入数据至对应时间分区,可实现指定业务日期的数据处理,主要用于历史数据回刷。

本教程通过补数据功能将业务库去年同期的数据回刷至MaxCompute,并在MaxCompute完成历史同期的用户画像数据加工。

  1. 周期任务列表找到用户行为分析案例说明节点,右键选择补数据 > 当前节点及下游节点

    image

  2. 补数据页面配置相关参数。

    image

    关键参数说明:

    • 补数据包含当前任务:配置为

    • 选择下游节点:全选下游节点。

    • 业务日期:配置为去年的同期业务日期。

  3. 单击提交并跳转,查看补数据任务是否成功。

    DataWorks通过实例的方式运行离线调度任务,对任务执行补数据操作后,您可查看实例详情确认补数据任务执行情况。

    image

  4. 您可以单击某个任务节点,然后单击查看日志

    image

  5. 确认数据写入的MaxCompute表及分区。

    image

后续:查看任务周期调度情况

周期任务列表中的任务将通过实例的方式运行,周期任务自动调度将生成周期实例,调度周期不同,每日生成的实例个数不同。后续任务正常调度后,您可以在左侧导航栏单击周期任务运维 > 周期实例界面,查看单个实例的运行情况。

说明
  • 小时任务定义00:00~23:59之间,每小时调度一次,那么在周期实例界面每天将生成24个小时实例,每个实例有自己的实例ID作为唯一标识,同一个任务产生的所有实例的任务ID(节点ID)相同。

  • 若周期调度任务运行异常,可查看实例日志快速定位异常原因。

任务查询

待补数据实例运行完成后,请前往数据开发(DataStudio),创建临时查询节点,获取用户画像分析业务流程通过补数据产出的去年同期的分区数据。

  1. 在左上角单击image > 全部产品 > 数据开发与运维 > DataStudio(数据开发)

  2. 创建临时查询节点。

    image

  3. 在临时查询节点中,查询生产表ads_user_info_1d去年同期的数据。

    select * from  <生产项目名称>.ads_user_info_1d where dt = '<生产表实际被写入的分区>';

    本教程中,DataWorks生产环境绑定的MaxCompute项目名为user_profile_mc_pro,补数据业务日期为20230829

    说明

    image

资源释放

为避免后续产生费用,您可参考本节将本教程创建的资源释放。

资源释放操作

  1. 停止周期任务自动调度。

    1. 进入运维中心页面。

      登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 运维中心,在下拉框中选择对应工作空间后单击进入运维中心

    2. 周期任务运维 > 周期任务中,勾选所有之前创建的周期任务,然后在底部单击暂停(冻结)

    3. (可选)如果您不再需要本教程的调度任务,可以单击操作 > 下线节点

  2. 删除公网NAT网关并释放弹性公网IP。

    说明

    公网NAT网关和弹性公网IP不使用也会收取配置费用(计费详情请参见公网NAT网关计费弹性公网IP计费),建议不再使用时及时删除,如后续还需运行本教程的业务流程或执行调度,可再次为资源组绑定的VPC配置NAT网关和弹性公网IP,具体操作请参见步骤二:为资源组开通公网

    1. 登录专有网络-公网NAT网关控制台,在顶部菜单栏切换至华东2(上海)地域。

    2. 找到已创建的公网NAT网关,单击操作列的image > 删除,在确认窗口中,选中强制删除,然后单击确定

    3. 在左侧导航栏单击公网访问 > 弹性公网IP,找到已创建的弹性公网IP,单击操作列的image > 释放,在确认窗口中,单击确定