gracejpw1117

2020-07-08   阅读量: 2068

大数据 数仓 实时数仓

实时数仓和离线数仓数据架构的联系和区别

扫码加入数据分析学习群

从数据架构图来看,实时数仓的数据架构会跟离线数仓有很多类似的地方。

比如分层结构;比如说 ODS 、DWD、DWS、ADS,它们命名的模式可能都是一样的。尽管如此,实时数仓和离线数仓还是有很多的区别的。

跟离线数仓主要不一样的地方,就是实时数仓的层次更少一些。

DWD层

以我们目前建设离线数仓的经验来看,数仓的第二层远远不止这么简单,一般都会有一些轻度汇总层这样的概念,其实第二层会包含很多层。

ADS层

另外一个就是应用层,以往建设数仓的时候,应用层其实是在仓库内部的。在应用层建设好后,会建同步任务,把数据同步到应用系统的数据库里。

在实时数仓里面,所谓 APP 层的应用表,实际上就已经在应用系统的数据库里了。上图,虽然画了 APP 层,但它其实并不算是数仓里的表,这些数据本质上已经存过去了。

为什么主题层次要少一些?

是因为在实时处理数据的时候,每建一个层次,数据必然会产生一定的延迟。

为什么汇总层也会尽量少建?

是因为在汇总统计的时候,往往为了容忍一部分数据的延迟,可能会人为的制造一些延迟来保证数据的准确。

举例,统计事件中的数据时,可能会等到 10:00:05 或者 10:00:10再统计,确保 10:00 前的数据已经全部接受到位了,再进行统计。所以,汇总层的层次太多的话,就会更大的加重人为造成的数据延迟。

建议尽量减少层次,特别是汇总层一定要减少,最好不要超过两层。明细层可能多一点层次还好,会有这种系统明细的设计概念。

第二个比较大的不同点就是在于数据源的存储。

在建设离线数仓的时候,可能整个数仓都全部是建立在 Hive 表上,都是跑在 Hadoop 上。

但是,在建设实时数仓的时候,同一份表,我们甚至可能会使用不同的方式进行存储。比如常见的情况下,可能绝大多数的明细数据或者汇总数据都会存在 Kafka 里面,但是像维度数据,可能会存在像 Tair 或者 HBase 这样的 kv 存储的系统中,实际上可能汇总数据也会存进去


21.2509 3 2 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子