一篇文章带你快速搞懂数据仓库的流程

时间:2024-03-23 15:59:53

来,我们直接对照这张流程图用大白话讲解:一篇文章带你快速搞懂数据仓库的流程

  1. OLTP层
    用来存放原始数据的数据库,不同的数据可能来自于不同的数据库。比如CRM系统的数据来自于oracle数据库,ERP系统的数据来自于mysql数据库。

    这一层的数据可能是包含不同格式,各种各样的“脏数据”。比如说CRM系统的数据中,性别是用0,1来区分男女,而ERP系统的性别是用M,F来区分。

    为了数据质量过关,数据好用,我们就需要对这些数据进行清洗,清洗就要进入到下一层ETL层。

  2. ETL层
    这一层主要的工作是对数据库中的数据进行提取、转换,然后装载到我们的ODS层。

  3. ODS层
    这一层是对数据进行存储的地方,也可以称为数据缓冲层。因为这一层的数据不会做过多的分析操作,其数据结构基本上是和OLTP层的数据结构保持一致,可以理解为是从OLTP层copy了一份数据过来。

    区别在于,比如说OLTP层来自不同数据库的数据中可能性别的表达形式不一致,经过ETL层之后,就会把性别的数据统一起来,统一用0,1表示或者M,F表示。

  4. EDW层
    当我们把脏数据问题全部清洗完毕后,数据就会录入到EDW层。

    我们常说数据仓库是面向主题、集成、相对稳定、反映历史变化的数据集合。这句话怎么理解呢?

    我们一个一个词拆开来看:
    面向主题的:打个比方,我们现在有一个糖果厂,生产不同水果口味的糖果。生产完的糖果就要经过包装才能进入到仓库,然后按照不同水果口味分门别类(面向主题)的放在仓库不同的位置上。
    对于数据仓库也是一样的理解,按照不同主题数据分别存储。

    集成的:集成的意思就是OLTP的数据都是来自于不同的数据库,把不同数据库里面的数据经过一系列的加工、整理、汇总后统一拿过来。

    相对稳定的:数据仓库就用来做查询操作,做统计分析,不要用来做增删操作(稳定的)。比方说我们糖果厂的糖果都已经打包好了,你不可能时不时去仓库拆开包装来看吧?

    反映历史变化的:意思是数据仓库里面的历史数据都会存放一段时间,出报表的时候方便做同比环比。

  5. DM层
    数据集市其实可以说是数据仓库的一部分,大部分的数据其实都是来自于EDW层。也可以看做是小型的部门级别的数据仓库,根据部门业务的需求,对数据进行定制化。即按照不同的维度和指标进行统计分析(group by、sum等操作)。
    比如说按照地区(维度)去统计员工的收入(指标)情况。

  6. OLAP层
    是数据仓库的应用层,用来支持决策分析,提供直观的查询结果等操作。

  7. 展示
    就是数据可视化的过程,可以是tableau形式展示等。

其实这一整个流程就是一个从后端数据处理到前端展示的过程。