1 structured streaming是可扩展,容错性强的流处理引擎,建立在spark sql engine上
2 spark sql engine在数据流不断到达时,会持续地增长式地运行数据流,并更新最终结果,数据流也像静态数据计算一样通过optimizer sql engine优化
3 使用dataset, dataframe api做streaming aggregations, event-time windows, stream-to-batch joins
4 通过checkpointing 和write ahead logs,系统可以确保end to end exactly -once fault-tolerance(端对端精准一次容错性)
1-4点简单来讲,用户不需要关心流本身是如何实现的,可以像处理静态数据一样处理流数据,structured streaming提供 fast, easy, scalable, fault-tolerant, end-to-end exactly once的流处理
5 在structured streaming内部,默认使用micro-batch processing engine(微批次处理引擎),micro-batch processing engine处理数据流时,将数据流当作a series of small batch jobs,从而达到end-to-end延迟只有100ms,并且实现exactly-once fault-tolerance guarantees
6 Spark2.3引入了新的低延迟处理模式,叫做continuous processing,完成了end-to-end延迟只有1ms,并且实现at-least-once guarantees. 不需要更改数据操作,只需要基于用户应用的需求更改mode就可以了
官方guide中,会教学programming model和api,使用默认的micro-batch processing model解释概念, 之后讨论continuous processing model.