基于下单业务的规范建模流程

本实践基于Dataphin系统进行下单业务的数据分析,对数据进行主题域划分、定义业务过程、构建逻辑模型和统计指标(原子指标、派生指标)的全过程进行展示。

前提条件

需购买云原生大数据计算服务MaxCompute和智能数据建设与治理Dataphin(智能研发版)。建议购买时两者选择同一个地域。

背景信息

  • 规范定义是指以维度建模作为理论基础,划分并定义主题域、业务过程、维度、原子指标、统计周期和派生指标。

  • 根据业务场景创建不同的指标,实现对电商下单业务流程的数据分析。

场景介绍

本教程通过买卖双方的交易行为,介绍电商下单业务流程的完整生命周期。

  • ①买家选择商品规格,与卖家约定销售商品的价格、支付方式、等待买家支付定金。

  • ②买家支付定金后,即创建了一个订单。

  • ③卖家根据买家的所需商品安排物流进行发货。

  • ④买家跟踪物流并收到商品后,确认商品的规格、数量无误,支付尾款。

  • ⑤双方确认商品、价格等无误后,关闭订单,即下单流程结束。

image

根据如上场景,可在Dataphin中构建最近7天单笔总金额超过50万的派生指标,如下图所示。

image

实践步骤

步骤一:资源准备

  • 已开通Dataphin系统,详情请参见开通Dataphin

  • 已在Dataphin中创建项目,通过项目进行多用户隔离和数据访问,详情请参见创建通用项目

    说明

    项目名称配置为dataphin_order,建议项目名称与计算源名称保持一致。

  • 已在MaxCompute控制台中创建MaxCompute项目,SQL任务、逻辑表任务将使用MaxCompute计算引擎进行数据处理。如何开通,请参见创建MaxCompute项目

步骤二:准备物理表和数据

  1. Dataphin首页的顶部菜单栏,选择研发 > 数据研发,选择开发环境下的dataphin_order项目。

  2. 在左侧导航栏选择数据处理 > 表管理,在表管理列表,单击新建image图标。

  3. 新建物理表对话框中,按照下图配置s_user物理表,单击确定

    image

  4. 物理表详情页面,单击从建表语句引入按钮,将下方代码框的建表语句添加到Dataphin,单击提交,单击确定并提交,再单击去发布

    建表语句如下:

    CREATE TABLE IF NOT EXISTS s_user (
      id BIGINT COMMENT 'ID'
      ,gmt_create STRING COMMENT '创建时间'
      ,gmt_modified STRING COMMENT '修改时间'
      ,reg_date STRING COMMENT '注册日期'
      ,user_name STRING COMMENT 'nick昵称'
      ,certify_status BIGINT COMMENT '认证状态: 0: 未认证 1: 一类认证, 实人实名认证 2: 二类认证, 一类基础上+银行账户认证'
      ,user_level BIGINT COMMENT '用户等级: 1: 一星 2: 二星 3: 三星 4: 四星 5: 五星'
      ,tp_account STRING COMMENT '第三方来源账号'
      ,id_card_number STRING COMMENT '身份证号'
      ,dob STRING COMMENT '生日'
      ,user_gender STRING COMMENT '性别: F:女,M:男'
      ,full_name STRING COMMENT '真实姓名'
      ,address_id BIGINT COMMENT '地址'
      ,mobile_phone STRING COMMENT '手机号码'
      ,email STRING COMMENT '电子邮件地址'
    ) PARTITIONED BY (
      ds STRING
    ) STORED AS ALIORC TBLPROPERTIES (
      'columnar.nested.type' = 'true'
    );
    CREATE TABLE IF NOT EXISTS s_order (
      id BIGINT COMMENT 'ID'
      ,gmt_create STRING COMMENT '创建时间'
      ,gmt_modified STRING COMMENT '修改时间'
      ,order_time STRING COMMENT '下单时间'
      ,pay_time STRING COMMENT '支付时间'
      ,ship_time STRING COMMENT '发货时间'
      ,end_time STRING COMMENT '交易完成/交易取消 时间'
      ,buyer_id BIGINT COMMENT '买家ID'
      ,total_items_amount DOUBLE COMMENT '总商品金额, 单价*件数 之和, 单位 分'
      ,discount_amount DOUBLE COMMENT '总折扣金额, 单位 分'
      ,delivery_amount DOUBLE COMMENT '运费, 单位 分'
      ,total_amount DOUBLE COMMENT '实付总金额, 单位 分'
      ,`status` BIGINT COMMENT '状态: -1: 已取消 1: 新建 2: 已支付 3: 已发货 4: 确认收货'
      ,delivery_address_id BIGINT COMMENT '收货地址'
    ) PARTITIONED BY (
      ds STRING
    ) STORED AS ALIORC TBLPROPERTIES (
      'columnar.nested.type' = 'true'
    );
  5. 待发布对象列表中,将物理表发布到生产环境。

    s_order物理表创建方式和s_user一致。

  6. 在数据开发页面,将环境切换到生产环境,并单击s_user物理表,进入离线物理表详情页面,单击导入数据按钮,按照下图配置导入数据。

    s_user.csvs_order.csv两个文件的数据上传到Dataphin。

    image

  7. 单击下一步,在导入数据对话框中,单击同名映射后,再单击开始导入,将数据同步到生产环境的s_users_order表中。

步骤三:规范建模

创建数据板块

  1. 登录Dataphin控制台,单击进入Dataphin>>,进入Dataphin首页。

  2. Dataphin首页的顶部菜单栏,选择规划 > 数据架构,在数据板块页面,单击新建数据板块按钮,进入新建数据板块对话框。

  3. 新建数据板块对话框中,选择Dev_Prod模式,按照下图配置LD_retail数据板块,单击下一步,然后再单击确定,完成LD_retail板块创建。

    image

