学习 Spark 2(三):Structured Streaming

Spark SQL 是 Spark 的结构化数据处理模块,Spark Streaming 是 Spark 的流数据处理模块

Structured Streaming ~= Spark SQL + Spark Streaming

Structured Streaming 是构建在 Spark SQL 引擎之上的可扩展且容错的流处理引擎

编程模型

基本概念

输入流数据,相当于输入表。其中,输入流数据中的数据项,相当于新追加的行

在输入表上执行查询,查询结果,相当于结果表

 -----------                ------------
|input table| -- query --> |result table|
 -----------                ------------

理解了👆的处理过程,👇讨论 Structured Streaming 的输出模式:

  • Complete 模式

  • Append 模式

  • Update 模式

Complete 模式

在 Complete 模式下,输出的都是更新的整个结果表

可以理解为输出的是全量数据的处理结果

Append 模式

在 Append 模式下,输出的是自上次触发写入之后结果表中新追加的行

可以理解为输出的是增量数据的处理结果

Update 模式

在 Update 模式下,输出的是自上次触发写入之后结果表中更新的行

可以理解为输出的是全量最新数据的处理结果