微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apache Beam使用哪种协议从云存储读写文件,是HTTPS还是Binary?

如何解决Apache Beam使用哪种协议从云存储读写文件,是HTTPS还是Binary?

我想知道apache beam使用哪种协议来读写云存储。是 HTTPS 还是 Binary(Blob)。我试着用谷歌搜索,但没有找到。我知道 gsutil 命令使用 HTTPS 协议。

解决方法

您正在混合两件事:传输层和数据编码。

  • Google 是否使用 HTTP 传输?是的,对于所有 API。通常使用 HTTPS 或 gRPC (HTTP/2)。
  • Google 是否使用二进制编码来加快传输速度?如前所述,传输可以是 HTTPS 或 gRPC。 HTTPS 通常用于 REST API 和传输 JSON 文本格式。当然,您可以交换二进制格式的文件(例如 GZIP 以压缩和加速传输)。 gRPC 是一个二进制协议。您不交换 JSON,而是要交换的数据的二进制表示。因此,文件传输也是二进制模式。

现在,Beam 有什么用?通常,Google 库在幕后使用 gRPC,因此编码是二进制的。如果您自己执行 REST API 调用,使用 JSON,并且将使用 HTTP;但是文件内容在可以(取决于您的请求接受内容标头)时以二进制形式传输。


编辑 1

对于 BEAM,我查看了源代码。例如,您有 hereGoogleCloudStorageImpl 对象的创建。

如果您查看这个完整的类名:import com.google.cloud.hadoop.gcsio.GoogleCloudStorageImpl;。好了,来看看hadoop包吧!!

Javadoc is clear: JSON API is used。为了确认这一点,我去了source code,是的,API 通信使用 JSON 格式。

但是,请记住这是 API 通信,即围绕文件内容的元数据。文件内容应该以二进制格式发送(b64编码的纯文本应该很奇怪)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。