Cuando envío datos de Amazon Data Firehose a Amazon Simple Storage Service (Amazon S3), Firehose crea archivos pequeños en mi bucket de S3.
Descripción corta
Firehose entrega registros más pequeños que los que especifica la API BufferingHints por los siguientes motivos:
- Has activado la compresión.
- La secuencia de entrega de Firehose se ha escalado.
- Has incluido Amazon Kinesis Data Streams como origen de datos.
Resolución
Has activado la compresión
Si activas la compresión para la secuencia de entrega de Firehose, Firehose aplica los parámetros SizeInMBs y IntervalInSeconds de la API BufferingHints antes de la compresión.
Después de que cada lote de registros se almacene en búfer, Firehose aplica los parámetros. A continuación, Firehose comprime los registros de datos y crea archivos pequeños en Amazon S3.
La secuencia de entrega de Firehose se ha escalado
Si solicitas un aumento de cuota o Firehose escala automáticamente, la secuencia de entrega de Firehose se escala. De forma predeterminada, Firehose escala automáticamente las secuencias de entrega hasta una cuota determinada. Este comportamiento de escalamiento automático reduce la aceleración sin aumentar la cuota.
Cuando las secuencias de entrega de Firehose escalan, la API BufferingHints puede verse afectada.
Nota: Cuando configuras Firehose, puedes establecer el tamaño del búfer.
Dentro de la secuencia de entrega de Firehose, Firehose almacena los datos en canales paralelos y los entrega simultáneamente. Por ejemplo, Firehose almacena los datos en búfer y crea un único archivo en función de la cuota de tamaño del búfer. Si Firehose escala para duplicar la cuota de rendimiento actual, dos canales distintos crean archivos en el mismo intervalo de tiempo. Si Firehose escala verticalmente hasta cuatro veces, hay cuatro canales diferentes que crean cuatro archivos en Amazon S3 durante el mismo intervalo de tiempo.
Cuando las secuencias de entrega escalan, Firehose crea archivos más pequeños si el factor de escalamiento y el volumen de tráfico entrante no coinciden. Por ejemplo, si Firehose escala hasta cuatro veces la capacidad original y el tráfico entrante también aumenta cuatro veces el volumen de tráfico original, los tamaños de los archivos se mantienen coherentes. Sin embargo, cuando Firehose escala cuatro veces pero el tráfico permanece igual, Firehose distribuye el mismo volumen de datos en más canales. Entonces, los archivos generan tamaños más pequeños.
Nota: La cantidad de archivos puede aumentar en ambos escenarios debido a los múltiples canales de almacenamiento en búfer paralelos.
Asegúrate de que la secuencia de entrega de Firehose no supere la cuota predeterminada. Para ver la cuota actual de tu secuencia de entrega de Firehose, consulta las siguientes métricas de Amazon CloudWatch:
- BytesPerSecondLimit
- RecordsPerSecondLimit
- PutRequestsPerSecondLimit
Si los valores de estas métricas difieren de las cuotas predeterminadas, la secuencia de entrega de Firehose se ha escalado.
Has incluido Kinesis Data Streams como origen de datos
Cuando incluyes una secuencia de datos como origen de datos de Firehose, Firehose escala internamente. De forma predeterminada, Firehose escala para cumplir con la capacidad de volumen de la secuencia de datos. Cuando Firehose escala, el tamaño del búfer cambia y puede llevar a la entrega de registros de menor tamaño.
Nota: Firehose trata las opciones de sugerencias de almacenamiento en búfer como sugerencias. Como resultado, Firehose puede optar por usar diferentes valores para optimizar el búfer.