数据仓库

168 阅读2分钟

数据仓库

什么是数据仓库?它帮我们解决了什么问题

数据仓库(Data Warehouse)是用于存储,分析大量数据的系统,它的数据是稳定的、面向主题的历史数据集合。它为企业提供了不同系统之间潜在的价值,以及通过数据来对决策发生改变。它和以往的数据库的区别是,它的数据不被更新,而是以时间维度来存储数据,和以往数据库的数据也是有所区别的,数据仓库中的数据也会通过清洗工作(ETL)来向不同的业务方便提供更便捷的数据。

范式模型和维度模型

1、范式模型

我们在原本系统中设计数据表通常要遵循三范式设计标准,考虑的是OLTP

  1. 列不可再分,也就是字段的原子性
  2. 列的主键关联性须完全依赖于主键,这样则保证了数据不冗余(但在实际开发中,我们可以适当的通过业务需求来使每行数据存在一定的列冗余)
  3. 消除传递依赖,在第二范式的基础上进一步的将冗余数据独立出来(和第二范式一样也能存在一定的冗余)

2、维度模型

维度模型是完全反范式的,它同意将多维度的数据结合为一条数据,方便读取解析。它分为事实表和维度表,事实表用于存放所需要记录的相关数据,而维度表则一般是检索维度中需要关系到的数据,比如说月份、季度、年度等信息,简单说就是维度模型允许冗余用空间换时间,范式模型则是自上而下产生的设计更多考虑的高内聚低耦合易维护和阅读

数据仓库的分层设计

1. ODS层(Operational Data Store操作数据层 也叫做贴源层)

用于将多系统之间的源数据提取出来放置在一起,且保证数据和源数据的格式一致性。

2. DW层(Data Warehouse数据仓库层)

用于将数据提取聚合分析,也就是ETL。DW层也分为了很多子层

2.1 DWD层(Data Warehouse Detail数据仓库明细层)

用于清洗数据,将不同应用之间的数据做去重统一化存储

2.2 DWM层(Data Warehouse Middle数据仓库中间层)

用于将多系统之间的数据聚合存储,方便统计以及使用

2.3 DWS层(Data Warehouse Service数据仓库服务层)

用于将聚合后的数据做统一的分析

3. DM层(Data Mart数据集市层)

基于DW数据,整合汇总成分析某一个主题的报表数据