本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Data Firehose 使用 Amazon S3 备份所有数据或仅备份失败的数据,并尝试将其传输到您选择的目的地。
重要
-
只有当 Firehose 流的源是 Direct PUT 或 Kinesis Data Streams 时,才支持备份设置。
-
零缓冲功能仅适用于应用程序目的地,不适用于 Amazon S3 备份目的地。
如果您做出以下选择之一,则可以为 Firehose 流指定 S3 备份设置。
-
如果您将 Amazon S3 设置为 Firehose 流的目的地,并选择指定 AWS Lambda 函数来转换数据记录,或者选择转换 Firehose 流的数据记录格式。
-
如果您将 Amazon Redshift 设置为 Firehose 流的目的地,并选择指定 AWS Lambda 函数来转换数据记录。
-
如果您将以下任何服务设置为 Firehose 流的目的地:Amazon OpenSearch Service、Datadog、Dynatrace、HTTP 端点、LogicMonitor、MongoDB Cloud、New Relic、Splunk 或 Sumo Logic、Snowflake、Apache Iceberg 表。
以下是 Firehose 流的备份设置。
-
Amazon S3 中的源记录备份:如果您选择的目标是 S3 或 Amazon Redshift,则此设置指示您是要启用源数据备份还是将其禁用。如果将任何其他支持的服务(S3 或 Amazon Redshift 除外)设置为您选择的目标,则此设置指示您是要备份所有源数据还是仅备份失败的数据。
-
S3 备份存储桶:该存储桶为 Amazon Data Firehose 备份数据的 S3 存储桶。
-
S3 备份存储桶前缀:这是 Amazon Data Firehose 备份数据的前缀。
-
S3 备份存储桶错误输出前缀:所有失败的数据都备份在此 S3 存储桶错误输出前缀中。
-
备份的缓冲提示、压缩和加密:Amazon Data Firehose 使用 Amazon S3 备份所有数据或仅备份失败的数据,并尝试将其传输到您选择的目的地。Amazon Data Firehose 在将传入数据传输(备份)到 Amazon S3 之前对其进行缓冲。您可以选择 1-128MiB 的缓冲区大小以及 60-900 秒的缓冲区间隔。先满足的条件会触发向 Amazon S3 进行数据传输的操作。如果您启用数据转换,缓冲区间隔是指从 Amazon Data Firehose 接收转换数据的时间到数据传输到 Amazon S3 的时间。如果数据传输到目的地的速度落后于数据写入到 Firehose 流的速度,Amazon Data Firehose 会动态增加缓冲区大小以跟上速度。此操作有助于确保所有数据都传输到目标。
-
S3 压缩:选择 GZIP、Snappy、Zip 或 Hadoop 兼容的 Snappy 数据压缩,或者不压缩数据。Snappy、Zip 和 Hadoop 兼容的 Snappy 压缩,不适用于以 Amazon Redshift 作为目的地的 Firehose 流。
S3 文件扩展名格式(可选):为传输到 Amazon S3 目标存储桶的对象指定文件扩展名格式。如果启用此功能,则指定的文件扩展名将覆盖数据格式转换或 S3 压缩功能(例如 .parquet 或 .gz)附加的默认文件扩展名。在将此功能与数据格式转换或 S3 压缩配合使用时,请确保您配置了正确的文件扩展名。文件扩展名必须以句点(.)开头,并且可以包含允许的字符:0-9a-z!-_.*‘()。文件扩展名不能超过 128 个字符。
-
Firehose 支持使用 AWS Key Management Service(SSE-KMS)进行 Amazon S3 服务器端加密,以加密 Amazon S3 中传输的数据。您可以选择使用目标 S3 存储桶中指定的默认加密类型,也可以选择使用您自己的 AWS KMS 密钥列表中的密钥进行加密。如果您使用 AWS KMS 密钥加密数据,则可以使用默认的 AWS 托管密钥(aws/s3)或客户托管密钥。有关更多信息,请参阅使用具有 AWS KMS 托管密钥的服务器端加密(SSE-KMS)保护数据。
配置缓冲提示
Amazon Data Firehose 将传入的流数据缓冲到一定大小(缓冲大小),或缓冲一定时间(缓冲时间间隔)后再将其传输到指定的目的地。如果您想向 Amazon S3 传输大小最佳的文件并提高数据处理应用程序的性能,或者要调整 Firehose 的传输速率以匹配目标速度,则需要使用缓冲提示。
您可以在创建新的 Firehose 流时配置缓冲大小和缓冲区时间间隔,或者更新现有 Firehose 流的缓冲大小和缓冲时间间隔。缓冲大小的单位是 MB,缓冲时间间隔的单位是秒。但是,如果您为其中之一指定值,您还必须为另一个提供值。满足的第一个缓冲条件将触发 Firehose 传输数据。如果未配置缓冲值,则使用默认值。
您可以通过 AWS Management Console、AWS Command Line Interface 或 AWS SDK 配置 Firehose 缓冲提示。对于现有流,您可以使用控制台中的编辑选项或 UpdateDestination API,使用适合您使用案例的值重新配置缓冲提示。对于新流,您可以使用控制台或 CreateDeliveryStream API 将缓冲提示配置为创建新流的一部分。要调整缓冲大小,请在 CreateDeliveryStream 或 UpdateDestination API 的目的地特定 DestinationConfiguration
参数中设置 SizeInMBs
和 IntervalInSeconds
。
注意
-
缓冲区提示应用于分片或分区级别,而动态分区缓冲区提示则应用于流或主题级别。
-
为了满足低延迟的实时使用案例,您可以使用零缓冲时间间隔提示。当您将缓冲时间间隔配置为零秒时,Firehose 不会缓冲数据,而是在几秒钟内传输数据。在将缓冲提示更改为较低的值之前,请咨询供应商,了解有关其目的地的 Firehose 建议缓冲提示。
零缓冲功能仅适用于应用程序目的地,不适用于 Amazon S3 备份目的地。
-
零缓冲功能不适用于动态分区。
-
当您将缓冲区时间间隔配置为小于 60 秒以提供更低的延迟时,Firehose 会对 S3 目的地使用分段上传。由于 S3 目的地的分段上传,如果您选择的缓冲区时间间隔小于 60 秒,则会看到 S3
PUT
API 成本会有所增加。
有关目的地特定缓冲提示范围和默认值,请参阅下表:
目标位置 | 缓冲大小(以 MB 为单位,括号中为默认值) | 缓冲时间间隔(以秒为单位,括号中为默认值) |
---|---|---|
Amazon S3 | 1-128 (5) | 0-900 (300) |
Apache Iceberg 表 | 1-128 (5) | 0-900 (300) |
Amazon Redshift | 1-128 (5) | 0-900 (300) |
OpenSearch 无服务器 | 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) |
弹性 | 1 | 0-900 (60) |
Honeycomb | 1-64 (15) | 0-900 (60) |
HTTP 端点 | 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) |
Snowflake | 1 - 128 (1) | 0 - 900 (0) |