购房群体分析简单教程

更新时间:2025-03-13 10:49:19

本案例将指引您快速完成一个简单完整的购房群体分析教程,以快速了解DataWorks的数据开发、数据分析、数据运维流程。

案例介绍

本案例基于用户买房数据分析不同群体的购房情况,演示DataWorks的数据开发和分析流程。将本地数据通过DataWorks映射到MaxComputebank_data表,通过ODPS SQL任务节点分析用户群体,得到result_table表。基于result_table表做简单可视化展示分析,得到群体画像。最后,将结果通过同步任务写入RDS MySQL数据源。

说明

本案例仅做功能的学习演示,不具实际业务参考价值。本示例使用的数据为模拟数据,仅供演示使用。

本案例的数据流转和数据开发的业务流程图如下所示。

image

完成数据分析之后,您将从购房数据中得到如下群体分析画像:贷款买房单身人士中的受教育水平以university.degreehigh.school为主。

image

准备工作

说明
  • 本案例使用旧版数据开发演示。

  • 本案例在标准模式的工作空间下进行。若您使用的是简单模式的工作空间,在提交任务时不会区分开发环境和生产环境,其他操作步骤同标准模式。

  • 准备DataWorks环境

    • 工作空间绑定MaxCompute为计算资源

    • 工作空间已绑定Serverless资源组,并在系统管理中配置引擎使用的资源组,详情请参见系统管理

      重要

      若未在系统管理中配置引擎所使用的资源组,您将收到错误提示:当前文件来源或者目标引擎需要配置资源组进行数据上传,请联系空间管理员进行资源组的配置

  • (可选)准备RDS MySQL数据源

    说明

    若您只需体验数据开发和分析能力,操作至步骤三即可,无需准备RDS MySQL数据源。

    1. 通过RDS控制台创建MySQL实例,获取RDS实例ID,并在RDS控制台添加白名单。详情请参见创建RDS MySQL实例添加白名单

      说明

      通过Serverless资源组调度RDS的数据同步任务时需注意:

      1. 通过内网访问,请将资源组绑定的交换机网段IP添加到数据源的白名单列表。

      2. 通过公网访问,将Serverless资源组绑定VPC配置的EIP添加至数据源的白名单列表。

    2. 通过DMS登录RDS数据库,并在RDS MySQL数据库中创建表odps_result,建表语句如下所示。

      CREATE TABLE `odps_result` (
        `education`  varchar(255) NULL ,
        `num`  int(10) NULL 
      );

      建表完成后,您可以执行desc odps_result;语句,查看表详情。

步骤一:建表并上传数据

本节以创建表bank_dataresult_table为例,为您介绍如何通过DataWorks创建表并上传数据。其中,表bank_data用于存储业务数据,表result_table用于存储数据分析后产生的结果。

创建MaxCompute

  1. 进入数据开发页面。

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

  2. 数据开发页面,鼠标悬停至新建图标,单击新建表 > MaxCompute >

    image

  3. 新建表对话框中,选择相应的路径,输入名称bank_data,单击新建

  4. 在表的编辑页面,单击左上角的DDL按钮DDL对话框中输入如下建表语句,单击生成表结构

    点击查看SQL语句。

    CREATE TABLE IF NOT EXISTS bank_data
    (
     age             BIGINT COMMENT '年龄',
     job             STRING COMMENT '工作类型',
     marital         STRING COMMENT '婚否',
     education       STRING COMMENT '教育程度',
     default         STRING COMMENT '是否有信用卡',
     housing         STRING COMMENT '房贷',
     loan            STRING COMMENT '贷款',
     contact         STRING COMMENT '联系途径',
     month           STRING COMMENT '月份',
     day_of_week     STRING COMMENT '星期几',
     duration        STRING COMMENT '持续时间',
     campaign        BIGINT COMMENT '本次活动联系的次数',
     pdays           DOUBLE COMMENT '与上一次联系的时间间隔',
     previous        DOUBLE COMMENT '之前与客户联系的次数',
     poutcome        STRING COMMENT '之前市场活动的结果',
     emp_var_rate    DOUBLE COMMENT '就业变化速率',
     cons_price_idx  DOUBLE COMMENT '消费者物价指数',
     cons_conf_idx   DOUBLE COMMENT '消费者信心指数',
     euribor3m       DOUBLE COMMENT '欧元存款利率',
     nr_employed     DOUBLE COMMENT '职工人数',
     y               BIGINT COMMENT '是否有定期存款'
    );
  5. 生成表结构后,在基本属性模块输入表的中文名,并分别单击提交到开发环境提交到生产环境

    说明

    本示例以标准模式的工作空间为例。如果您使用的是简单模式的工作空间,仅需单击提交到生产环境即可。

  6. 以相同方式,创建表result_tableDDL建表语句如下。

    CREATE TABLE IF NOT EXISTS result_table
    (  
     education   STRING COMMENT '教育程度',
     num         BIGINT COMMENT '人数'
    );
  1. 在左侧导航栏,单击image图标进入表管理页面。双击打开相应的表名,即可查看表信息。

上传数据至bank_data

导入本地文件banking.txtDataWorks中,并将数据写入bank_data表。

  1. 数据开发页面,单击导入图标。

    使用数据开发导入数据

  2. 数据导入向导对话框中,搜索需要导入数据的bank_data表,单击下一步

    说明

    如果您创建表后无法在此处搜索到该表,请先在数据地图进行手工同步表操作后,再在此处尝试搜索该表,手工同步详情可参考文档:手动刷新表元数据

  3. 文件格式自定义文本文件,单击选择文件后的浏览...。选择本地数据文件,配置导入信息。其他选项保持默认即可。

    说明

    更多参数介绍,请参见上传数据

  4. 单击下一步,选择目标表字段与源字段的匹配方式为按位置匹配,单击导入数据即可完成数据的导入。

确认数据成功上传

  1. 在左侧导航栏,单击image图标进入临时查询面板,右键单击临时查询,选择新建节点 > ODPS SQL

  2. 新建节点中输入SQL语句查询数据,并单击image运行。

    SELECT * FROM bank_data limit 10
    说明

    运行MaxCompute任务时,会展示费用预估,该费用由MaxCompute侧收取,仅作为预估费用,实际费用请以账单为准。具体计费细节,请参见MaxCompute计费项与计费方式

  3. 运行成功之后,在页面下方您将获得bank_data的前10条记录。此时,表示您成功上传本地数据至bank_data表。

    image

步骤二:搭建数据加工链路

本节为您介绍如何创建业务流程,在业务流程中创建节点并配置依赖关系。

创建业务流程

  1. 在页面左导航栏侧,切换至数据开发页面,鼠标悬停至新建图标,单击新建业务流程

  2. 新建业务流程对话框中,输入业务名称描述,单击新建完成业务流程创建。本示例名称为买房群体分析。

创建节点并配置依赖

在业务流程中创建一个虚拟节点(start)和ODPS SQL节点(insert_data),并配置依赖关系为insert_data依赖于start

  1. 双击业务流程名称进入开发面板,单击左上角的image,在节点列表中单击通用 > 虚拟节点

    image

  2. 新建节点对话框中,选择相应的路径,输入节点名称start,单击确认

  3. 以同样的操作新建一个MaxCompute > ODPS SQL节点,命名为insert_data

  4. (可选)以同样的操作新建一个数据集成 > 离线同步节点,命名为write_result

  5. 双击业务流程名称进入开发面板,通过拖拽连线,形成如下图数据加工链路。

    image

步骤三:加工数据

本节为您介绍如何配置虚拟节点和ODPS SQL节点对数据进行加工处理。

配置虚拟节点

在业务流程中,虚拟节点通常作为整个业务流程的起始点,是业务流程中所有节点的间接上游节点。通常使用工作空间根节点作为虚拟节点依赖的上游节点

  1. 双击虚拟节点名称,进入节点的编辑页面。

  2. 单击节点编辑页面右侧的调度配置

  3. 调度依赖区域,单击使用工作空间根节点,设置虚拟节点的上游节点为工作空间根节点。同时,设置重跑属性为任一选项。

    image.png

  4. 点击左上角工具栏中的image按钮,保存节点。

配置数据处理节点

本节将在ODPS_SQL节点insert_data中,通过SQL代码,查询单身人士贷款买房的受教育水平分布数量并保存结果,以便后续节点继续分析或展现。

  1. 双击业务流程名称进入开发面板,双击insert_data节点进入编辑页面,输入下述SQL语句。

    INSERT OVERWRITE TABLE result_table  --插入数据至result_table中。
    SELECT education
        , COUNT(marital) AS num
    FROM bank_data
    WHERE housing = 'yes'
        AND marital = 'single'
    GROUP BY education;
  2. 右键单击代码中的bank_data,单击删除输入

    删除输入

    说明

    bank_data表为非周期性调度产出的表,通过删除输入或在代码最上方添加规则注释,系统将不会解析该依赖。更多详情,请参见通过自动解析功能基于表血缘设置节点依赖

  3. 点击左上角工具栏中的image按钮,保存节点。

