当设计一款产品或者平台的时候,可以划分为两层,即底层实现和上层抽象。
实时数仓和传统数仓的对比主要可以从四个方面考虑:
- 第一个是分层方式,离线数仓为了考虑到效率问题,一般会采取空间换时间的方式,层级划分会比较多;则实时数仓考虑到实时性问题,一般分层会比较少,另外也减少了中间流程出错的可能性。
- 第二个是事实数据存储方面,离线数仓会基于 HDFS,实时数仓则会基于消息队列(如 Kafka)。
- 第三个是维度数据存储,实时数仓会将数据放在 KV 存储上面。
- 第四个是数据加工过程,离线数仓一般以 Hive、Spark 等批处理为主,而实时数仓则是基于实时计算引擎如 Storm、Flink 等,以流处理为主。
实时数仓主要有两个要点。首先是分层设计上,一般也是参考离线数仓的设计,通常会分为ODS操作数据层、DWD明细层、DWS汇总层以及ADS应用层,可能还会分出一层DIM维度数据层。另外分层设计上也有不同的思路,比如可以将DWS和ADS归为DM数据集市层
reference: