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

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

案例介绍

为了更好地制定企业经营策略,现需要从用户网站行为中获取网站用户群体基本画像数据,例如,用户群体的地理属性、社会属性等,实现定时定点进行画像分析,进而实现网站流量精细化运营操作。您可以通过DataWorksMaxCompute产品组合完成数据同步、数据加工、数据管理和数据消费等操作。

说明

为了顺利进行教程操作,请您务必阅读案例目标与设计,充分了解用户画像分析案例整体流程。

注意事项

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

环境准备

本教程以标准模式工作空间(开发、生产环境隔离)进行演示,请参考以下步骤准备一个DataWorks标准模式工作空间、一个具有公网能力的DataWorks资源组,以及需要分别为开发和生产环境计算资源创建并绑定不同的MaxCompute项目。

一、服务开通

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

未开通DataWorks服务

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

  1. 进入服务开通页。

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

  2. 开通服务。

    请根据界面提示配置相关参数后,单击确认订单并支付,完成服务开通。

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

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

  3. 确认资源。

    说明

    首次开通DataWorks服务,系统将会自动创建资源组,您需要确认资源组是否创建成功。

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

已开通DataWorks服务

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

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

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

    说明
  3. 确认资源。

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

二、为资源组开通公网

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

步骤一开通DataWorks服务时或手动创建的通用型Serverless资源组默认不具备公网访问能力,您需要通过公网NAT网关为资源组所绑定的VPC绑定弹性公网IP(EIP),使该资源组获得公网访问能力,具体操作参考下文。

  1. 登录专有网络-公网NAT网关控制台,在顶部菜单栏切换至华东2(上海)地域,单击创建公网NAT网关,可根据下表配置相关参数。

    说明

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

    参数

    取值

    地域

    华东2(上海)。

    网络及可用区

    选择资源组绑定的专有网络(VPC)和交换机(V-Switch)。

    您可以前往DataWorks资源组列表页,切换至华东2(上海)地域,找到已创建的资源组,然后单击操作列的网络设置,在数据调度 & 数据集成区域查看绑定专有网络交换机。关于专有网络(VPC)和交换机(V-Switch)的更多信息,请参见什么是专有网络VPC

    说明

    若当前资源组绑定了多个专有网络(VPC)和交换机(vSwitch),请确保配置使用列表中第一行所绑定的VPCvSwitch。

    网络类型

    公网NAT网关。

    弹性公网IP

    新购弹性公网IP。

    关联角色创建

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

  2. 单击立即购买,完成后续支付,创建NAT网关实例。

    image

  3. NAT网关实例购买成功后,单击返回控制台,为刚购买的NAT网关实例创建SNAT条目。

    说明

    只有配置了SNAT条目后,使用该专有网络(VPC)的资源组才能访问公网。

    1. 单击新购实例操作列的管理按钮,进入目标NAT网关实例的管理页面,并切至SNAT管理页签

    2. SNAT条目列表下单击创建SNAT条目按钮,创建NAT条目,以下为关键配置:

      参数

      取值

      SNAT条目粒度

      选择VPC粒度,确保NAT网关所属VPC内的所有资源组都可通过配置的弹性公网IP访问公网。

      选择弹性公网IP地址

      配置当前NAT网关实例绑定的弹性公网IP地址。

      完成SNAT条目参数配置后,单击确定创建按钮,创建SNAT条目。

    SNAT条目列表下,当新创建的SNAT条目的状态变成可用即表示资源组绑定的专有网络(VPC)已具备公网访问能力。

三、创建工作空间

工作空间是DataWorks中进行任务开发、成员权限管理、协同开发的基本单元,DataWorks所有开发工作都将在工作空间内进行,您可参考以下内容为本案例创建DataWorks标准模式工作空间(开发、生产环境隔离)。

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

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

  2. 创建工作空间。以下为本教程所需配置的关键参数,未说明参数保持默认即可。

    • 工作空间名称:自定义工作空间名称,创建后不支持修改。

      重要

      DataWorks工作空间名称全网唯一,您可以自定义工作空间名称或添加唯一标识作为后缀,避免因命名冲突而报错。

    • 开发、生产环境隔离:开启此开关,指定空间模式为标准模式工作空间。

    • 使用新版数据开发(Data Studio):本教程是否开启均可进行,表示是否参加使用新版数据开发功能(推荐开启)。若未看到该选项,表示默认开启。

      说明

      新版数据开发提供了实现面向多引擎协同的数据开发、可视化工作流编排和数据目录管理等能力,支持使用Notebook进行与AI联动的交互式数据探索与分析。关于新版数据开发的更多信息,请参见数据开发(Data Studio)(新版)

    • 工作空间模版:选择全部能力。

    • DataWorks工作空间默认资源组配置:设置为步骤一创建的Serverless资源组。

  3. 单击创建工作空间

    说明

    如果您在创建工作空间时选择了使用新版数据开发(Data Studio),创建工作空间时会进入绑定计算资源引导页,当前可暂不配置,单击完成关闭跳过即可。