创建主题域

  1. Dataphin首页的顶部菜单栏,选择规划 > 数据架构

  2. 数据板块页面,单击LD_retail数据板块,进入主题域管理页签,单击新建主题域按钮。

  3. 新建主题域面板中,按下图参数创建销售域,然后单击确定,完成销售域创建。

    image

创建业务对象

  1. 单击业务实体页签,再单击新建业务实体按钮。

  2. 新建业务实体面板,创建用户业务对象,按照下图参数配置,单击确定,再单击上线,发布用户业务对象。

    卖家业务对象、买家业务对象、商品业务对象配置方式与用户业务对象一致。

    image

创建业务事件

  1. 单击业务实体页签,再单击新建业务实体按钮。

  2. 新建业务实体面板,创建下单业务事件,按照下图参数配置,单击确定,再单击上线,发布下单业务事件。

    支付业务事件、关单业务事件、查看业务事件、点击业务事件配置方式与下单业务事件一致。

    image

创建业务流程

  1. 单击业务实体页签,再单击新建业务实体按钮。

  2. 新建业务实体面板,创建订单业务流程,按照下图参数配置,单击确定,再单击上线,发布订单业务流程。

    浏览业务流程(关联实体为用户、商品业务对象,流程事件为查看、点击业务事件)的配置方式与订单业务流程一致。

    image

创建完成后,可查看如下销售订单关系图。

image

创建维度逻辑表

  1. Dataphin首页的顶部菜单栏,选择研发 > 数据开发,选择开发环境下的dataphin_order项目。

  2. 在左侧菜单栏选择规范建模 > 维度逻辑表,在维度逻辑表列表,单击新建image图标。

  3. 新建维度逻辑表对话框中,创建【用户】维度逻辑表。

    image

  4. 为维度逻辑表添加字段,主键建议为非空且唯一,避免数据重复或有脏数据流入下游,造成数据计算错误。

    image

  5. 计算逻辑配置中,单击来源配置,选择买家物理表${dataphin_order}.s_user,关联主键为id确定后,单击下一步。约束配置默认配置,单击下一步

  6. 调度&参数配置中,单击自动解析,然后单击节点(任务)名列下的点击补充,在点击补充对话框中,选择virtual_root_node节点,单击保存并提交,再单击去发布

创建事实逻辑表

  1. 在左侧菜单栏选择规范建模 > 事实逻辑表,在事实逻辑表列表,单击新建image图标。

  2. 新建事实逻辑表对话框中,创建【订单】事实逻辑表。

    image

  3. 为事实逻辑表添加字段,主键建议为非空且唯一,避免数据重复或有脏数据流入下游,造成数据计算错误。

    image

  4. 单击关联维度,为buyer_id字段添加模型关系。

    image

  5. 计算逻辑配置中,单击来源配置,选择买家物理表${dataphin_order}.s_user,关联主键为id确定后,单击下一步。约束配置使用默认配置,单击下一步

  6. 调度&参数配置中,单击自动解析,然后单击节点(任务)名列下的点击补充,在点击补充对话框中,选择virtual_root_node节点,单击保存并提交,再单击去发布

创建原子指标

  1. 在左侧菜单栏选择规范建模 > 指标,在指标列表,单击新建image图标。

  2. 新建原子指标对话框中,按照下图创建订单笔数指标(订单笔数可累加),单击保持并提交,然后单击确定并提交,完成【订单笔数】原子指标创建。

    image

创建业务限定

  1. 在左侧菜单栏选择规范建模 > 业务限定,在业务限定列表,单击新建image图标。

  2. 新建业务限定对话框中,按照下图创建金额超过50万业务限定,单击保持并提交,然后单击确定并提交,完成【金额超过50万】业务限定创建。

    image

创建派生指标

  1. 在左侧菜单栏选择规范建模 > 指标,在指标列表,单击新建image图标。

  2. 新建派生指标页面中,按照下图创建最近7天单笔总金额超过50万的订单笔数, 根据系统配置单击下一步,然后单击提交,再单击确定并提交,完成【最近7天单笔总金额超过50万的订单笔数】派生指标创建。

    image

您可以在dws_all表中查看所创建的派生指标。

步骤四:发布及运维补数据

  1. Dataphin首页的顶部菜单栏,选择研发 > 任务发布,在待发布对象列表中,将用户维度逻辑表、订单事实逻辑表、订单笔数原子指标、金额超过50万业务限定、最近7天单笔总金额超过50万的订单笔数派生指标、dws_all汇总逻辑表发布到生产环境。

  2. 单击顶部菜单栏的任务运维,在左侧导航栏选择任务运维 > 周期任务,再选择生产环境下的dataphin_order项目。

  3. 在周期任务页面,单击明细及汇总表页签,选择订单实时逻辑表操作列下的更多-补数据-补当前任务及下游,为逻辑表任务进行补数据,详情请参见对当前及下游任务补数据

    image

  4. 可在补数据实例页面,查看运行结果。

步骤五:验证数据

  1. Dataphin首页的顶部菜单栏,选择研发 > 数据研发,选择开发环境下的dataphin_order项目。

  2. 单击左侧导航栏的即席查询,在即席查询列表中单击新建图标,进入新建即席查询对话框配置参数,创建即席查询任务。

  3. 代码编写页面,编写代码并验证数据是否符合预期。

    例如:编写以下命令后,单击页面上方的运行,验证汇总逻辑表数据。

    SELECT * FROM LD_retail.dws_all WHERE ds = '${bizdate}';

    image