共用方式為


在 Azure Databricks 上設定結構化串流批次大小

限制結構化串流查詢的輸入速率有助於維持一致的批次大小,並防止大型批次導致溢出和串連微批處理延遲。

Azure Databricks 提供相同的選項來控制 Delta Lake 和自動載入器的結構串流批次大小。

Limit 輸入速率與 maxFilesPerTrigger 相關

設定 maxFilesPerTrigger(或自動載入器 cloudFiles.maxFilesPerTrigger)會指定每個微批次中處理之檔案數目的上限。 針對 Delta Lake 和自動載入器,預設值為 1000。 (請注意,此選項在 Apache Spark 針對其他檔案來源時也存在;where 預設沒有最大值。)

使用 maxBytesPerTrigger Limit 輸入速率

設定 maxBytesPerTrigger(或自動載入器 cloudFiles.maxBytesPerTrigger)會為每個微批次中處理的數據量設定「軟最大值」。 這表示批次會處理大約這個數據量,並且在有需要的情況下可能會處理多於 limit 的數據量,以便當最小輸入單位大於 limit的時候,讓串流查詢能夠向前推進。 此設定沒有預設值。

例如,如果您指定一個位元組字串範圍,例如 10g 到 limit,並將每個微批作業設為 10 GB 的數據,而您持有每個 3 GB 的檔案,則 Azure Databricks 在一個微批作業中將處理 12 GB 的數據。

將多個輸入速率一起設定

如果您使用 maxBytesPerTrigger 搭配 maxFilesPerTrigger,則微批次會處理數據,直到達到 maxFilesPerTriggermaxBytesPerTrigger中較低的 limit 為止。

限制其他結構化串流來源的輸入速率

Apache Kafka 等串流來源都有自訂輸入限制,例如 maxOffsetsPerTrigger。 如需詳細資訊,請參閱 設定串流資料來源