如何构建批流一体数据融合平台的一致性语义保证?( 五 )

为什么我们认为 Lambda 架构是批流一体化的必然要求?这好像看起来是矛盾的(与之相对,还有一种架构叫 Kappa 架构,即用一个流式处理引擎解决所有问题)。

如何构建批流一体数据融合平台的一致性语义保证?

实际上,这在很大程度来自于现实中用户的需求。DataPipeline 在刚刚成立时只有一种模式,只支持实时流同步,在我们看来这是未来的一种趋势。

但后来发现,很多客户实际上有批量同步的需求。比如,银行在每天晚上可能会有一些月结、日结,证券公司也有类似的结算服务。基于一些历史原因,或出于对性能、数据库配置的考虑,可能有的数据库本身不能开 change log。所以实际上并不是所有情况下都能从源端获取实时的流数据。

考虑到上述问题,我们认为一个产品在支撑数据融合过程中,必须能同时支撑批量和流式两种处理模式,且在产品里面出于性能和稳定性考虑提供不同的处理策略,这才是一个相对来说比较合理的基础架构。

数据融合的 Ad-Hoc 模式

推荐阅读