Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Auf dieser Seite wird erläutert, wie Sie die Zulassungskontrollen 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.
Warnung
Wenn ein Mikrobatch geplant ist, wenn ein Datenstrom beendet wird, wird jede Änderung der Zulassungssteuerung erst wirksam, nachdem die geplante Mikrobatch abgeschlossen wurde. Wenn beispielsweise ein Datenstrom nach einer fehlgeschlagenen Transaktion beendet wird, kann es notwendig sein, den Prüfpunkt zu löschen, um den Datenstrom zu zwingen, die Transaktion mit den neuen Zulassungskontrollen erneut zu verarbeiten. Dieses Verhalten tritt auf, da strukturiertes Streaming idempotent ist und Mikrobatches dieselben Daten für wiederholungsausführungen enthalten müssen. Siehe Strukturierte Streamingsemantik.
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.