Amazon Kinesis Firehose 到带有 Protobuf 数据的 S3

Amazon Kinesis Firehose to S3 with Protobuf data

有没有人尝试通过 Kinesis Firehose 推送 Google Protobuf (PB) 数据以存储到 S3。我问这个问题是因为 Protobuf(通常)是二进制格式,我记得(可能是错误的)Firehose 在写入之前通过 base64 转换运行所有数据。我稍后需要读取 PB 数据进行处理,并想知道我是否需要在使用前对其进行 de-base64,或者我是否可以直接从 S3 访问原始 PB 数据。谢谢。

您可以将二进制数据传递给 Kineses Firehose,Kinesis 会在发送到另一个 AWS 服务之前对数据进行 base64 编码。查看 Java 文档中的 setData() 函数:

Kinesis Firehose Record

例如,从 S3 读取数据后,您需要解码数据以进行进一步处理。

您可以使用 Lambda 将二进制数据直接写入 S3。不过,您需要能够从 lambda 的源代码中提取文件,因为我相信 API Gateway 将对二进制有效负载进行 Base64 编码。