Perché Firehose crea una serie di piccoli file in Amazon S3?

3 minuti di lettura
0

Quando invio dati da Amazon Data Firehose ad Amazon Simple Storage Service (Amazon S3), Firehose crea piccoli file nel mio bucket S3.

Breve descrizione

Firehose distribuisce record più piccoli di quelli specificati dall'API BufferingHints per i seguenti motivi:

  • Hai attivato la compressione.
  • Il flusso di distribuzione di Firehose è aumentato.
  • Hai indicato il flusso di dati Amazon Kinesis come origine dati.

Risoluzione

Hai attivato la compressione

Se attivi la compressione per il flusso di distribuzione di Firehose, Firehose applica i parametri SizeInMBs e IntervalInSeconds dell'API BufferingHints prima della compressione.

Dopo ogni batch di buffer di record, Firehose applica i parametri. Quindi Firehose comprime i record di dati e crea piccoli file in Amazon S3.

Il flusso di distribuzione di Firehose è aumentato

Se richiedi un aumento della quota o Firehose scala automaticamente, anche il flusso di distribuzione di Firehose scala. Per impostazione predefinita, Firehose scala automaticamente i flussi di distribuzione fino a una determinata quota. Questo comportamento di dimensionamento automatico riduce la limitazione (della larghezza di banda della rete) senza aumentare la quota.

Quando i flussi di distribuzione di Firehose scalano, l'API BufferingHints potrebbe risentirne.

Nota: quando configuri Firehose, puoi impostare la dimensione del buffer.

All'interno del flusso di distribuzione di Firehose, Firehose memorizza i dati in canali paralleli e li distribuisce contemporaneamente. Ad esempio, Firehose memorizza i dati nel buffer e crea un singolo file in base alla quota di dimensione del buffer. Se Firehose scala raggiungendo il doppio della quota di throughput corrente, due canali distinti creano file nello stesso intervallo di tempo. Se Firehose si quadruplica, quattro canali distinti creano quattro file in Amazon S3 durante lo stesso intervallo di tempo.

Quando i flussi di distribuzione scalano, Firehose crea file più piccoli se il fattore di dimensionamento e il volume di traffico in entrata non coincidono. Ad esempio, se Firehose scala raggiungendo il quadruplo della capacità originale e anche il traffico in entrata diventa il quadruplo del volume di traffico originale, le dimensioni dei file rimangono invariate. Viceversa, se Firehose si quadruplica ma il traffico rimane immutato, Firehose distribuisce lo stesso volume di dati su più canali. I file risultano pertanto di dimensioni inferiori.

Nota: il numero di file potrebbe aumentare in entrambi gli scenari poiché sono presenti più canali di buffering paralleli.

Assicurati che il flusso di distribuzione di Firehose non superi la quota predefinita. Per visualizzare la quota attuale per il flusso di distribuzione di Firehose, controlla le seguenti metriche di Amazon CloudWatch:

  • BytesPerSecondLimit
  • RecordsPerSecondLimit
  • PutRequestsPerSecondLimit

Se i valori delle metriche sono diversi dalle quote predefinite, il flusso di distribuzione di Firehose si è ridimensionato.

Hai indicato il flusso di dati Kinesis come origine dati

Quando indichi un flusso di dati come origine dati di Firehose, Firehose scala internamente. Per impostazione predefinita, Firehose si adatta alla capacità di volume del flusso di dati. Quando Firehose scala, la dimensione del buffer cambia e può portare alla distribuzione di record di dimensioni inferiori.

Nota: Firehose tratta i suggerimenti di buffering unicamente come consigli di massima. Di conseguenza, Firehose potrebbe scegliere di utilizzare valori diversi per ottimizzare il buffer.

AWS UFFICIALEAggiornata 2 mesi fa