【发布时间】:2018-04-02 18:15:47
【问题描述】:
有没有人尝试通过 Kinesis Firehose 推送 Google Protobuf (PB) 数据以存储到 S3。我问这个问题是因为 Protobuf(通常)是一种二进制格式,而且我记得(可能是错误的)Firehose 在写入之前通过 base64 转换运行所有数据。稍后我需要读取 PB 数据进行处理,并想知道我是否需要在使用前对其进行 de-base64 处理,或者我是否可以直接从 S3 访问原始 PB 数据。谢谢。
【问题讨论】:
-
这是一个有趣的问题。但是,我需要问为什么? Google PB 是一种序列化的数据格式。这意味着您正在获取结构化数据,更改其格式,然后将其发送到 Kineses Firehose。然后您必须反序列化数据,这可能意味着重新创建 Google 库。为什么不直接将数据发送到 Kinesis?
-
其实,这正是我想做的:将PB直接写入S3。我使用 FH 作为缓冲区来聚合一段时间内的文件写入次数。但是,根据我的阅读,FH 不会获取原始二进制数据,而是会在传输过程中转换为 base64。我对此有误吗?我很想直接向 FH 写入一个 PB 字节 [],然后稍后直接从 S3 读取它。
-
引用说BLOB在序列化时是base64编码的。
-
您最终是否使用 protobufs 和 firehose 做到了这一点?
标签: amazon-web-services amazon-s3 protocol-buffers amazon-kinesis-firehose