Warum erstellt Kinesis Data Firehose so viele kleine Dateien in S3?

Lesedauer: 3 Minute
0

Ich versuche, Daten von Amazon Kinesis Data Firehose an Amazon Simple Storage Service (Amazon S3) zu übertragen. Mir ist jedoch aufgefallen, dass Kinesis Data Firehose viele kleine Dateien in meinem Amazon S3-Bucket erstellt. Warum passiert das?

Kurzbeschreibung

Kinesis Data Firehose liefert aus den folgenden Gründen kleinere Datensätze als angegeben (in der BufferingHints API):

  • Komprimierung ist aktiviert.
  • Der Lieferstrom von Kinesis Data Firehose wurde skaliert.
  • Amazon Kinesis Data Streams ist als Datenquelle aufgeführt.

Lösung

Komprimierung ist aktiviert

Wenn die Komprimierung in Ihrem Kinesis Data Firehose-Lieferstream aktiviert ist, werden beide BufferingHints-Parameter vor der Komprimierung angewendet. Überprüfen Sie zur Bestätigung die Parameter SizeInMBS und IntervalInSeconds.

Nachdem jeder Stapel von Datensätzen gepuffert wurde, werden die Parameter angewendet. Wenn die Datensätze gepuffert und komprimiert werden, werden kleinere Dateien in Amazon S3 erstellt.

Der Lieferstrom von Kinesis Data Firehose wurde skaliert

Wenn eine Erhöhung des Limits angefordert wurde oder Kinesis Data Firehose automatisch skaliert hat, kann der Data Firehose-Lieferstream skaliert werden. Standardmäßig skaliert Kinesis Data Firehose die Lieferströme automatisch bis zu einem bestimmten Limit. Das automatische Skalierungsverhalten von Amazon Kinesis reduziert die Wahrscheinlichkeit einer Drosselung, ohne dass eine Erhöhung des Limits erforderlich ist.

Wenn der Lieferstream von Kinesis Data Firehose skaliert wird, kann dies Auswirkungen auf die Pufferungshinweise von Data Firehose haben.

Hinweis: Die BufferSize wird festgelegt, wenn Sie Ihren Kinesis Data Firehose konfigurieren.

Innerhalb des Kinesis Data Firehose-Lieferstroms gibt es auch eine proportionale Anzahl paralleler Pufferungen, bei denen Daten aus all diesen Puffern gleichzeitig übertragen werden. Beispielsweise kann Kinesis Data Firehose die Daten zwischenspeichern und eine einzelne Datei auf der Grundlage der Puffergrößenbeschränkung erstellen. Wenn Kinesis Data Firehose auf das Doppelte der aktuellen Durchsatzgrenze skaliert, erstellen zwei separate Kanäle die Dateien innerhalb desselben Zeitintervalls. Wenn Kinesis Data Firehose bis zu viermal skaliert, gibt es vier verschiedene Kanäle, die im gleichen Zeitintervall vier Dateien in S3 erstellen.

Hinweis: Die Anzahl der intern erstellten Kanäle hängt von Kinesis Data Firehose ab. Im obigen Beispiel wurden vier Kanäle erstellt.

Stellen Sie sicher, dass der Kinesis Data Firehose-Lieferstream das Standardlimit nicht überschritten hat. Um das aktuelle Limit Ihres Kinesis Data Firehose-Lieferstreams einzusehen, überprüfen Sie die folgenden Amazon CloudWatch-Metriken:

  • BytesPerSecondLimit
  • RecordsPerSecondLimit
  • PutRequestsPerSecondLimit

Wenn die Werte dieser Metriken von den standardmäßigen Kontingentgrenzwerten abweichen, bedeutet dies, dass der Lieferstream von Kinesis Data Firehose skaliert wurde.

Kinesis Data Stream ist als Datenquelle aufgeführt

Wenn ein Kinesis Data Stream als Datenquelle von Kinesis Data Firehose aufgeführt ist, skaliert Kinesis Data Firehose intern. Standardmäßig versucht Kinesis Data Firehose, die Volumenkapazität des Kinesis Data Stream zu erreichen. Diese Skalierung führt zu einer Änderung der Puffergröße und kann zur Lieferung kleinerer Datensätze führen.

Hinweis: Optionen für Pufferhinweise werden als Hinweise behandelt. Daher kann Kinesis Data Firehose sich dafür entscheiden, unterschiedliche Werte zu verwenden, um die Pufferung zu optimieren.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren