基于 Flink 的实时数仓平台

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

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

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

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

通过调研,结合目前的业务,获得以下流程图:
https://c.runoob.com/more/shapefly-diagram/作图
从上图能够看出流程仍是很清晰的,第一个Kinesis(相似kafka)至关于数仓中的ODS层,第2、三个kinesis至关于DWD,DWS层,最后的报表分析、用户画像那些至关于ADS层。咱们将明细层持久化到AWS的S3(相似HDFS)上,方便后续基于Hive或者Presto交互查询,固然,还能够基于明细层作一个离线数仓 。svg

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

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