Lorsque je transfère des données d'Amazon Data Firehose vers Amazon Simple Storage Service (Amazon S3), Firehose crée de petits fichiers dans mon compartiment S3.
Brève description
Firehose fournit des enregistrements de plus petite taille que ceux spécifiés par l'API BufferingHints pour les raisons suivantes :
- Vous avez activé la compression.
- Le flux de diffusion Firehose a été mis à l’échelle.
- Vous avez répertorié Amazon Kinesis Data Streams comme source de données.
Résolution
Vous avez activé la compression
Si vous activez la compression pour votre flux de diffusion Firehose, Firehose applique les paramètres SizeInMBs et IntervalInSeconds de l'API BufferingHints avant la compression.
Après chaque lot de tampons d'enregistrements, Firehose applique les paramètres. Firehose compresse ensuite les enregistrements de données et crée de petits fichiers dans Amazon S3.
Le flux de diffusion Firehose a été mis à l’échelle
Si vous demandez une augmentation de quota ou si Firehose est mis à l’échelle automatiquement, le flux de diffusion Firehose se met à l’échelle. Par défaut, Firehose met automatiquement à l’échelle les flux de diffusion jusqu'à un certain quota. Ce comportement de mise à l’échelle automatique réduit la limitation sans augmenter le quota.
Lorsque les flux de diffusion Firehose sont mis à l’échelle, l'API BufferingHints peut être affectée.
Remarque : Lorsque vous configurez Firehose, vous pouvez définir la taille du tampon.
Dans le flux de diffusion Firehose, Firehose met les données en mémoire tampon sur des canaux parallèles et les transmet simultanément. Par exemple, Firehose met les données en mémoire tampon et crée un fichier unique en fonction du quota de taille de la mémoire tampon. Si Firehose est mis à l’échelle pour doubler le quota de débit actuel, deux canaux distincts créent des fichiers dans le même intervalle de temps. Si Firehose est mis à l’échelle jusqu'à quatre fois, quatre canaux différents créent quatre fichiers dans Amazon S3 au cours du même intervalle de temps.
Lorsque les flux de diffusion sont mis à l’échelle, Firehose crée des fichiers de plus petite taille si le facteur de mise à l'échelle et le volume de trafic entrant ne correspondent pas. Par exemple, si Firehose est mis à l’échelle jusqu'à quatre fois sa capacité d'origine et que le trafic entrant est également multiplié par quatre par rapport au volume de trafic initial, la taille des fichiers reste constante. Cependant, lorsque Firehose est multiplié par quatre mais que le trafic reste le même, Firehose diffuse le même volume de données sur un plus grand nombre de canaux. Ensuite, les fichiers générés sont de plus petite taille.
Remarque : Le nombre de fichiers peut augmenter dans les deux cas en raison des multiples canaux de mise en mémoire tampon parallèle.
Assurez-vous que le flux de diffusion Firehose ne dépasse pas le quota par défaut. Pour consulter le quota actuel pour votre flux de diffusion Firehose, vérifiez les métriques Amazon CloudWatch suivantes :
- BytesPerSecondLimit
- RecordsPerSecondLimit
- PutRequestsPerSecondLimit
Si les valeurs de ces métriques diffèrent des quotas par défaut, cela signifie que le flux de diffusion Firehose a été mis à l’échelle.
Vous avez spécifié Kinesis Data Streams comme source de données
Lorsque vous spécifiez un flux de données comme source de données de Firehose, Firehose est mis à l’échelle en interne. Par défaut, Firehose est mis à l’échelle pour répondre à la capacité de volume du flux de données. Lorsque Firehose est mis à l’échelle, la taille de la mémoire tampon change et peut entraîner la diffusion d'enregistrements de plus petite taille.
Remarque : Firehose traite les options d’optimisation de mise en mémoire tampon comme des conseils. Par conséquent, Firehose peut choisir d'utiliser différentes valeurs pour optimiser la mémoire tampon.