IngestionBatching-Richtlinie
Übersicht
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer
Während des in die Warteschlange eingereihten Aufnahmeprozesses optimiert der Dienst den Durchsatz, indem kleine Eingangsdatenblöcke zusammen vor der Aufnahme batchiert werden. Durch die Batchverarbeitung werden die ressourcen reduziert, die vom in die Warteschlange eingereihten Aufnahmeprozess verbraucht werden, und es ist keine Nachaufnahmeressourcen erforderlich, um die kleinen Datenshards zu optimieren, die von nicht batchierten Erfassungen erzeugt werden.
Der Nachteil bei der Batchverarbeitung vor der Aufnahme ist die erzwungene Verzögerung. Daher wird die End-to-End-Zeit vom Anfordern der Datenaufnahme bis zur Datenaufnahme größer.
Wenn Sie die IngestionBatching
Richtlinie definieren, müssen Sie ein Gleichgewicht zwischen der Optimierung für den Durchsatz und der Zeitverzögerung finden. Diese Richtlinie gilt für die Aufnahme in die Warteschlange. Sie definiert die maximale erzwungene Verzögerung, die beim Zusammenfügen kleiner Blobs zulässig ist. Weitere Informationen zur Verwendung von Batchverarbeitungsrichtlinienbefehlen und zur Optimierung des Durchsatzes finden Sie unter:
- Referenz für Batchverarbeitungsrichtlinienbefehle
- Bewährte Methoden für die Aufnahme – Optimieren des Durchsatzes
Versiegeln einer Charge
Es gibt eine optimale Größe von ca. 1 GB nicht komprimierter Daten für die Massenaufnahme. Die Aufnahme von Blobs mit viel weniger Daten ist suboptimal, sodass der Dienst bei der Aufnahme in die Warteschlange kleine BLOBs zusammen stapelt.
In der folgenden Liste sind die grundlegenden Batchverarbeitungsrichtlinienauslöser aufgeführt, um einen Batch zu versiegeln. Ein Batch wird versiegelt und aufgenommen, wenn die erste Bedingung erfüllt ist:
Size
: Grenzwert für Die Batchgröße wurde erreicht oder überschritten.Count
: Grenzwert für Batchdateinummern erreichtTime
: Die Batchverarbeitungszeit ist abgelaufen.
Die IngestionBatching
Richtlinie kann für Datenbanken oder Tabellen festgelegt werden. Standardwerte sind wie folgt: 5 Minuten maximale Verzögerungszeit, 500 Elemente, Gesamtgröße von 1 GB.
Wichtig
Die Auswirkungen der Festlegung dieser Politik auf sehr kleine Werte sind eine Erhöhung der COGS (Kosten für verkaufte Waren) und eine geringere Leistung. Darüber hinaus kann die Verringerung der Batchverarbeitungsrichtlinienwerte tatsächlich zu einer erhöhten End-to-End-Erfassungslatenz führen, da der Aufwand für die Verwaltung mehrerer Aufnahmeprozesse parallel ist.
Die folgende Liste zeigt Bedingungen zum Versiegeln von Batches im Zusammenhang mit der Aufnahme einzelner Blobs. Ein Batch wird versiegelt und aufgenommen, wenn die Bedingungen erfüllt sind:
SingleBlob_FlushImmediately
: Aufnehmen eines einzelnen Blobs, da "FlushImmediately" festgelegt wurdeSingleBlob_IngestIfNotExists
: Aufnehmen eines einzelnen Blobs, da "IngestIfNotExists" festgelegt wurdeSingleBlob_IngestByTag
: Aufnehmen eines einzelnen Blobs, da "Erfassung durch" festgelegt wurdeSingleBlob_SizeUnknown
: Aufnehmen eines einzelnen Blobs, da die BLOB-Größe unbekannt ist
Wenn die SystemFlush
Bedingung festgelegt ist, wird ein Batch versiegelt, wenn eine Systemspülung ausgelöst wird. Mit dem SystemFlush
Parametersatz löscht das System die Daten, z. B. aufgrund der Datenbankskalierung oder der internen Zurücksetzung von Systemkomponenten.
Standardwerte und Grenzwerte
type | Eigenschaft | Standard | Einstellung für niedrige Latenz | Minimalwert | Maximalwert |
---|---|---|---|---|---|
Artikelanzahl | MaximumNumberOfItems | 500 | 500 | 1 | 25,000 |
Datengröße (MB) | MaximumRawDataSizeMB | 1024 | 1024 | 100 | 4096 |
Zeit (TimeSpan) | MaximumBatchingTimeSpan | 00:05:00 | 00:00:20 - 00:00:30 | 00:00:10 | 00:30:00 |
Die effektivste Möglichkeit zum Steuern der End-to-End-Latenz mithilfe der Batchverarbeitungsrichtlinie für die Aufnahme besteht darin, die Zeitgrenze auf Tabellen- oder Datenbankebene entsprechend der höheren Latenzanforderungen zu ändern. Eine Richtlinie auf Datenbankebene wirkt sich auf alle Tabellen in dieser Datenbank aus, für die die Richtlinie auf Tabellenebene nicht definiert ist, und alle neu erstellten Tabellen.
Wichtig
Wenn Sie die Zeitgrenze für die Batchverarbeitungsrichtlinie für Ingestion bei Tabellen mit geringem Ausgang zu niedrig festlegen, können zusätzliche Rechen- und Speicheraufgaben auftreten, während die Datenbank versucht, die neu erstellten Datenshards zu optimieren. Weitere Informationen zu Datenshards finden Sie unter "Extents".
Batchdatengröße
Die Datengröße der Batchrichtlinie wird für nicht komprimierte Daten festgelegt. Für Parkett-, AVRO- und ORC-Dateien wird eine Schätzung basierend auf der Dateigröße berechnet. Bei komprimierten Daten wird die nicht komprimierte Datengröße wie folgt in absteigender Reihenfolge der Genauigkeit ausgewertet:
- Wenn die nicht komprimierte Größe in den Aufnahmequellenoptionen bereitgestellt wird, wird dieser Wert verwendet.
- Beim Aufnehmen lokaler Dateien mithilfe von SDKs werden ZIP-Archive und Gzip-Datenströme überprüft, um ihre Rohgröße zu bewerten.
- Wenn vorherige Optionen keine Datengröße bereitstellen, wird ein Faktor auf die komprimierte Datengröße angewendet, um die nicht komprimierte Datengröße zu schätzen.
Batchlatenz
Latenzen können aus vielen Ursachen resultieren, die mithilfe von Batchrichtlinieneinstellungen behoben werden können.
Ursache | Lösung |
---|---|
Die Datenlatenz entspricht der time Einstellung, mit zu wenig Daten, um den size Grenzwert zu erreichen.count |
Reduzieren des Grenzwerts time |
Ineffiziente Batchverarbeitung aufgrund einer großen Anzahl sehr kleiner Dateien | Vergrößern Sie die Größe der Quelldateien. Wenn Sie Kafka Sink verwenden, konfigurieren Sie sie, um Daten in ca. 100 KB Blöcken oder höher zu senden. Wenn Sie viele kleine Dateien haben, erhöhen Sie die count (bis zu 2000) in der Datenbank- oder Tabellenaufnahmerichtlinie. |
Batchverarbeitung einer großen Menge nicht komprimierter Daten | Dies ist bei der Aufnahme von Parkettdateien üblich. size Verringern Sie die Richtlinie für die Tabellen- oder Datenbankbatchverarbeitung inkrementell auf 250 MB, und überprüfen Sie nach Verbesserung. |
Backlog, da die Datenbank skaliert ist | Akzeptieren Sie alle Azure-Ratgebervorschläge, um Ihre Datenbank zu skalieren oder zu skalieren. Alternativ können Sie die Datenbank manuell skalieren, um festzustellen, ob der Backlog geschlossen ist. Wenn diese Optionen nicht funktionieren, wenden Sie sich an den Support, um Hilfe zu erhalten. |