https://mp.weixin.qq.com/s/iwC0iKXBFFBVwxCQPhBAxg km文章思路参考
1.什么是数据仓库
数据仓库一种面向分析的环境,是一种把相关的各种数据转换成有商业价值的信息的技术。
数据仓库理论的创始人W.H.Inmon在其《Building the Data Warehouse》一书中,给出了数据仓库的四个基本特征:
面向主题,数据是集成的,数据是不可更新的,数据是随时间不断变化的。
业务数据库的特点:
- 用于减少冗余和提高精度 。
- 适合于数据的写入和更新而不是数据的读取。
- 数据被细分为很多表(为了消除冗余),大的查询执行起来比较慢。
分析型数据库的特点:
- 报表型数据源通常使用星型结构布局。所有事务型数据,大部分数值型数据存储在事实表中,所有的参考数据,例如产品信息等,存储在独立的维度表中。
- 星型结构数据库比完全标准化数据库含有的表少,查询性能更快。
2.维度
维度是一个与业务相关的观察角度,依赖于数据的有效性和表达业务成效的关键性能指标。
能够回答类似下列问题:who, what, where, when
可将业务的每个方面构造成一个维度,如时间维度由年、季度、月构成。所有维度在一起提供了业务的多维视图。这个多维视图的数据被存为一个立方体。
3.度量
- 度量也叫事实,是用于评价业务状况的数值型数据。如销售额、成本、利润、库存量、交易数。
- 在企业活动中通常是通过如销售额、费用、库存量和定额一类的关键性能指标,度量来监测业务的成效。
- 不同的度量反映出不同的业务性质。度量之间相互独立。
- 度量是业务量化的表示。
4.多维立方体
5.多维分析
6.维度、层和类别
数据仓库的体系结构
业界存在Kimball与Inmon各自倡导的两种体系结构。
1、Inmon的企业信息化工厂
2.Kimball的维度数据仓库
这两种结构的相似之处:
一、都是假设操作型系统和分析型系统是分离的;
二、数据源(操作型系统)都是众多;
三、ETL整合了多种操作型系统的信息,集中到一个企业数据仓库。
不同点:
1、数据仓库的模式不同:
inmon是采用第三范式的格式,
kimball采用了多维模型–星型模型,并且还是最低粒度的数据存储。
2、维度数据仓库可以被分析系统直接访问 。
3、数据集市的概念有逻辑上的区别,在kimball的架构中,数据集市用维度数据仓库的高亮显示的表的子集来表示。
为什么要建数据仓库
简单地说,这取决于公司所处的阶段、所拥有的数据量和预算,等等。
在早期阶段,你可能不需要数据仓库,而是直接使用业务智能 (BI) 工具连接到生产数据库。
如果你仍然不确定数据仓库是否适合你的公司,请考虑以下几点:
首先,你是否需要分析来自不同数据源的数据?
在公司发展的某个阶段,你可能需要将来自不同数据源的数据组合起来,以便做出更好、更明智的业务决策。
例如,如果你是一家餐馆,想要分析订单 / 服务员效率比率 (每周里哪个小时员工最忙和最空闲),就需要将销售数据 (来自 POS 系统) 与员工职责数据 (来自 HR 系统) 结合起来。
对于这些分析,如果数据都位于一个中心位置,就会容易得多。
第二,是否需要将分析数据与事务数据分离?
如前所述,你的事务系统不适合用来进行数据分析。因此,如果你在应用程序中收集了活动日志或其他可能有用的信息,那么将这些数据存储到应用程序的数据库中,并让分析师直接在生产数据库上进行数据分析可能不是一个好主意。
相反,购买一个为复杂查询而设计的数据仓库,并将分析数据保存到数据仓库里,这样会更好。这样,应用程序的性能就不会受到数据分析任务的影响。
第三,原始数据源适合用来查询吗?
例如,绝大多数 BI 工具不能很好地与 NoSQL 数据存储 (如 MongoDB) 搭在一起使用。也就是说,在后端使用 MongoDB 的应用程序需要将数据传输到数据仓库,数据分析人员才能够有效地使用它们。
第四,是否希望提高数据分析的查询性能?
如果事务数据有数十万行,那么创建汇总表可能是一个好主意,它会将数据聚合成容易查询的表单。如果不这样做,查询会非常慢,而且会给数据库带来不必要的负担。
数仓挑战:
https://mp.weixin.qq.com/s/WsQeB1paqsEPZFayWhru-w
解决措施:从统一的数仓架构、规范化的数据建模,数据质量的保障,以及数据资产的管理四个方面来解决
lambda架构痛点:
image.png
基于iceberg的流批一体架构:
网友评论