离线数仓(五)【数据仓库建模】(4)

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 离线数仓(五)【数据仓库建模】

离线数仓(五)【数据仓库建模】(3)https://developer.aliyun.com/article/1532392

我们把上面所有的派生指标拿出来分析:

原子指标 统计周期 业务限定 统计粒度
业务过程 度量值 聚合逻辑
页面浏览 * * 最近1/7/30日   会话
页面浏览 during_time sum() 最近1/7/30日   会话
页面浏览 1 count() 最近1/7/30日   会话
页面浏览 * * 最近1/7/30日   会话
页面浏览 1 count() 最近1/7/30日   会话
页面浏览 1 count() 最近1/7/30日   访客-页面
页面浏览 1 count() 最近1/7/31日   访客-页面
用户登录 date_id max() 历史至今   用户
用户登录 date_id max() 历史至今   用户
用户登录 date_id max() 历史至今   用户
用户登录 date_id max() 历史至今   用户
加购 1 count() 最近1/7/30日   用户
下单 订单金额 sum() 最近1/7/30日   用户
下单 order_id count(distinct()) 最近1/7/30日   用户
下单 order_id count(distinct) 最近1/7/30日   用户
下单 order_id count(distinct) 最近1/7/30日   用户
下单 date_id min() 历史至今   用户
下单 date_id max() 历史至今   用户
下单 1 count() 最近30日   用户-商品
下单 1 count() 最近1/7/30日   用户-商品
下单 1 count() 最近1/7/30日   用户-商品
下单 1 count() 最近1/7/30日   用户-商品
下单 1 count() 最近1/7/30日   用户-商品
下单 order_id count(distinct) 最近1/7/30日   省份
下单 订单金额 sum() 最近1/7/30日   省份
下单 订单原始金额 sum() 最近30日 订单使用优惠券(coupon_id不为null)且优惠券发布日期在最近30日内 优惠券
下单 优惠券优惠金额 sum() 最近30日 订单使用优惠券(coupon_id不为null)且优惠券发布日期在最近30日内 优惠券
下单 订单原始金额 sum() 最近30日 订单参与活动(activity_id不为null)且活动的发布日期在最近30日内 活动
下单 活动优惠金额 sum() 最近30日 订单参与活动(activity_id不为null)且活动的发布日期在最近30日内 活动
退单 1 count() 最近1/7/30日   用户-商品
退单 1 count() 最近1/7/30日   用户-商品
退单 1 count() 最近1/7/30日   用户-商品
退单 1 count() 最近1/7/30日   用户-商品
退单 1 count() 最近1/7/30日   用户
退单 1 count() 最近1/7/30日   用户
支付 date_id min() 历史至今   用户
支付 order_id count(distinct()) 最近1/7/30日   用户

       这样我们就可以清楚的看到表中存在很多相同的派生指标,那我们就可以依据这些公共的派生指标去给 DWS 层建表,但是我们并不是把业务过程相同、统计周期相同、统计粒度相同、度量值、聚合逻辑都相同的数据放到同一张汇总表,具体设计看下面的汇总表模型设计。

5.2.4 维度模型设计

       维度模型的设计参照上述得到的业务总线矩阵即可。事实表存储在DWD层,维度表存储在DIM层。

5.2.5 汇总模型设计

       汇总模型的设计参考上述整理出的指标体系(主要是派生指标)即可。汇总表与派生指标的对应关系是,一张汇总通常包含业务过程相同、统计周期相同、统计粒度相同的多个派生指标。而不是非得度量值、聚合逻辑也都相同才放到一张汇总表中(不通需求的度量值和聚合逻辑总是不一样的)。

       比如上面的表格中,我们可以发现:

原子指标 统计周期 业务限定 统计粒度
业务过程 度量值 聚合逻辑
页面浏览 * * 最近1/7/30日   会话
页面浏览 during_time sum() 最近1/7/30日   会话
页面浏览 1 count() 最近1/7/30日   会话
页面浏览 * * 最近1/7/30日   会话
页面浏览 1 count() 最近1/7/30日   会话
页面浏览 1 count() 最近1/7/30日   访客-页面
页面浏览 1 count() 最近1/7/31日   访客-页面

其中存在完全相同结构的派生指标:

页面浏览 1 count() 最近1/7/30日   会话
页面浏览 1 count() 最近1/7/30日   访客-页面

        但是我们并不会直接把这种完全相同派生指标的计算结果存储一份到 DWS 层,而是把具有业务过程相同、统计周期相同、统计粒度相同的多个派生指标计算结果分别存到汇总表中:

原子指标 统计周期 业务限定 统计粒度
业务过程 度量值 聚合逻辑
页面浏览 * * 最近1/7/30日   会话
页面浏览 during_time sum() 最近1/7/30日   会话
页面浏览 1 count() 最近1/7/30日   会话
页面浏览 * * 最近1/7/30日   会话
页面浏览 1 count() 最近1/7/30日   会话
页面浏览 1 count() 最近1/7/30日   访客-页面
页面浏览 1 count() 最近1/7/31日   访客-页面

       业务过程相同,说明我们会用到同一张事实表;统计周期相同,说明会用到同一张事实表的同一天的数据;统计粒度相同,说明我们的每一行代表的含义是相同的。

汇总表与事实表的对应关系是?

       一个汇总表只对应一个事实表(因为汇总表必须有相同的业务过程,而一个业务过程又对应一个事实表),但是一个事实表对应多个汇总表,因为我们的需求(派生指标)统计粒度和统计周期可能不同。

总结

       现在是 2024-3-9 16:25 ,数仓建模的知识终于学完了,用了近一周。理论的学习还是非常有必要的,这是我现在越发体会到的。就比如最近背的面试题,你要说写代码用的上吗?那一般指定用不上,但是对你不论是理解代码还是二次开发都是必须熟悉的。就像 MapReduce 程序工作会让我们去写吗,那肯定不会,都是用 Hive SQL ,但是不了解行吗?就像 Flink 的水位线不去了解它怎么做到精确一次背后的原理,只会跟着视频敲代码那也绝对屁用没有。所以很多人说 Java 网上 SSM 十几个小时速成,我看完多练练就精通了,但是 SSM 背后的反射机制、注解、代理模式、单例模式、工厂模式这些东西自己不懂那只能说你的上限也就到这了。

相关实践学习
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
相关文章
|
1天前
|
存储 数据采集 大数据
数据仓库建模规范思考
本文介绍了数据仓库建模规范,包括模型分层、设计、数据类型、命名及接口开发等方面的详细规定。通过规范化分层逻辑、高内聚松耦合的设计、明确的命名规范和数据类型转换规则,提高数据仓库的可维护性、可扩展性和数据质量,为企业决策提供支持。
32 10
|
5月前
|
存储 数据挖掘 BI
数据仓库深度解析与实时数仓应用案例探析
随着数据量的不断增长和数据应用的广泛深入,数据治理和隐私保护将成为数据仓库建设的重要议题。企业需要建立完善的数据治理体系,确保数据的准确性、一致性和完整性;同时加强隐私保护机制建设,确保敏感数据的安全性和合规性。
597 55
|
4月前
|
消息中间件 存储 大数据
大数据-数据仓库-实时数仓架构分析
大数据-数据仓库-实时数仓架构分析
153 1
|
4月前
|
消息中间件 监控 关系型数据库
Serverless 应用的监控与调试问题之实时离线数仓一体化常用的解决方案有什么问题
Serverless 应用的监控与调试问题之实时离线数仓一体化常用的解决方案有什么问题
|
5月前
|
存储 数据采集 分布式计算
阿里巴巴数据仓库实践:从离线到实时的一体化探索
阿里巴巴的数据仓库实践从离线到实时的一体化探索,不仅为企业自身业务的快速发展提供了有力支撑,也为行业树立了标杆。通过不断优化技术架构、提升数据处理能力、加强数据治理和安全管理,阿里巴巴的实时数仓将为企业创造更大的价值,推动数字化转型的深入发展。未来,随着技术的不断进步和业务的持续拓展,阿里巴巴的实时数仓实践将展现出更加广阔的应用前景和发展空间。
|
5月前
|
存储 DataWorks Java
DataWorks产品使用合集之开发离线数仓时,需要多个工作空间的情况有哪些
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
存储 消息中间件 数据挖掘
数据仓库的深度探索与实时数仓应用案例解析
大数据技术的发展,使得数据仓库能够支持大量和复杂数据类型(如文本、图像、视频、音频等)。数据湖作为一种新的数据存储架构,强调原始数据的全面保留和灵活访问,与数据仓库形成互补,共同支持企业的数据分析需求。
|
4月前
|
存储 缓存 Cloud Native
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
|
5月前
|
SQL Cloud Native 关系型数据库
云原生数据仓库使用问题之分组优化如何实现
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
5月前
|
Cloud Native 关系型数据库 OLAP
云原生数据仓库操作报错合集之遇到“table does not exist”错误,该怎么办
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。

热门文章

最新文章