

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

# 配置备份设置
<a name="create-configure-backup"></a>

Amazon Data Firehose 使用 Amazon S3 备份所有数据或仅备份失败的数据，并尝试将其传输到您选择的目的地。

**重要**  
只有当 Firehose 流的源是 Direct PUT 或 Kinesis Data Streams 时，才支持备份设置。
零缓冲功能仅适用于应用程序目的地，不适用于 Amazon S3 备份目的地。

如果您做出以下选择之一，则可以为 Firehose 流指定 S3 备份设置。
+ 如果您将 Amazon S3 设置为 Firehose 流的目的地，并选择指定 Lamb AWS da 函数来转换数据记录，或者您选择转换您的 Firehose 流的数据记录格式。
+ 如果您将 Amazon Redshift 设置为 Firehose 流的目的地，并选择指定一个 Lambda 函数来转换数据 AWS 记录。
+ 如果你将以下任何服务设置为 Firehose 直播的目的地：亚马逊 OpenSearch 服务、Datadog、Dynatrace、HTTP Endpoint、 LogicMonitor MongoDB Cloud、New Relic、Splunk 或 Sumo Logic、Snowflake、Apache Iceberg Tables。

以下是 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—128 的缓冲区大小 MiBs 和 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 服务器端加密，用于加密亚马逊 S3 中交付的数据。您可以选择使用目标 S3 存储桶中指定的默认加密类型，也可以选择使用您拥有的 AWS KMS 密钥列表中的密钥进行加密。如果您使用密钥加密数据，则可以使用默认 AWS 托管 AWS KMS 密钥 (aws/s3) 或客户托管密钥。有关更多信息，请参阅[使用 AWS KMS 托管密钥的服务器端加密 (SSE-KMS) 保护数据](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)。

## 配置缓冲提示
<a name="buffering-hints"></a>

Amazon Data Firehose 将传入的流数据缓冲到一定大小（缓冲大小），或缓冲一定时间（缓冲时间间隔）后再将其传输到指定的目的地。如果您想向 Amazon S3 传输大小最佳的文件并提高数据处理应用程序的性能，或者要调整 Firehose 的传输速率以匹配目标速度，则需要使用缓冲提示。

您可以在创建新的 Firehose 流时配置缓冲大小和缓冲区时间间隔，或者更新现有 Firehose 流的缓冲大小和缓冲时间间隔。缓冲大小以秒为单位测量 MBs ，缓冲间隔以秒为单位。但是，如果您为其中之一指定值，您还必须为另一个提供值。满足的第一个缓冲条件将触发 Firehose 传输数据。如果未配置缓冲值，则使用默认值。

您可以通过 AWS 管理控制台、 AWS Command Line Interface或配置 Firehose 缓冲提示。 AWS SDKs对于现有流，您可以使用控制台中的**编辑**选项或使用 API 重新配置缓冲提示，使其具有适合您用例的值。[UpdateDestination](https://docs.aws.amazon.com/firehose/latest/APIReference/API_UpdateDestination.html)对于新直播，您可以使用控制台或 [CreateDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html)API 将缓冲提示配置为创建新直播的一部分。要调整缓冲区大小，请在[CreateDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html)或 [UpdateDestination](https://docs.aws.amazon.com/firehose/latest/APIReference/API_UpdateDestination.html)API 的目标特定`DestinationConfiguration`参数`IntervalInSeconds`中设置`SizeInMBs`和。

**注意**  
缓冲区提示应用于分片或分区级别，而动态分区缓冲区提示则应用于流或主题级别。
为了满足低延迟的实时使用案例，您可以使用零缓冲时间间隔提示。当您将缓冲时间间隔配置为零秒时，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) | 