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