运行任务和查看加工数据

  1. 单击image运行该数据处理节点。运行结束后,即可在页面下方查看运行日志和结果。

  2. 在左侧导航栏,单击image图标进入临时查询面板,右键单击临时查询,选择新建节点 > ODPS SQL

  3. 新建节点中输入SQL语句查询数据,并单击image运行。

    SELECT * FROM result_table;
    说明

    运行MaxCompute任务时,会展示费用预估,该费用由MaxCompute侧收取,仅作为预估费用,实际费用请以账单为准。具体计费细节,请参见MaxCompute计费项与计费方式

  4. 运行成功之后,在页面下方您将获得result_table的结果。此时,表示您成功从bank_data表中加工获取到需要数据。该表格展示了贷款买房单身人士中的受教育水平以university.degreehigh.school为主。

    image

  5. 单击结果区的image图标进入图标分析,切换图标类型饼图,即可得到一张买房群体的受教育水平分布表。

    image

(可选)步骤四:同步数据

本节为您介绍如何通过同步任务,将MaxCompute的数据同步至MySQL数据源,以完成数据的持久化。

新增数据源

说明

仅拥有空间管理员运维角色的空间成员,以及拥有AliyunDataWorksFullAccessAdministratorAccess权限策略的RAM角色可创建数据源,授权详情请参见空间级模块权限管控RAM用户授权

  1. 进入管理中心页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的更多 > 管理中心,在下拉框中选择对应工作空间后单击进入管理中心

  2. 单击左侧导航栏的数据源 > 数据源列表,进入数据源列表页面。

  3. 单击新增数据源,在新增数据源对话框中选择数据源类型为MySQL

  4. 配置数据源信息。

    创建MySQL数据源对话框,配置各项参数。本文以创建阿里云实例模式类型为例。核心参数说明如下。

    参数

    描述

    参数

    描述

    适用环境

    分别配置开发环境生产环境的数据源。

    配置模式

    选择阿里云实例模式

    所属云账号

    选择当前云账号

    地域

    选择相应地域。

    实例

    选择已创建的RDS MySQL实例。选择实例后,可单击获取最新地址,查看实例相关信息。

    若无可用实例,您可进入RDS控制台创建新的实例。

    数据库登录信息

    此处配置为该数据源对应的默认数据库名称,您需要输入登录数据库的用户名称及密码。

  5. 找到当前工作空间绑定的Serverless资源组,单击测试连通性

    说明

    您需确保该资源组与数据源连通成功,以便正常访问用户数据源。否则,将导致数据同步任务无法正常执行。更多详情,请参见网络连通方案

  6. 测试连通性通过后,单击完成创建,数据源创建完成。

配置同步任务

配置write_result同步任务,将result_table表中的数据写入至自己的MySQL数据库中。

  1. 进入数据开发页面。

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

  2. 双击业务流程名称进入开发面板,双击write_result节点进入配置页面。

  3. 配置同步任务。

    1. 在节点编辑页面的网络与资源配置页签,配置数据来源为MaxCompute(ODPS)、数据去向为MySQL,并选择用于执行同步任务的资源组,测试数据源与资源组的网络连通性。网络连通性配置,详情请参见网络连通方案image.png

    2. 单击下一步,进入任务配置界面。

    3. 配置数据来源与去向。

      数据来源选择result_table表,数据去向选择odps_result表。

    4. 配置字段映射。此处默认进行同名映射,无需操作。

    5. 配置通道控制。设置脏数据策略,其他参数保持默认即可。

      说明

      更多参数可根据业务需求选择配置,详情可参考通过向导模式配置离线同步任务

  4. 配置时间属性。

    1. 单击编辑页面右侧导航栏的调度配置

      说明

      手动业务流程中创建的节点需要手动触发,无法通过调度执行。

    2. 时间属性区域,配置任务的调度时间属性。未提及参数保持默认即可。

    image.png

    参数

    描述

    参数

    描述

    调度周期

    设置每周一、周二的00:00点启动调度。

    重跑属性

    设置运行成功或失败后皆可重跑

    说明

    更多时间属性介绍,详情请参见时间属性配置说明

  5. 单击工具栏的保存图标,保存任务的配置。

运行任务和查看同步数据

  1. 单击image运行该数据同步节点。运行结束后,即可在页面下方查看运行日志和结果。

  2. 通过DMS登录RDS数据库,查询odps_result,确保数据已经完成同步写入。

    SELECT * FROM `ODPS_RESULT`;

    image

步骤五:提交并发布任务

