我们的 Dataflow 作业之一将其输出写入 BigQuery。我对其幕后实现方式的理解是,Dataflow 实际上将 JSON 格式的结果(分片)写入 GCS,然后启动 BigQuery 加载作业以导入该数据。
但是,我们注意到,无论作业成功还是失败,某些 JSON 文件都不会在作业后删除。错误消息中没有警告或建议不会删除文件。当我们注意到这一点时,我们查看了我们的存储桶,它有数百个来自失败作业的大型 JSON 文件(主要是在开发期间)。
我本以为数据流应该处理任何清理工作,即使作业失败,并且当它成功时,这些文件肯定应该被删除在作业完成后留下这些文件会产生大量的存储成本!
这是一个错误吗?
“成功”但在 GCS 中留下数百个大文件的作业的示例作业 ID:2015-05-27_18_21_21-8377993823053896089
由于这种情况仍在发生,我们决定在管道执行完毕后自行清理。我们运行以下命令来删除不是 JAR 或 ZIP 的所有内容:
gsutil ls -p <project_id> gs://<bucket> | grep -v '[zip|jar]$' | xargs -n 1 gsutil -m rm -r
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)