本页介绍 Databricks Runtime 18.0 及更高版本中可用于无状态流式处理查询的优化功能。
无状态结构化流式处理查询无需维护中间状态即可处理数据。 这些查询不使用有状态运算符,例如流式聚合、dropDuplicates,或流与流的联接。 示例包括使用流静态连接的查询、MERGE INTO 与 Delta Lake 表的连接,以及仅跟踪从源到汇已处理行数的其他操作。
自适应查询执行和自动优化洗牌
Azure Databricks 支持无状态流式查询的自适应查询执行 (AQE) 和自动优化洗牌 (AOS)。 这些功能有助于优化使用流静态连接 MERGE INTO 与 Delta Lake 表以及类似操作的流式工作负载。
若要为无状态流式处理查询启用 AQE,请将以下配置设置为 true。 默认情况下启用此项:
spark.sql.adaptive.streaming.stateless.enabled true
若要为无状态流式处理查询启用 AOS,请启用 AQE 并设置以下配置:
spark.sql.shuffle.partitions auto
在查询重启期间更改洗牌分区
无状态流式查询支持在重启查询时更改洗牌分区的数量。 这样,你可以调整并行度以适应不同的输入量。
此功能对于历史回填方案特别有用。 例如,可以使用更高的并行度处理历史回填,然后减少实时输入的并行度。
若要更改随机分区数,请将以下配置设置为所需值并重启查询:
spark.sql.shuffle.partitions <number>