集成治理最佳实践
1. 概述
1.1 应用场景
某零售品牌同时经营线下门店和线上电商,需要对有效订单做双排名分析,即全局订单金额排名 + 品类内订单金额排名。
- 全局排名:所有订单按金额从高到低排名,一眼看出哪些是头部交易。
- 品类内排名:每个品类内部按金额排名,找出各品类的销冠订单。
1.2 实现思路
需要将业务数据表接入到集成治理平台中,生成注册表后,在开发表中对数据进行处理输出,输出后的数据制作报表进行展示。

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数据源

3)本文示例待处理表数据(包含三张表:product、order_online、order_offline):业务数据.zip
2.2 配置数据集成任务
2.2.1 同步product表数据
1)新建数据集成任务:

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

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

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

可查看运行结果:

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

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

2.2.2 同步剩余表数据
步骤与本文 2.2.1 节相同,同步order_online、order_offline表数据。
注:这两张表中的 amount 字段需要设置为数值类型,便于后续根据该字段进行排名。
2.3 配置数据开发任务
2.3.1 合并线上线下数据并去除无效数据
1)新建开发表:

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;

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

可看到运行成功的记录:

dwd_order_detail 表数据如下图所示:

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

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;
2)该开发表运行成功后,表数据如下图所示:

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

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

400-111-0890
在线咨询