Freigeben über


Konfigurieren der Batchgröße für strukturiertes Streaming auf Azure Databricks

In diesem Artikel wird erläutert, wie Sie Zulassungssteuerungen verwenden, um eine konsistente Batchgröße für Streamingabfragen beizubehalten.

Zulassungskontrollen begrenzen die Eingaberate für Strukturierte Streaming-Abfragen, was dazu beitragen kann, eine konsistente Batchgröße beizubehalten und zu verhindern, dass große Batches Überläufe verursachen und kaskadierende Mikro-Batch-Verarbeitungsverzögerungen einleiten.

Azure Databricks bietet die gleichen Optionen zum Steuern von Strukturierten Streaming-Batchgrößen für Delta Lake und Auto Loader.

Hinweis

Sie können die Einstellungen für die Zulassungskontrolle ändern, ohne den Prüfpunkt für eine Streamingabfrage zurückzusetzen. Siehe "Wiederherstellen nach Änderungen in einer strukturierten Streamingabfrage".

Das Ändern der Einstellungen für die Zulassungskontrolle, um die Batchgröße zu erhöhen oder zu verringern, hat Auswirkungen auf die Leistung. Um Ihre Workload zu optimieren, müssen Sie möglicherweise Ihre Berechnungskonfigurationen anpassen.

Einschränken der Eingaberate mit maxFilesPerTrigger

Das Festlegen maxFilesPerTrigger (oder cloudFiles.maxFilesPerTrigger für das automatische Laden) gibt eine obere Grenze für die Anzahl der Dateien an, die in jedem Mikrobatch verarbeitet werden. Für Delta Lake und Auto Loader ist der Standardwert 1000. (Beachten Sie, dass diese Option auch in Apache Spark für andere Dateiquellen vorhanden ist, wobei standardmäßig kein Maximalwert vorhanden ist.)

Einschränken der Eingaberate mit maxBytesPerTrigger

Das Festlegen maxBytesPerTrigger (oder cloudFiles.maxBytesPerTrigger für das automatische Laden) legt einen "weichen Max" für die Datenmenge fest, die in jedem Mikrobatch verarbeitet wird. Dies bedeutet, dass ein Batch ungefähr diese Datenmenge verarbeitet und mehr als den Grenzwert verarbeiten kann, um die Streamingabfrage vorwärts zu machen, wenn die kleinste Eingabeeinheit größer als dieser Grenzwert ist. Für diese Einstellung ist keine Standardeinstellung vorhanden.

Wenn Sie z. B. eine Bytezeichenfolge wie 10g angeben, um jede Mikrobatch auf 10 GB Daten zu beschränken, und Sie über Dateien mit jeweils 3 GB verfügen, verarbeitet Azure Databricks 12 GB in einem Mikrobatch.

Festlegen mehrerer Eingaberaten zusammen

Wenn Sie maxBytesPerTrigger in Verbindung mit maxFilesPerTriggerverwenden, verarbeitet der Mikrobatch Daten, bis die untere Grenze von maxFilesPerTrigger oder maxBytesPerTriggererreicht wird.

Einschränken der Eingaberaten für andere strukturierte Streamingquellen

Streamingquellen wie Apache Kafka verfügen jeweils über benutzerdefinierte Eingabebeschränkungen wie maxOffsetsPerTrigger. Weitere Informationen finden Sie unter Standard-Connectors in Lakeflow Connect.