如何将大数据从GCS复制到S3?

时间:2019-02-17 08:28:59

标签: amazon-s3 google-cloud-storage google-cloud-dataflow

如何将几TB的数据从GCS复制到S3?

GCS中有一个很好的“传输”功能,可以将数据从S3 导入到GCS。但是,怎么做 export (除了将数据生成作业移到AWS之外)呢?

问:为什么不gsutil? 是的,gsutil支持s3://,但是传输受到该计算机网络吞吐量的限制。如何更轻松地并行进行?

我尝试了Dataflow(现在又称为Apache Beam),因为它很容易在一百个节点上并行化,但是没有看到简单的“只是从这里复制到那里”功能,因此可以正常工作。

更新:另外,在启动管道之前,Beam似乎在单个线程中计算本地计算机上的源文件列表。就我而言,大约需要40分钟。最好将其分发到云上。

更新2:到目前为止,我倾向于使用两个自己的脚本:

  • 脚本A:列出所有要传输的对象,并将每个传输任务排队到PubSub队列中。
  • 脚本B:执行这些传输任务。在云端(例如Kubernetes)上运行,许多实例并行运行

缺点是它正在编写可能包含错误等的代码,而不使用诸如GCS“ Transfer”之类的内置解决方案。

1 个答案:

答案 0 :(得分:1)

您可以使用在Compute Engine(或EC2)实例(其可用网络带宽可能比本地计算机更高的网络实例)上运行的gsutil。 使用gsutil -m cp可以并行化跨对象复制,但是单个对象仍将按顺序复制。