流批一体的近实时数仓的思考与设计

💡 原文中文,约8200字,阅读约需20分钟。
📝

内容提要

本文探讨了离线、近实时、实时三种数仓在时间维度下的成因和Lambda、Kappa架构在时间维度下的取舍。同时,提出了基于实时数仓的确定性问题,探讨了数仓一体的可行性思考。文章认为,基于离线数仓的思考,结果的确定性是很重要的,同时要保证计算结果同离线数仓的一致性。最终的任务运行方式同时包含三种:实时模式、离线模式、业务模式,分别对应着不同的数据准确性级别。基于 Flink 和数据湖的流批一体近实时数仓设计示例,需要解决如下问题:Flink 任务支持批量计算能力要持续不断的加强,如何使用同一份 Flink SQL,既可以用于批任务调度,又可以用于流任务运行呢,批任务的调度和流任务的计算如何分离,流任务的 Insert into 如何实现主键写入,流批任务的调度依赖。

🎯

关键要点

  • 本文探讨了离线、近实时、实时三种数仓在时间维度下的成因。

  • Lambda和Kappa架构在时间维度下的取舍。

  • 基于实时数仓的确定性问题,强调计算结果与离线数仓的一致性。

  • 实时模式、离线模式、业务模式对应不同的数据准确性级别。

  • Flink和数据湖的流批一体近实时数仓设计示例。

  • 数据的时间旅行与业务对数据的本质要求。

  • 离线数仓的确定性与实时数仓的不确定性分析。

  • Lambda架构与Kappa架构的优缺点比较。

  • 数仓一体的可行性思考,强调结果的确定性和数据的时效性。

  • 流批一体的近实时数仓设计需解决Flink任务的批量计算能力。

  • 如何使用同一份Flink SQL实现批任务调度与流任务运行。

  • 流任务的Insert into如何实现主键写入及调度依赖问题。

➡️

继续阅读