用于动态分区的缓冲区数据 - Amazon Data Firehose
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

用于动态分区的缓冲区数据

Amazon Data Firehose 将传入的流数据缓冲到一定大小,或缓冲一定时间后再将其传输到目的地。您可以在创建新的 Firehose 流时配置缓冲区大小和缓冲区时间间隔,或者更新现有 Firehose 流的缓冲区大小和缓冲区时间间隔。缓冲区大小的单位是 MB,缓冲区间隔的单位是秒。

注意

零缓冲功能不适用于动态分区。

启用动态分区后,Firehose 会根据配置的缓冲区提示(大小和时间)在内部缓冲属于给定分区的记录,然后再将这些记录传输到 Amazon S3 存储桶。为了传输最大大小的对象,Firehose 在内部使用多级缓冲。因此,一批记录的端到端延迟可能是配置的缓冲提示时间的 1.5 倍。这会影响 Firehose 流的数据新鲜度。

活动分区计数是传输缓冲区内活动分区的总数。例如,如果动态分区查询每秒构造 3 个分区,并且您有一个缓冲区提示配置,每 60 秒触发一次传输,那么平均您将拥有 180 个活动分区。如果 Firehose 无法将分区中的数据传输到目的地,则该分区在传输缓冲区中将计为活动状态,直到可以传输为止。

当根据记录数据字段和 S3 前缀表达式将 S3 前缀计算为新值时,将创建一个新分区。为每个活动分区创建一个新缓冲区。具有相同计算 S3 前缀的每个后续记录都将传输到该缓冲区。

一旦缓冲区达到缓冲区大小限制或缓冲区时间间隔 Firehose 就会创建一个包含缓冲区数据的对象,并将其传输到指定的 Amazon S3 前缀。传输对象后,该分区的缓冲区和分区本身将被删除,并从活动分区计数中移除。

一旦分别满足每个分区的缓冲大小或间隔,Firehose 就会将每个缓冲区数据作为单个对象传输。一旦活动分区的数量达到每个 Firehose 流 500 个的上限,则 Firehose 流中的其余记录将传输到指定的 S3 错误存储桶前缀(activePartitionExceeded)。您可以使用 Amazon Data Firehose 限制表单请求将此配额增加到每个给定 Firehose 流最多 5000 个活动分区。如果您需要更多分区,则可以创建更多 Firehose 流,并在这些流之间分配活动分区。