配置 Firehose 以便它只为每个 S3 对象写入一条记录?

Configure Firehose so it writes only one record per S3 object?

我正在使用 Firehose 传输流将 JSONs 写入 S3。这些 JSON 代表调用。流通常会收到 JSON 的新版本,它会带来有关所表示调用的新信息。

我希望我的 Firehose 将每个 JSON 记录写入一个单独的 S3 对象,而不是像默认情况下那样将它们组合在一起。每个 JSON 都将写入标识调用的 S3 密钥,因此当 JSON 的新版本出现时,Firehose 会替换其在 S3 中的先前版本。这可能吗?

我看到我可以设置触发写入 S3 的缓冲区大小,但是我可以显式配置我的 Firehose 流以便它为每条记录写入一个 S3 对象吗?

不涉及 Redshift。

Amazon Kinesis Data Firehose 无法做到这一点。这是一个简化的服务,只有几个配置选项。

相反,您可以使用 Amazon Kinesis Data Streams:

  • 向流发送数据
  • 创建一个 AWS Lambda 函数,只要流接收到数据就会触发该函数
  • 编写 Lambda 函数以将数据写入适当的 Amazon S3 对象

参见:Using AWS Lambda with Amazon Kinesis - AWS Lambda