Pourquoi Kinesis Data Firehose crée-t-il autant de petits fichiers dans S3 ?

Dernière mise à jour : 04-08-2022

J'essaie d'envoyer des données à partir d'Amazon Kinesis Data Firehose vers Amazon Simple Storage Service (Amazon S3). Cependant, j'ai remarqué que Kinesis Data Firehose crée de nombreux petits fichiers dans mon compartiment Amazon S3. Pourquoi ?

Brève description

Kinesis Data Firehose fournit des enregistrements plus petits que ceux spécifiés (dans l'API BufferingHints) pour les raisons suivantes :

  • La compression est activée.
  • Le flux de diffusion Kinesis Data Firehose a été mis à l'échelle.
  • Amazon Kinesis Data Streams est répertorié comme source de données.

Résolution

La compression est activée

Si la compression est activée sur votre flux de diffusion Kinesis Data Firehose, les deux paramètres BufferingHints sont appliqués avant la compression. Vérifiez les paramètres SizeInMBS et IntervalinSeconds pour le déterminer.

Une fois chaque lot d'enregistrements mis en mémoire tampon, les paramètres sont appliqués. Lorsque les enregistrements de données sont mis en tampon et compressés, des fichiers plus petits sont créés dans Amazon S3.

Le flux de diffusion Kinesis Data Firehose a été mis à l'échelle

Si une augmentation de la limite a été demandée ou que Kinesis Data Firehose est automatiquement mise à l'échelle, le flux de diffusion Data Firehose peut être mis à l'échelle. Par défaut, Kinesis Data Firehose met automatiquement à l'échelle les flux de diffusion jusqu'à une certaine limite. Le comportement de mise à l'échelle automatique d'Amazon Kinesis réduit la probabilité de limitation sans nécessiter une augmentation de la limite.

La mise à l'échelle du flux de diffusion de Kinesis Data Firehose peut avoir un impact sur les indications de mise en mémoire tampon de Data Firehose.

Remarque : la taille du tampon est définie lorsque vous configurez votre Kinesis Data Firehose.

Il existe également un nombre proportionnel de mémoires tampon parallèles dans le flux de diffusion Kinesis Data Firehose, où les données sont distribuées simultanément à partir de tous ces tampons. Par exemple, Kinesis Data Firehose peut mettre en mémoire tampon les données et créer un seul fichier en fonction de a limite de taille de tampon. Si Kinesis Data Firehose est mis à l'échelle pour doubler la limite de débit en cours, deux canaux distincts créeront les fichiers dans le même intervalle de temps. Si Kinesis Data Firehose augmente jusqu'à quatre fois, quatre canaux différents créeront quatre fichiers dans S3 pendant le même intervalle de temps.

Remarque : le nombre de canaux créés en interne dépend de Kinesis Data Firehose. Dans l'exemple ci-dessus, quatre canaux ont été créés.

Vérifiez que le flux de diffusion Kinesis Data Firehose n'a pas dépassé la limite par défaut. Pour afficher la limite actuelle de votre flux de diffusion Kinesis Data Firehose, vérifiez les mesures Amazon CloudWatch suivantes :

  • BytesPerSecondLimit
  • RecordsPerSecondLimit
  • PutRequestsPerSecondLimit

Si les valeurs de ces mesures diffèrent des limites de quota par défaut, cela indique que le flux de diffusion de Kinesis Data Firehose a été mis à l'échelle.

Le flux de données Kinesis est répertorié comme source de données

Lorsqu'un flux de données Kinesis est répertorié comme source de données de Kinesis Data Firehose, Kinesis Data Firehose est mis à l'échelle en interne. Par défaut, Kinesis Data Firehose tente de respecter la capacité de volume du flux de données Kinesis. Cette mise à l'échelle entraîne une modification de la taille de mémoire tampon et peut entraîner la diffusion d'enregistrements de plus petite taille.

Remarque : les options d'indication de mise en mémoire tampon sont traitées comme des indications. Par conséquent, Kinesis Data Firehose peut choisir d'utiliser différentes valeurs pour optimiser la mise en mémoire tampon.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?