分享方式:


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

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

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

使用 maxFilesPerTrigger 限制輸入速率

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

使用 maxBytesPerTrigger 限制輸入速率

設定 maxBytesPerTrigger [或 cloudFiles.maxBytesPerTrigger 自動載入器] 會針對每個微批次中處理的資料量設定「軟最大值」。 這表示批次會處理大約這個資料量,而且可能會處理超過限制,以便在最小輸入單位大於此限制的情況下,讓串流查詢向前移動。 此設定沒有預設值。

例如,如果您指定位元組字串,例如 10g 將每個微批次限制為 10 GB 的資料,而且您有每個 3 GB 的檔案,Azure Databricks 會在 microbatch 中處理 12 GB。

將多個輸入速率設定在一起

如果您搭配 maxFilesPerTrigger 使用 maxBytesPerTrigger ,微批次會處理資料,直到達到 或 maxBytesPerTriggermaxFilesPerTrigger 下限為止。

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

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