集成治理最佳实践

1. 概述

1.1 应用场景

某零售品牌同时经营线下门店和线上电商,需要对有效订单做双排名分析,即全局订单金额排名 + 品类内订单金额排名。

  • 全局排名:所有订单按金额从高到低排名,一眼看出哪些是头部交易。
  • 品类内排名:每个品类内部按金额排名,找出各品类的销冠订单。

1.2 实现思路

需要将业务数据表接入到集成治理平台中,生成注册表后,在开发表中对数据进行处理输出,输出后的数据制作报表进行展示。

10.png

1.3 数据清洗逻辑

任务类型

说明

调度计划

数据集成任务

创建三个数据集成任务,将product、order_online、order_offline表原样同步到存储计算引擎中,会在数据开发模块自动生成三张注册表

每晚 22 点执行

开发表dwd_order_detail

使用自动生成的三张注册表,合并线上线下有效订单数据并补全品类维度

依赖数据集成任务

开发表ads_dual_rank

使用开发表dwd_order_detail,新增两列,显示双排名:全局订单金额排名、品类内订单金额排名

依赖开发表dwd_order_detail

2. 操作步骤

2.1 准备工作

1)需要配置 存储计算引擎,作为「数据集成」任务的目标端。

2)需要准备业务库数据连接,将业务数据接入到集成治理平台中。本文示例,业务数据库类型为 RDS MySQL数据源

34.png

3)本文示例待处理表数据(包含三张表:product、order_online、order_offline):业务数据.zip

2.2 配置数据集成任务

2.2.1 同步product表数据

1)新建数据集成任务:

12.png

2)数据来源处选择业务数据库对应的数据连接,以及待同步的表;数据去向处选择已配置的存储计算引擎,目标表下拉框中可选择已有表,或者直接输入目标表名称,若与已有表名称匹配不上,将自动建表。

数据集成任务详细说明请参见:配置数据同步任务

1780910340760837.png

3)点击「创建确认」按钮后,可修改任务名称以及添加任务描述,点击「创建任务」按钮。如下图所示:

1780902261867015.png

4)点击「运行」按钮,运行数据集成任务。如下图所示:

37.png

可查看运行结果:

38.png

5)数据集成任务运行成功后,会在「数据开发」模块下自动生成一张注册表。如下图所示:

1780910419796238.png

6)为该数据集成任务设置执行频率。如下图所示:

40.png

2.2.2 同步剩余表数据

步骤与本文 2.2.1 节相同,同步order_online、order_offline表数据。

注:这两张表中的 amount 字段需要设置为数值类型,便于后续根据该字段进行排名。

2.3 配置数据开发任务

2.3.1 合并线上线下数据并去除无效数据

1)新建开发表:

41.png

2)修改开发表名称为dwd_order_detail,合并线上线下有效订单数据并补全品类维度;将处理后的数据输出到 dwd_order_detail 表中。

表名需要输入@后点击生成。

WITH offline_paid AS (
    -- 线下门店:只取已支付订单
    SELECT order_id, product_id, quantity, amount
    FROM ods_order_offline
    WHERE status = 'paid'
),

online_paid AS (
    -- 线上电商:只取已支付订单
    SELECT order_id, product_id, quantity, amount
    FROM ods_order_online
    WHERE status = 'paid'
),

all_paid AS (
    -- 用 UNION 合并线上线下有效订单
    SELECT order_id, product_id, quantity, amount FROM offline_paid
    UNION
    SELECT order_id, product_id, quantity, amount FROM online_paid
)

-- JOIN 商品表补全品类维度,产出 DWD 宽表
SELECT
    a.order_id,
    a.product_id,
    p.product_name,
    p.category,
    a.quantity,
    a.amount
FROM all_paid a
JOIN ods_product p
    ON a.product_id = p.product_id;

1780910769651760.png

3)点击「保存」按钮后,点击「运行」按钮。如下图所示:

1780910815290435.png

可看到运行成功的记录:

1780904631914816.png

dwd_order_detail 表数据如下图所示:

1780910892330338.png

4)点击「调度计划」按钮,为开发表设置依赖调度,依赖上游同步任务的运行成功与否。

1780911695760890.png

2.3.2 订单金额全局排名和品类内排名

1)步骤同 2.3.1 节,新建一张开发表。计算双排名,即显示订单销售额在全局的排名以及在品类中的排名。

表名需要输入@后点击生成。

SELECT
    order_id,
    product_id,
    product_name,
    category,
    quantity,
    amount,
    RANK() OVER (ORDER BY amount DESC)                        AS rank_all,
    RANK() OVER (PARTITION BY category ORDER BY amount DESC)  AS rank_in_category
FROM dwd_order_detail
ORDER BY rank_all;

1780911248941130.png

2)该开发表运行成功后,表数据如下图所示:

54.png

3)点击「调度计划」按钮,为开发表设置依赖调度,依赖 2.3.1 节的开发表。

1780911873903792.png

2.4 效果查看

三个数据集成按照设置的定时调度运行,都运行成功后,dwd_order_detail 开发表开始运行,该开发表运行成功后,运行 ads_dual_rank 开发表。

咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验