1.前言
本文主要是分享目前博主理解的流批一体产生的背景,想解决的问题,以及后续可能实现的思路,并以几个案例进行介绍。抛砖引玉,让大家不止停留在做流批一体这件事,而是能更深入思考背后的原因。
2.背景
在介绍流批一体之前,首先看看目前流和批领域常用的引擎:
-
批任务:常用 Hive、Spark。
-
流任务:常用 Flink。Spark Streaming 与 Storm 使用率目前在流式场景会小于 Flink。
3.什么问题导致产生了流批一体的概念呢?
-
一个前提:在生产场景中,当同一个口径的指标分别用流任务产出了实时数据,用批任务产出了离线数据,才会去考虑是否需要做流批一体。如果一个指标只需要产出离线,何谈流批一体呢?
-
一个角度:博主认为,流批一体更应该站在流的角度思考,去将流任务产出的结果在批领域(或者以批数据的形式)进行复用,而不仅仅是在引擎侧面,API 接口层面的统一。这点思考与下图阿里(From FFA 2020)所说的问题的观点类似,博主理解实时复用在离线领域可能是对于阿里列举的问题的一个抽象。因为如果能够复用的话,下图中的三个问题也就不存在了!
-
解决的问题:在上述前提和思考角度的基础上,博