共用方式為


優化無狀態串流查詢

本頁說明 Databricks Runtime 18.0 及以上版本中無狀態串流查詢可用的優化功能。

無狀態結構化串流查詢處理資料時不維持中間狀態。 這些查詢不使用有狀態運算子,例如串流聚合、dropDuplicates,或串流間的連接。 例如使用串流-靜態連接、MERGE INTO Delta 表格,以及其他僅追蹤從來源到目的地已處理資料列的操作。

自適應查詢執行與自動優化洗牌

Azure Databricks 支援無狀態串流查詢的自適應查詢執行(AQE)和自動優化重新分配(AOS)。 這些功能有助於優化使用串流靜態連接、 MERGE INTO Delta 表格及類似操作的串流工作負載。

若要啟用無狀態串流查詢的 AQE,請將以下設定設為 true。 預設情況下已啟用:

spark.sql.adaptive.streaming.stateless.enabled true

要啟用無狀態串流查詢的 AOS,請啟用 AQE 並設定以下設定:

spark.sql.shuffle.partitions auto

在查詢重新啟動時更改洗牌分割區

無狀態串流查詢支援在重新啟動查詢時更改洗牌分割區的數量。 這讓你能調整平行度以適應不同的輸入音量。

此功能對於歷史回填情境特別有用。 例如,你可以用較高的平行度處理歷史回填,然後在即時輸入時減少平行性。

要更改洗牌分割區的數量,請將以下設定設為你想要的值,然後重新啟動查詢:

spark.sql.shuffle.partitions <number>