当任务调试成功后,即可将其提交并发布。如果您使用的是标准模式的工作空间,提交后可以在开发环境运维中心运行任务,但开发环境不会周期性自动调度。如果需要将其发布至生产环境进行周期性调度请单击右上角的发布在此界面将同步任务发布至生产环境。具体操作请参见发布任务

  1. 进入数据开发页面。

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

  2. 双击业务流程名称进入开发面板。

  3. 单击工具栏中的image图标。提交对话框中,选中所有节点,输入变更描述,单击确认即可完成任务发布。

    说明

    业务流程提交后,即可在业务流程下的节点列表查看节点提交状态。如果节点名称左侧存在image.png图标,表示该节点未提交;如果不存在image.png图标,表示该节点已提交。

步骤六:任务运维

当任务完成提交和发布后,您可以前往运维中心查看生产环境的周期任务,实现任务节点的运行和运维。系统为您提供如下三种任务运行方式:

  • 测试运行:生成冒烟测试实例,以帮助验证生产环境任务执行是否符合预期。

  • 补数据:新建任务当天可以发起补数据操作,分析历史数据。

  • 周期运行:任务发布至生产环境后,系统将根据调度配置自动生成周期实例并运行。

方式一:测试运行
方式二:补数据运行
方式三:周期自动运行
  1. 单击当前页面左上角的image.png图标,选择全部产品 > 数据开发与运维 > 运维中心(工作流),进入运维中心页面。

  2. 在左侧导航栏,单击周期任务运维 > 周期任务

  3. 在弹出的页面中,找到目标节点,在操作列中单击测试

  4. 冒烟测试对话框中,输入冒烟测试名称,并选择业务日期,单击确定

  5. 自动跳转至测试实例页面,单击相应的实例,即可在右侧查看实例DAG图。

    右键单击实例,您可以查看该实例的依赖关系和详细信息,并进行终止运行、重跑等具体操作。

    说明

    测试运行是手动触发节点,只要到定时的时间,立即运行,自动忽略实例的上游依赖关系。

  1. 单击当前页面左上角的image.png图标,选择全部产品 > 数据开发与运维 > 运维中心(工作流),进入运维中心页面。

  2. 运维中心页面,单击左侧导航栏中的周期任务运维 > 周期任务

  3. 单击目标节点右侧操作列的补数据 > 当前节点

  4. 配置补数据对话框中的参数,单击提交并跳转

    参数

    描述

    补数据名称

    输入补数据名称。

    选择业务日期

    选择补数据的业务日期,业务日期为运行日期-1

    当前任务

    默认为当前节点,不可以更改。

    是否并行

    可以选择不并行或指定允许几组任务同时运行。

  5. 自动跳转至补数据实例页面,单击相应的实例,即可看到实例DAG图。

    右键单击实例,可以查看该实例的依赖关系和详细信息,并进行终止运行、重跑等具体操作。

    说明

    补数据任务的实例依赖前一天,例如补2017-09-152017-09-18时间段内的任务,如果15号的实例运行失败了,则16号的实例也不会运行。

系统将根据任务在生产环境的调度配置自动调度执行。用户可以在运维中心维护周期任务查看生产任务状态配置,在周期实例查看任务周期性调度情况。

  1. 单击当前页面左上角的image.png图标,选择全部产品 > 数据开发与运维 > 运维中心(工作流),进入运维中心页面。

  2. 运维中心页面,单击左侧导航栏中的周期任务运维 > 周期实例,选择业务日期或运行日期等参数,搜索write_result节点对应的实例后,右键查看实例信息和运行日志。

  3. 选择周期实例页面中相应的节点实例并单击,即可看到实例DAG图。

    右键单击实例,可以查看该实例的依赖关系和详细信息并进行终止运行、重跑等具体操作。

    说明
    • 如果上游节点未运行,下游节点也不会运行。

    • 如果节点的实例初始状态为未运行,当定时时间到达时,调度系统会检查该实例的全部上游实例是否运行成功。

    • 只有上游实例全部运行成功,且定时时间到达的实例,才会被触发运行。

    • 处于未运行状态的实例,请确认上游实例已经全部成功且已到定时时间。

相关文档

更多案例请参见场景教程

  • 本页导读 (1)
  • 案例介绍
  • 准备工作
  • 步骤一:建表并上传数据
  • 创建MaxCompute表
  • 上传数据至bank_data表
  • 确认数据成功上传
  • 步骤二:搭建数据加工链路
  • 创建业务流程
  • 创建节点并配置依赖
  • 步骤三:加工数据
  • 配置虚拟节点
  • 配置数据处理节点
  • 运行任务和查看加工数据
  • (可选)步骤四:同步数据
  • 新增数据源
  • 配置同步任务
  • 运行任务和查看同步数据
  • 步骤五:提交并发布任务
  • 步骤六:任务运维
  • 相关文档