今天这一讲,咱们从功能的视角出发,继续来聊一聊 Structured Streaming 流处理引擎都为开发者都提供了哪些特性与能力,让你更灵活地设计并实现流处理应用。
Structured Streaming 怎样坐享其成?
学习过计算模型之后,我们知道,不管是 Batch mode 的多个 Micro-batch、多个作业的执行方式,还是 Continuous mode 下的一个 Long running job,这些作业的执行计划,最终都会交付给 Spark SQL 与 Spark Core 付诸优化与执行。
而这,会带来两个方面的收益。一方面,凡是 Spark SQL 支持的开发能力,不论是丰富的 DataFrame 算子,还是灵活的 SQL 查询,Structured Streaming 引擎都可以拿来即用。基于之前学过的内容,我们可以像处理普通的 DataFrame 那样,对基于流数据构建的 DataFrame 做各式各样的转换与聚合。
另一方面,既然开发入口同为 DataFrame,那么流处理应用同样能够享有 Spark SQL 提供的“性能红利”。在 Spark SQL 学习模块,我们学习过 Catalyst 优化器与 Tungsten,这两个组件会对用户代码做高度优