四、绑定MaxCompute为计算资源

MaxCompute侧:创建MaxCompute项目

本教程中的DataWorks使用标准模式工作空间(开发、生产环境隔离),需创建两个MaxCompute项目,分别作为开发环境生产环境的计算引擎,请参考以下步骤完成这两个MaxCompute项目的创建。

重要
  • MaxCompute项目名称全网唯一,不允许重名,您可以自定义项目名称或添加唯一标识作为后缀,避免因命名冲突而报错。

  • 此处地域需切换至华东2(上海),和DataWorks的地域保持一致。

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

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

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

  4. 创建成功后,即可在MaxCompute控制台左侧导航栏的管理配置 > 项目管理页面查看新创建的MaxCompute项目。

DataWorks侧:绑定MaxCompute为计算资源

在标准模式工作空间(开发、生产环境隔离)内,需将两个MaxCompute项目,分别绑定为开发环境和生产环境提供计算和存储服务的计算资源,请参考以下步骤完成开发环境与生产环境的计算资源绑定。

新版数据开发绑定

  1. 进入DataWorks-工作空间列表页,找到已创建的工作空间,单击操作栏中的管理,进入管理中心

  2. 在左侧导航栏单击计算资源,单击绑定计算资源,选择MaxCompute类型。

  3. 绑定MaxCompute计算资源页面的基础信息处,填写以下信息(更多参数详情请参见新版数据开发:绑定MaxCompute计算资源):

    1. 分别为开发环境生产环境选择已创建的两个MaxCompute项目。

      重要

      生产环境与开发环境需绑定不同的MaxCompute项目,确保生产环境与开发环境之间的环境隔离。

    2. 默认访问身份:生产环境选择阿里云主账号,开发环境仅支持使用执行者身份访问。

    3. 计算资源实例名:用于标识该计算资源,在任务运行时,通过计算资源实例名称来选择任务运行的计算资源。

  4. 连接配置区域单击测试连通性,测试资源组的网络连通性,显示可连通后,可单击确认完成绑定。

旧版数据开发绑定

  1. 进入DataWorks-工作空间列表页,找到已创建的工作空间,单击工作空间名称,进入空间详情页。

  2. 在左侧导航栏单击计算资源,页面会跳转至数据开发计算资源页面,单击新建计算资源,选择MaxCompute类型。

  3. 根据页面提示绑定MaxCompute计算资源。

    关键参数说明:

    • 数据源名称:您可以自定义,用于表示此MaxCompute计算资源。

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

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

    • MaxCompute项目名称:选择华东2(上海)地域下已创建的两个MaxCompute项目,分别作为生产环境和开发环境的MaxCompute项目。

      重要

      生产环境与开发环境需绑定不同的MaxCompute项目,确保生产环境与开发环境之间的环境隔离。

    • 默认访问身份:开发环境默认为执行者,生产环境本教程选择为阿里云主账号

  4. 连接配置区域单击测试连通性,测试资源组的网络连通性,显示可连通后,可单击新建计算资源并绑定数据开发完成绑定。

任务开发

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

一、流程设计

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

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

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

image

二、任务开发

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

  1. 登录DataWorks控制台,单击左侧导航栏的快速开始 > DataWorks Gallery,然后在类别中选择Workflow

  2. 载入案例。

    单击网站用户画像分析卡片,在案例详情页,单击载入。然后根据页面指引完成案例载入。

    关键参数说明:

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

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

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

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

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

  3. 确认载入结果。

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

    说明

    关闭导入进度窗口,不会影响模板的导入,您可以在DataWorks-工作空间列表页,单击目标工作空间操作栏中的快速进入 > Data Studio快速进入 > 数据开发,前往数据开发模块查看导入的模板内容。

  4. 查看案例。

    如您使用新版数据开发,需在左侧导航栏单击image,单击已导入的用户画像分析案例,即可打开对应的工作流面板。

    您可以双击工作流的每一个节点,查看该工作流的案例背景和各节点加工逻辑说明等。

    说明

    如您使用旧版数据开发,需在数据开发业务流程下,双击体验案例1_用户行为分析,即可打开业务流程画布。

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

    重要

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

    • 业务数据同步:本案例提供的业务数据为人工模拟的静态测试数据,离线同步任务负责每日将该测试数据全量数据同步至MaxCompute的指定日期分区。

    • 代码参数使用:在实际数据同步和加工过程中,可使用调度参数实现数据的动态处理。例如,通过配置业务日期参数(格式为 yyyymmdd,通常取值为昨日日期),可自动识别并加工对应业务日期的数据,并将其写入目标表的指定日期分区中。详情可参见调度参数

      • 新版数据开发教程中,各节点在代码中通过${workflow.var}方式获取工作流定义的var参数赋值,实现调度运行时动态赋值。var参数赋值为$[yyyymmdd-1],用于获取业务日期(昨天)。

      • 旧版数据开发教程中,各节点在代码中通过${bizdate}定义节点级参数(实际开发中该参数名可自定义),并在节点中为该参数赋值调度参数,实现调度运行时动态赋值。bizdate参数赋值为$[yyyymmdd-1],用于获取业务日期(昨天)。

    • 依赖关系设置:各节点任务之间的依赖关系设置可参见调度依赖

