大数据平台技术笔记

数仓分层

2022-02-25  本文已影响0人  OkGogogooo

  数仓分层的理论不仅是一种数据仓库的建设思想,对大数据的统计分析过程设计同样具有指导意义。
  数仓分层的理论有很多,没有统一的标准,关键是能与自己的业务场景契合。下面所描述的数据分层理论是在现有理论基础上,结合在数据工厂的数据开发经验总结的分层方法。严格的说它不是数仓的分层,而是数据开发过程的分层。

  1. 数据引入层(ODS,Operation Data Store)。构建这一层一般是离线分析的第一步,使用离线同步或实时同步节点,将源系统的某个表同步到数据工厂。这期间不对数据做任何处理,表结构和数据类型上尽可能与源端保持一致。这主要是因为在数据开发过程中,当对最后的统计结果或某些数据处理结果有疑义时,需要倒查流程,反向追溯分析问题。因为数据在通常情况下是不完美的,如果在构建数据引入层过程进行复杂数据过滤、类型转换等处理,很可能会丢失一部分意料之外的特殊数据,造成统计结果和用户预计的产生偏差。追溯问题时,将不得跨出数据工厂,到源端去分析最原始的数据,而在源端分析数据肯定不如直接在数据工厂中分析数据方便。所以这也是要使得构建数据引入层逻辑尽可能简单,保持表结构、类型不变的原因,使得大部分问题追溯分析在数据工厂内就能完成。
  2. 公共数据层(CDM,Common Data Model)。它存储的是公共基础数据,但并不是每一个数据开发流程都会涉及。在一个大的数据分析项目中,它会包含很多的解决方案和流程,在不考虑公共数据层的情况下,会发现有一些表总是需要发生连接、进行相同的过滤、添加某些字段、应用相同的数据字段处理逻辑。这时我们就需要考虑设计公共数据宽表,将处理过程合并成公共流程,供其它流程依赖并使用其构建的表。
  3. 明细数据层(DWD,Data Warehouse Detail)。在通常的理论中,这一层会位于维度层之后。但在我们开发实践的大部分场景下,选择将它和维度层合并,去掉维度层,代之以统计周期层。具体原因和我们的业务场景和统计技术相关,详见“数据工厂开发经验总结”。在此需要特别说明,在一个完整的数据开发过程中,可以多次出现构建明细数据层的过程,汇总层和明细层也不是绝对的,因为有的汇总过程并不是一步就能完成的,而需要阶梯式分步汇总,前一步的汇总会是下一步的明细。
  4. 汇总周期层(SPD,Summary Period Detail)。这一层是在明细的数据层的基础上,抽取每次执行计算所涉及的统计周期内的数据,附加上表示统计周期相关的字段。例如每天的计算通常会涉及业务日期(未指定时是昨天)那天的日统计、月度统计和年度统计。
  5. 汇总层(DWS,Data Warehouse Summary)。这一层存储的是基于指标/维度需求构建出的汇总结果数据。
  6. 应用数据层(ADS,Application Data Store)。这一层是基于汇总层的数据,根据应用的个性化展示需要构建出的数据层。在有数据服务的情形下,这一层可以用“汇总层+数据服务API”的形式替代。
上一篇下一篇

猜你喜欢

热点阅读