数据仓库定义
数据仓库是一个面向主题的(SubjectOriented)、集成的(Integrate)、不可更新的(Non-Volatile)、随时间变化的(TimeVarian)数据集合,用户支持管理决策。
- 面向主题:所有数据都围绕某一主题组织。
- 数据集成:数据来源于多个数据源的集成。
- 随时间变化:定期接收新的集成数据。
- 不可更新:保存的数据是一些列的快照。不允许被修改。
建设数据仓库的原因
- 将多个数据源集成到单一数据存储,因此可以使用单一数据查询引擎展示数据。
- 维护历史数据。
- 通过提供一致的编码和描述,减少或修正坏数据问题,提高数据质量。
- 提供所有数据的单一通用数据模型,而不用关心数据源。
- 重构数据,使数据对业务用户更有意义。
- 向复杂查询交付优秀的查询性能,同时不影响操作型系统。
- 开发决策性查询更简单。
数据仓库和数据库
数据仓库和数据集市
关系模型三范式
- 第一范式(1NF):列的原子性。即每一列都是不可拆分的最小单元。
- 第二范式(2NF):一行数据只做一件事。只要列中出现数据重复,就要把表拆分。
- 第三范式(3NF):每一列都要与主键直接相关,而不是间接相关。一张表只能有另一张表的ID,而不能有其他信息。
关系模型优劣
- 优势:没有数据冗余、数据加载更快、保证数据一致性。
- 劣势:不能直接用于分析决策、开发成本高且周期长、不适合快速迭代。
维度模型-星型模型
- 事实表:记录特定时间的数字化考量、一般由数字值和指向维度表的外键组成、低粒度,记录原始的操作型事件。
- 维度表:对事实数据属性的描述、记录通常比事实表少、记录包含大量用于描述事实数据的属性字段。
维度模型更多信息:https://blog.csdn.net/ccstargazing/article/details/106480393
维度模型-雪花模型
雪花模型就是将星型模式中的维度表进行规范化处理。具体做法是把低基数(count distinct)的属性从维度表中移除并形成单独的表。
雪花模式中,一个维度被规范化成多个表的关联,而在星型模式中,每个维度由一个单一的维度表所表示。
维度模型对比
模型总结
- 关系模型:站在企业角度进行面向主题的抽象,而不是针对某个具体业务流程,更多的是面向数据的整合和一致性治理。
- 维度模型:以分析决策的需求为出发点构建模型,有较好的大规模查询性能,更直接面向业务。