Freigeben über


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:

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 erreicht
  • Time: 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 wurde
  • SingleBlob_IngestIfNotExists: Aufnehmen eines einzelnen Blobs, da "IngestIfNotExists" festgelegt wurde
  • SingleBlob_IngestByTag: Aufnehmen eines einzelnen Blobs, da "Erfassung durch" festgelegt wurde
  • SingleBlob_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:

  1. Wenn die nicht komprimierte Größe in den Aufnahmequellenoptionen bereitgestellt wird, wird dieser Wert verwendet.
  2. Beim Aufnehmen lokaler Dateien mithilfe von SDKs werden ZIP-Archive und Gzip-Datenströme überprüft, um ihre Rohgröße zu bewerten.
  3. 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.