《全链路数据治理-智能数据建模 》——数仓建模理论与规范(8)

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 《全链路数据治理-智能数据建模 》——数仓建模理论与规范(8)

《全链路数据治理-智能数据建模 》——数仓建模理论与规范(7) https://developer.aliyun.com/article/1231078?groupCode=tech_library




c) 多事务事实表


image.png


淘宝多事务事实表:dwd_tb_trd_ord_ent_di

基本特征

􎛏 业务过程:订单创建→支付→完结

􎛏 事实表类型:多事务事实表

􎛏 粒度:子订单ID

􎛏 度量:订单创建金额、支付金额等

􎛏 冗余属性:冗余商品、会员属性

􎛏 数据存储:仅插入不更新,每个分区存储每个实体的最新业务过程状态,通常以打标方式标识其业务过程(如表中的“是否当天下单”、“是否当天支付”、“是否当天确认收货”),每个实体因其业务过程更新情况,在整张表可能有多条记录



适用场景

􎛏 适合一次分析多个业务过程的场景

􎛏 此场景下计算存储相比单事务节约、取数更便捷

􎛏 举例:查询20220110 当天下单当天支付的订单

select * from tbcdm.dwd_tb_trd_ord_ent_di where ds = '20220110' and

is_create = 'Y' and is_pay= 'Y'


d) 累积快照事实表


image.png


订单全流程表:dwd_tb_trd_ord_flow_di

基本特征

􎛏 业务过程:订单创建->支付->完结

􎛏 事实表类型:累积快照事实表

􎛏 粒度:子订单ID

􎛏 度量:订单创建金额、支付金额等

􎛏 冗余属性:冗余商品、会员属性

􎛏 数据存储:

每日更新,存储每个实体的最新状态,每个实体在整张表中仅有一条记录每天完成的订单存储在当天日期的分区,而未完成的订单统一存储在300001231 分区


适用场景

􎛏 多个业务过程,联合分析,如下单到支付、支付到订单完结时长的分析

􎛏 保存全量数据、常见于订单处理

􎛏 举例:近7 天支付订单从下单到支付平均时长

select sum ( pay_time-create_time ) /count ( order_id ) from

tbcdm.dwd_tb_trd_ord_flow_di where pay_time>${bizdate-7} and

(ds>${bizdate-7} or ds= '30001231')

e) 周期型快照事实表




设计流程


image.png


基本原则

• 数据公用性

􎛏 汇总层的产出是否有多个下游使用

􎛏 维度的聚集是否有多个下游用于分析等

􎛏 高内聚低耦合:dws 层不跨域计算存储

􎛏 可扩展性:区分统计周期,如果要拆分,需要按照原子周期去拆分到多个

dws

命名规则

􎛏 dws_{业务BU 缩写/pub}_{数据域缩写}_{数据粒度缩写}[_{自定义表命名标签缩写}]_{统计时间周期范围缩写}

􎛏 比如:dws_tb_itm_slr_td(商品域商家粒度汇总表)

􎛏 tb:业务域

􎛏 itm:数据域

􎛏 slr:统计粒度

􎛏 td:时间周期(截至当天为止)

最佳实践

以淘系事实表商家粒度商品汇总表和其中冗余维度店铺维度为例来介绍:


image.png



商家粒度商品汇总表:dws_tb_itm_slr_td

基本特征

􎛏 粒度:商家ID

􎛏 指标:历史截至当日商品数等

􎛏 业务周期:每日

􎛏 物理表类型:周期快照事实表

􎛏 冗余维度:店铺ID

􎛏 数据存储:每日更新,每个分区存储每个

􎛏 实体的最新状态

适用场景

􎛏 时间周期跨度比较大,实体的当前状态

􎛏 不需要每次读时从事务事实再计算

􎛏 举例:该商家历史截至当日共上线的商品数

Select itm_cnt_std from tbcdm.dws_tb_itm_slr_td where ds=‘${bizdate}’

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
5月前
|
存储 数据采集 JavaScript
深入理解数仓开发(一)数据技术篇之日志采集
深入理解数仓开发(一)数据技术篇之日志采集
|
16天前
|
1月前
|
SQL
数仓规范之sql编写规范
编写SQL时,应遵循以下规范:所有关键字小写,表别名按a, b, c...顺序使用,复杂逻辑多行书写,提高可读性。SELECT字段需逐行列出,避免使用*,GROUP BY字段同样处理。WHERE条件多于一个时,每条件一行。JOIN子表推荐使用嵌套查询方式1,明确关联条件,避免笛卡尔积。关键逻辑需注释,INSERT SELECT后最外层字段加注释说明用途。示例中展示了推荐的JOIN替代子查询的写法,以提高代码的可读性和维护性。
42 1
|
5月前
|
消息中间件 关系型数据库 Kafka
深入理解数仓开发(二)数据技术篇之数据同步
深入理解数仓开发(二)数据技术篇之数据同步
|
3月前
|
DataWorks 负载均衡 Serverless
实时数仓 Hologres产品使用合集之如何导入大量数据
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
3月前
|
SQL 消息中间件 OLAP
OneSQL OLAP实践问题之实时数仓中数据的分层如何解决
OneSQL OLAP实践问题之实时数仓中数据的分层如何解决
55 1
|
3月前
|
SQL DataWorks 数据库连接
实时数仓 Hologres操作报错合集之如何将物理表数据写入临时表
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
3月前
|
SQL 分布式计算 关系型数据库
实时数仓 Hologres操作报错合集之指定主键更新模式报错主键数据重复,该如何处理
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
3月前
|
SQL 分布式计算 MaxCompute
实时数仓 Hologres产品使用合集之如何在插入数据后获取自增的id值
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
实时数仓 Hologres产品使用合集之如何在插入数据后获取自增的id值
|
4月前
|
Cloud Native 关系型数据库 新能源

热门文章

最新文章