我目前正在尝试上传,然后以最低价格将一个大文件(1.3 TB)解压缩到Google Cloud Storage中。
我最初考虑过创建一个非常便宜的实例,只是要下载文件并将其放入存储桶中,然后创建一个具有大量RAM的新实例来解压缩文件,然后将结果放入一个新存储桶中。 但是,由于存储桶的价格取决于请求I / O的数量,因此我不确定这是最佳选择,即使对于性能,它也可能不是最佳选择。
以最便宜的方式解压缩文件的最佳策略是什么?
答案 0 :(得分:1)
首先是有关定价的一些背景信息:
Google有pretty good documentation关于如何将数据提取到GCS中的信息。从该指南中:
如今,当您将数据移至Cloud Storage时,无需支付入口流量费用。 gsutil工具和Storage Transfer Service均免费提供。有关最新的定价详细信息,请参见GCP网络定价页面。
[流量类型:入口]价格:不收费,除非有诸如负载平衡器之类的资源正在处理入口流量。对请求的响应计为外发并收费。
GCS pricing page上还有其他有关您使用GCE VM写入GCS的想法的信息:
在以下情况下,与其他GCP服务一起访问Cloud Storage存储桶中的数据无需支付网络费用:
- 您的存储桶和GCP服务位于同一多区域或区域位置。例如,使用
asia-east1
Compute Engine实例访问asia-east1
存储桶中的数据。
在later in that same page中,还有有关请求前定价的信息:
A类操作的A类操作:storage。*。insert [1]
[1]使用JSON API进行的简单,分段和可恢复的上传均被视为一项A类操作。
The cost是每10,000次操作,取决于存储类型,为$ 0.05或$ 0.10。我相信您只会执行1次A类操作(或最多只能对每个上传的文件执行1次A类操作),因此这可能不会增加总体使用量。
现在回答您的问题:
在您的用例中,听起来您想让tarball中的文件成为GCS中的单个文件(而不是仅将一个大tarball存储在GCS中的一个文件中)。第一步是将其解压缩到某个位置,第二步是使用gsutil cp
将其复制到GCS。
除非必须这样做(即现在存放tarball的机器上没有足够的空间),否则我不建议在上传到GCE之前将tarball复制到GCE中的中间VM,这有两个原因:
gsutil cp
已经为您处理了许多烦人的边缘情况:并行上传,在网络出现故障时恢复上传,重试,校验和比较等。如果您想先尝试以较低风险尝试该过程,请创建一个包含几兆字节数据和一些文件的小目录,然后使用gsutil cp
复制它,然后检查向您收取的费用为了那个原因。在GCS定价页面上:
每天都会产生费用,但是Cloud Storage仅在计费期结束时向您计费。您可以在Google Cloud Platform控制台的项目结算页面中查看未开票的使用情况。
因此,您只需要等待一天,看看您的账单是多少。