配置备份设置 - Amazon Data Firehose

将 Amazon Data Firehose 流传输到亚马逊 S3 中的 Apache Iceberg Tables 处于预览阶段,可能会发生变化。

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

配置备份设置

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 直播的目的地:亚马逊 OpenSearch 服务、Datadog、Dynatrace、Endpoin HTTP t、 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 在将传入的数据交付(备份)到亚马逊 S3 之前对其进行缓冲。您可以选择 1—128 的缓冲区大小 MiBs 和 60—900 秒的缓冲间隔。先满足的条件会触发向 Amazon S3 进行数据传输的操作。如果您启用数据转换,则缓冲间隔将从 Amazon Data Firehose 收到转换后的数据到向 Amazon S3 传输数据的时间一直适用。如果向目标传输的数据落后于写入 Firehose 流的数据,Amazon Data Firehose 会动态增加缓冲区大小以赶上。此操作有助于确保所有数据都传输到目标。

  • S3 压缩——选择 Snappy GZIP、Zip 或兼容 Hadoop 的 Snappy 数据压缩,或者不压缩数据。兼容 Snappy、Zip 和 Hadoop 的 Snappy 压缩不适用于以亚马逊 Redshift 为目的地的 Firehose 直播。

  • S3 文件扩展名格式(可选)-为传送到 Amazon S3 目标存储桶的对象指定文件扩展名格式。如果启用此功能,则指定的文件扩展名将覆盖数据格式转换或 S3 压缩功能(例如.parquet 或.gz)附加的默认文件扩展名。在将此功能与数据格式转换或 S3 压缩配合使用时,请确保配置了正确的文件扩展名。文件扩展名必须以句点 (.) 开头,并且可以包含允许的字符:0-9a-z! -_.*' ()。文件扩展名不能超过 128 个字符。

  • Firehose 支持亚马逊 S3 服务器端加密 AWS Key Management Service (SSE-KMS) 用于对 Amazon S3 中已交付的数据进行加密。您可以选择使用目标 S3 存储桶中指定的默认加密类型,也可以选择使用列表中的密钥进行加密 AWS KMS 你拥有的钥匙。如果你用加密数据 AWS KMS 密钥,你可以使用默认密钥 AWS 托管密钥 (aws/s3) 或客户托管密钥。有关更多信息,请参阅使用服务器端加密保护数据 AWS KMS-托管密钥 (SSE-KMS)

配置缓冲提示

Amazon Data Firehose 会将内存中传入的流数据缓冲到一定大小(缓冲大小)和一段时间(缓冲间隔),然后再将其传送到指定目的地。如果您想向 Amazon S3 交付大小最佳的文件并提高数据处理应用程序的性能,或者要调整 Firehose 的传输速率以匹配目标速度,则可以使用缓冲提示。

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

你可以通过以下方式配置 Firehose 缓冲提示 AWS Management Console, AWS Command Line Interface,或 AWS SDKs。对于现有流,您可以使用控制台中的 “编辑” 选项或使用,使用适合您用例的值重新配置缓冲提示。UpdateDestinationAPI对于新直播,您可以使用控制台或使用配置缓冲提示,作为创建新直播的一部分。CreateDeliveryStreamAPI要调整缓冲区大小,请在CreateDeliveryStreamUpdateDestinationAPI的目标特定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 冰山桌子 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)
洛吉奥 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)