了解 Amazon Data Firehose 中的数据传输 - Amazon Data Firehose

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

了解 Amazon Data Firehose 中的数据传输

当您向 Firehose 流发送数据时,数据会自动传输到您选择的目的地。下表说明了到不同目的地的传输数据。

目标位置 详细信息
Amazon S3

对于到 Amazon S3 的数据传输,Firehose 根据 Firehose 流的缓冲配置连接多个传入记录。然后,将记录作为 Amazon S3 对象传输到 Amazon S3。默认情况下,Firehose 连接数据时不使用任何分隔符。如果您想在记录之间使用新的行分隔符,则可以通过在 Firehose 控制台配置或参数中启用该功能来添加新的行分隔符。APIFirehose 和亚马逊 S3 目标之间的数据传输使用 TLS () HTTPS 加密。

Amazon Redshift

为向 Amazon Redshift 进行数据传输,Firehose 首先会将传入数据按上述格式传输到 S3 存储桶。然后,Firehose 会发出 Amazon Redshift COPY 命令,将数据从 S3 存储桶加载到 Amazon Redshift 预置集群或 Amazon Redshift Serverless 工作组。确保在 Amazon Data Firehose 将多个传入记录连接到 Amazon S3 对象后,可以将 Amazon S3 对象复制到您的 Amazon Redshift 预置集群或 Amazon Redshift Serverless 工作组。有关更多信息,请参阅亚马逊 Redshift COPY 命令数据格式参数

OpenSearch 服务和 OpenSearch 无服务器 为了向 OpenSearch 服务和 OpenSearch 无服务器传输数据,Amazon Data Firehose 会根据您的 Firehose 流的缓冲配置来缓冲传入的记录。然后,它会生成一个 OpenSearch 服务或 OpenSearch无服务器批量请求,将多条记录索引到您的 OpenSearch 服务集群或 OpenSearch 无服务器集合。在将记录发送到 Amazon Data Firehose 之前,请确保对记录进行 UTF -8 编码并扁平化为单行JSON对象。此外,必须将 OpenSearch 服务集群的rest.action.multi.allow_explicit_index选项设置为 true(默认),才能使用为每条记录设置的显式索引来接受批量请求。有关更多信息,请参阅《Amazon OpenSearch 服务开发者指南》中的 OpenSearch 服务配置高级选项
Splunk

为向 Splunk 进行数据传输,Amazon Data Firehose 会连接您发送的字节。如果要在您的数据中使用分隔符(如换行符),您必须自行插入这些分隔符。确保将 Splunk 配置为解析任何此类分隔符。要将传输到 S3 错误存储桶(S3 备份)的数据重新驱动回 Splunk,请按照 Splunk 文档中提到的步骤进行操作。

HTTP 端点 要将数据传输到受支持的第三方服务提供商拥有的HTTP终端节点,您可以使用集成的 Amazon Lambda 服务创建一个函数,将传入的记录转换为与服务提供商集成所期望的格式相匹配的格式。请联系您为目的地选择HTTP终端节点的第三方服务提供商,详细了解他们接受的记录格式。
Snowflake

为了向 Snowflake 传输数据,Amazon Data Firehose 会在内部缓冲数据一秒钟,并使用 Snowflake 流式传输API操作将数据插入到 Snowflake。默认情况下,每秒都会刷新您插入的记录并将其提交到 Snowflake 表中。在您进行插入调用后,Firehose 会发出一个 CloudWatch 指标,用于衡量将数据提交到 Snowflake 所花费的时间。Firehose 目前仅支持单个JSON项目作为记录有效载荷,并且不支持JSON数组。确保您的输入有效负载是有效的JSON对象,并且格式正确,没有任何额外的双引号、引号或转义字符。

每个 Firehose 目的地都有自己的数据传输频率。有关更多信息,请参阅 配置缓冲提示

重复记录

Amazon Data Firehose 使用 at-least-once语义进行数据传输。在某些情况下(比如数据传输超时),如果原始数据传输请求最终通过,Amazon Data Firehose 的传输重试可能会导致重复。这适用于 Amazon Data Firehose 支持的所有目的地类型,Apache Iceberg 表和 Snowflake 目的地除外。