基于 Flink 的实时数仓平台

我们组目前负责部门的大数据平台,既搭建平台,也是数据开发,还是业务开发。当前数据链路大概如下:
埋点数据,日志 -》kinesis -》s3 -》presto -》mysql -》报表。还有机器学习等。

这些全是依赖aws提供的服务来构建的。为了不影响后续的开发,需要从新梳理流程,优化流程。

经过分析,我们目前主要是统计分析性质的,使用presto、flink处理数据,然后汇总到mysql上。从这里可以看出,我们有离线数据处理,也有实时或者说准实时数据处理,另外,有机器学习相关的东西(用户画像、行为分析方面)。

既然我们有离线、实时数据处理,还用到flink。而且flink是一个强大的流计算引擎,重点是Flink 提供了流批一体的方案,支持SQL,那我们就围绕flink搭建一个数据平台。

经过调研,结合目前的业务,得到如下流程图:
基于 Flink 的实时数仓平台_第1张图片
从上图可以看出流程还是很清晰的,第一个Kinesis(类似kafka)相当于数仓中的ODS层,第二、三个kinesis相当于DWD,DWS层,最后的报表分析、用户画像那些相当于ADS层。我们将明细层持久化到AWS的S3(类似HDFS)上,方便后续基于Hive或者Presto交互查询,当然,还可以基于明细层做一个离线数仓 。

Flink支持SQL,能用SQL去处理,就尽量使用SQL表达式去处理。

接下来搭建一个测试环境,按照这个图搭建一个大数据平台。

你可能感兴趣的:(flink)