Buffering hints - Amazon Data Firehose

Amazon Data Firehose was previously known as Amazon Kinesis Data Firehose

Buffering hints

Amazon Data Firehose buffers incoming streaming data in memory to a certain size (buffering size) and for a certain period of time (buffering interval) before delivering it to the specified destinations. You would use buffering hints when you want to deliver optimal sized files to Amazon S3 and get better performance from data processing applications or to adjust Firehose delivery rate to match destination speed.

You can configure the buffering size and the buffer interval while creating new delivery streams or update the buffering size and the buffering interval on your existing delivery streams. Buffering size is measured in MBs and buffering interval is measured in seconds. However, if you specify a value for one of them, you must also provide a value for the other. The first buffer condition that is satisfied triggers Firehose to deliver the data. If you don't configure the buffering values, then the default values are used.

You can configure Firehose buffering hints through the AWS Management Console, AWS Command Line Interface, or AWS SDKs. For existing streams, you can reconfigure buffering hints with a value that suits your use cases using the Edit option in the console or using the UpdateDestination API. For new streams, you can configure buffering hints as part of new stream creation using the console or using the CreateDeliveryStream API. To adjust the buffering size, set SizeInMBs and IntervalInSeconds in the destination specific DestinationConfiguration parameter of the CreateDeliveryStream or UpdateDestination API.

Note
  • To meet lower latencies of real-time use cases, you can use zero buffering interval hint. When you configure buffering interval as zero seconds, Firehose will not buffer data and will deliver data within a few seconds. Before you change buffering hints to a lower value, check with the vendor for recommended buffering hints of Firehose for their destinations.

  • Zero buffering feature is only available for the application destinations and is not available for Amazon S3 backup destination.

Note

Firehose uses multi-part upload for S3 destination when you configure a buffer time interval less than 60 seconds to offer lower latencies. Due to multi-part upload for S3 destination, you will see some increase in S3 PUT API costs if you choose a buffer time interval less than 60 seconds.

For destination specific buffering hint ranges and default values, see the following table:

Destination Buffering size in MB (default in parenthesis) Buffering interval in seconds (default in parenthesis)
S3 1-128 (5) 0-900 (300)
Redshift 1-128 (5) 0-900 (300)
OpenSearch Serverless 1-100 (5) 0-900 (300)
OpenSearch 1-100 (5) 0-900 (300)
Splunk 1-5(5) 0-60 (60)
Datadog 1-4 (4) 0-900 (60)
Coralogix 1-64 (6) 0-900 (60)
Dynatrace 1-64 (5) 0-900 (60)
Elastic 1 0-900 (60)
Honeycomb 1-64 (15) 0-900 (60)
HTTP endpoint 1-64 (5) 0-900 (60)
LogicMonitor 1-64 (5) 0-900 (60)
Logzio 1-64 (5) 0-900 (60)
mongoDB 1-16 (5) 0-900 (60)
newRelic 1-64 (5) 0-900 (60)
sumoLogic 1-64 (1) 0-900 (60)
Splunk Observability Cloud 1-64(1) 0-900 (60)