年1月9日,StarRocks亮相FlinkForwardAsia大会开源解决方案专场,StarRocks解决方案架构师谢寅做了题为“双剑合璧:Flink+StarRocks构建实时数仓解决方案”的主题演讲。本文以主讲嘉宾从技术方案的角度,为社区的小伙伴带来最全、最详细的文字版实录回顾!
本文从以下5个方面介绍:
第一部分,实时数仓技术的发展趋势和技术挑战,以及为什么Flink+StarRocks能够提供端到端的极速实时数仓体验。
第二部分,介绍什么是StarRocks,它有哪些技术特点,擅长的场景是什么,以及为什么作为OLAP层的极速分析引擎,它能够很好与Flink技术进行整合。
第三部分,重点介绍联合Flink和StarRocks两大技术栈构建实时数仓的方法论。
第四部分,介绍一些利用Flink和StarRocks构建实时数仓的最佳实践案例。
第五部分,展望了StarRocks在实时数仓方向以及Flink社区贡献等方面的后续规划。
1.实时数仓概述
随着各行各业对数据越来越重视,实时计算技术也在不断的演进。从时效性上来讲,对于小时级或者分钟级的计算已经不能满足客户业务的需要,需求逐渐从时窗驱动,升级到事件驱动,甚至每产生一条数据,都想尽快看到数据。ETL过程也从离线或者微批的ETL,变为Flink擅长的实时流式处理。
数据源上,早先只能支持单一的数据源,整体的数据表现力较差。而当下,人们不仅希望能对单一数据流进行分析计算,还希望能联合多个数据源进行多流计算,为此不惜想尽一切办法,来让数据的表现力更加丰富。
从工程效率的角度上看,技术团队也逐渐意识到,工程代码开发的成本高企不下,更希望能构建自己的平台化IDE工具,让业务人员能基于其上直接进行FlinkSQL的开发。在这些演进的过程也逐渐浮现出一些技术难点亟待解决,比如:
·乱序数据怎么更好的处理?
·通过Watermark之类的手段,是让过去的数据随即失效,还是希望所有的明细数据都能入库?
·多流Join到底应该怎么做合适?
·维表是一次性加载进来,还是放到外存储做热查询,除此之外还有没有其他的技术选择?
·数据处理作业一旦重启,怎么保证在恢复之后还能做到不丢不重的续接消费?
·怎么才能提高整体的业务开发效率,保证业务上线时没有业务中断,更优雅快捷的进行业务逻辑迭代?
在此之外,还有一件事也是业务人员或平台架构师最