结构化数据流处理的概念

Apache Spark 结构化流式处理是一个近乎实时的处理引擎,它使用常见的 Spark API 提供“恰好一次处理”保证,提供端到端容错。 使用结构化流式处理,可以像基于静态数据表达批处理计算一样基于流式处理数据表达计算。 结构化流式处理引擎以增量方式执行计算,并在流数据抵达时持续更新结果。

有关分步教程,请参阅 运行您的第一个结构化流式处理工作负载的步骤。

从数据流读取

使用结构化流式处理以增量方式引入受支持数据源中的数据。

功能 说明
自动加载程序 随着新数据文件到达云存储,增量式且高效地处理它们。
Delta Lake 表流式读取和写入 使用 Delta Lake 表作为流式处理源和接收器,并提供一次性处理保证。
SQL 和 Spark API 通过SQL和Spark API连接消息总线、队列和企业应用。
微批大小 限制输入速率以保持一致的批大小并防止处理延迟。

写入到数据接收器

配置结构化流式处理如何将数据传送到目标系统。

功能 说明
检查点 存储处理状态以启用容错和一次性传递语义。
输出模式 可以选择追加、更新和完成模式来处理有状态流式查询。
触发器间隔 设置触发器间隔以平衡处理要求的延迟和成本。
结构化流式处理中的实时模式 处理实时工作负载的数据,端到端延迟低至 5 毫秒。

有状态和无状态处理

无状态查询在不保留状态的情况下处理行。 有状态查询维护聚合、联接和删除重复的中间状态。

功能 说明
无状态流式处理查询 优化在不保持中间状态的情况下处理数据的查询。
水印 控制结构化流式处理在有状态操作中等待延迟到达的数据的时间。
有状态流式处理 使用状态运算符来管理聚合、流与流连接及重复数据删除。

监视和管理

跟踪查询性能、应用优化并管理生产结构化流媒体工作负载中的数据访问。

功能 说明
使用 StreamingQueryListener 进行监视 使用 Spark UI 和侦听器 API 跟踪查询进度和性能指标。
使用 Unity 目录进行治理 使用治理和访问控制为流式处理工作负荷配置 Unity Catalog。