三、任务运行

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

  1. 运行用户画像分析流程:导入的案例为完整案例,您可以进入工作流或业务流程面板后,在面板工具栏单击运行按钮,运行工作流或业务流程。

    • 如果是新版数据开发,单击运行后,会自动读取工作流中存在的参数var,您需在填写运行参数页面本次运行值处,为参数赋值常量(例如,将参数赋值为20250101)。

    • 如果是旧版数据开发,单击运行后,您无需为代码中的bizdate参数手动赋值,系统将自动使用节点参数为bizdate参数赋值于本次任务执行。

      重要

      若运行报错:“function or view getregion cannot be resolved”,需检查加工流程中使用的ip2region.jar资源和getregion函数是否发布成功。解决方式请参见常见问题

  2. 查看业务流程运行过程:请耐心等待,确保所有任务节点均运行成功后(状态均为image),再进行后续操作。

    说明

    如需了解节点的运行详情,可在已成功执行的工作流或业务流程中,单击该节点以查看其运行日志和执行信息。

    如果是新版数据开发,需在页面顶部单击返回,回到工作流面板后,再进行后续操作。
  3. 确认用户画像数据:单独运行最后一个任务节点,即可查看最终产出的用户画像数据。

    在工作流或业务流程页面,双击流程中最后一个节点,进入节点详情页面,选中如下SQL语句,修改dt条件,在页面顶部单击运行,查询ads_user_info_1d表,获取最终的用户画像数据。

    SELECT * FROM ads_user_info_1d where dt = '20250101' LIMIT  10;
    • 新版数据开发:此处查询时的dt条件对应值请与运行工作流时配置的本次运行值保持一致。

    • 旧版数据开发:此处查询时的dt条件对应值请与业务流程节点中解析的业务日期保持一致。

任务运维

一、任务发布至生产环境

待数据开发中用户画像分析流程运行无误后,您可以将整个流程发布至生产调度系统进行周期性自动调度运行。

  • 如果您在任务开发步骤导入案例时选中了自动发布选项,则无需手动配置。

  • 如果您在任务开发步骤导入案例时未选中自动发布,请手动将任务发布至生产环境。

    • 新版数据开发:在工作流面板顶部工具栏,单击发布,打开发布面板。单击开始发布生产,根据发布流程引导,单击确认发布到生产环境,完成发布。

    • 旧版数据开发:在业务流程面板顶部工具栏,单击提交,然后单击发布,根据页面提示,完成发布。

二、查看生产调度任务

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

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

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

    • 生产任务依赖关系:单击案例介绍_用户画像分析(新版数据开发)或用户行为分析案例说明(旧版数据开发)任务名称,进入DAG面板,在第一个节点上右键,选择展开子节点 > 六层,快速查看任务的上下游依赖关系。

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

说明

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

三、补数据回刷去年同期数据

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

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

  1. 周期任务列表找到案例介绍_用户画像分析(新版数据开发)或用户行为分析案例说明(旧版数据开发)节点,可进行相应的补数据操作。

    • 新版数据开发补数据

      1. 右键选择补数据 > 当前节点

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

        说明

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

    • 旧版数据开发补数据

      1. 右键选择补数据 > 当前节点及下游节点

      2. 补数据页面配置相关参数。关键参数说明:

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

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

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

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

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

    image

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

    image

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

    image

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

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

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

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

任务查询

待补数据实例运行完成后,请前往SQL查询,通过查询SQL,获取用户画像分析业务流程通过补数据产出的去年同期的分区数据。

  1. 在左上角单击image > 全部产品 > 数据分析 > SQL查询

  2. 单击SQL查询,在我的文件下创建查询文件。

  3. 使用如下SQL,查询生产表ads_user_info_1d去年同期的数据。

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

    运行前,需在窗口右上角选择计算资源。

    说明

资源释放

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

  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 > 释放,在确认窗口中单击确定释放。

常见问题

Q:若运行报错:“function or view getregion cannot be resolved”。

A:您需在资源管理页面,检查并发布ip2region.jar资源和getregion函数。

  • 新版数据开发:发布资源和函数请参见注册自定义函数

    说明

    发布资源和函数时,可单击发布,打开发布面板。单击开始发布生产,根据发布流程引导,单击确认发布到生产环境,完成发布。

  • 旧版数据开发:提交资源和函数请参见创建函数(getregion)

    说明

    提交资源和函数时,可单击工具栏image.png按钮,完成提交。