Flink 实时数仓-思考与总结

  • Post author:
  • Post category:其他


1,什么是Flink实时数仓。

大家做离线开发是的时候数据存储在hdfs或者hive,基于此,不管用什么组件,数据源都是hive,然后定时执行脚本,跑离线任务啥的。

实时数仓大家可以理解为数据都存储在kafka,Flink消费kafka的数据然后进行逻辑处理,然后再下发到kafka,这么延迟是秒或者分钟级别的,对于不同的业务效果更好,更实时。

2,为什么要做实时数仓呢?

我的理解是因为业务,大家想想,离线数据处理的都是什么数据,简单总结之就是流量数据,从大量的数据最后得到几个需要的维度的值,而实时数仓效果更快,这是技术的进步,更能提高效率

3,实时数仓的缺点?

缺点可能的话还是资源吧,消耗更多。

与其说是缺点,不如说是难点,痛点。 大概是资料不是很多,坑还需要人来趟。

4,之前我在接触实时数仓的时候,有个想法。

我之前想整合 Nifi + Flink+Druid的,目前都了解了一下之后发现不行。

首先Nifi 使用有局限,没我想象的那么简单和容易上手,Druid就不说了,吃资源大户,类似kylin,而且也是需要时间去设计数据结构,存储等等,难点不是使用。这两者都不是很流行,说白了用的人没那么多,对于公司来讲,成本未知。

5,还是聊聊Flink实时数仓吧。

1)美团实时数仓

平台架构:

案例:流量数仓

使用效果:

实践总结:

传统数仓:

Flink实时数仓:

准实时数仓:

准实时数仓与实时数仓的对比:

实时数仓平台架构:

2)美团:

ODS层:

保证kafka分区数据有序:

DW层的建设:

维度建设:

维度数据使用:

汇总层的建设:

注意点:去重的时候可能会占用过大的资源导致程序死掉,我们可以使用一些算法或者办法,比如布隆过滤器

仓库的质量保证:

Flink sql校验怎么做?

一定建立血缘关系,如果任务或者作业修改了,下游要准确的保持一致,所以需要血缘关系。

数据质量验证:

就是将中间表数据写入hive,通过离线数据的结果统计比对实时数仓的结果是否正确,验证差异。

3)拉链表的意思:


https://blog.csdn.net/saqin6255/article/details/80362248

4)

6,大家可以参考的文章或者视频了解一下



版权声明:本文为qq_31866793原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。