本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
用于动态分区的缓冲区数据
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 限制表单