业界通用的 五层 数据仓库分层设计:

  • 数据引入层 ODS(Operational Data Store)
  • 明细数据层 DWD(Data Warehouse Detail)
  • 汇总数据层 DWS(Data Warehouse Summary)
  • 应用数据层 ADS(Application Data Service)
  • 公共维度层 DIM(Dimension)

名字看着有点儿绕,英文单词缩写也不是很好记,我们来简单理解一下。

  • ODS 实质就是原始日志。

  • DWD 从原始日志中提取明细数据,提取过程就是把一行日志按照规则切分为多个字段,再对这些字段(值)进行过滤、转换等操作,俗称:ETL。

    从一份或多份原始日志可以提取出一张或多张 明细表

  • DWS 数据分析大多数时候是基于宏观统计数据实现的,不需要使用微观明细数据,可以结合产品和业务的分析需求,把明细表聚合成 汇总表

    聚合可以从 时间维度 两个地方着手:

    • 时间 把每秒的数据按五分钟、小时或者天粒度进行聚合。
    • 维度 把地点的数据按国家、省份、城市或者区域进行聚合。

      从物理角度看,聚合的目的是大幅度减少数据量,聚合的时间粒度越大、维度数目越少,数据量就越小。从逻辑角度看,聚合的目的是公共和复用,是能够尽可能更多地覆盖分析需求,聚合的维度数目越多,数据越通用。选取聚合的维度时,要综合考虑数据量和通用性。

      从一张或多张明细表可以聚合出一张或多张 汇总表

  • ADS 汇总表间接服务于产品和业务需求,讲究的是通用性; 明细表 直接服务于产品和业务需求,讲究的是个性化。一张明细表直接对应着产品和业务的一个或几个相互关联的需求,相对于汇总表,明细表维度数目更少,数据量也更小。

    从一张或多张汇总表可以计算出一张或多张 明细表

  • DIM 相当于数据字典。可以明确给出数仓中有哪些维度,维度名称是什么,维度含义是什么,维度值有哪些等信息,确保分析过程中逻辑认知一致、数据口径统一。

    明细表、汇总表和应用表中的维度数据需要和维度表中的维度数据保持一致。

可以看出,数据仓库的分层本质就是从原始日志 -> 明细表 -> 汇总表 -> 应用表的过程,实际使用时也不必完全拘泥于五层的设计,可以结合业务、数据和系统的具体情况,灵活地添加或删除层次。

results matching ""

    No results matching ""