当前位置: 首页 > 知识库问答 >
问题:

当作业完成时,不会删除从Dataflow-JSON文件写入BigQuery

蒙弘图
2023-03-14

我们的一个数据流作业将其输出写入BigQuery。我对这是如何在幕后实现的理解是,Dataflow实际上将JSON格式的结果(sharded)写入GCS,然后启动BigQuery load作业来导入该数据。

但是,我们注意到,无论作业成功还是失败,有些JSON文件都不会在作业完成后删除。错误消息中没有文件不会被删除的警告或建议。当我们注意到这一点时,我们查看了我们的bucket,它有数百个来自失败作业的大型JSON文件(主要是在开发过程中)。

我认为Dataflow应该处理任何清理,即使作业失败,当它成功时,这些文件肯定应该被删除,在作业完成后留下这些文件会导致大量的存储成本!

这是虫子吗?

“成功”但在GCS中留下数百个大文件的作业的示例作业id:2015-05-27_18_21_21-8377993823053896089

共有1个答案

仉峻
2023-03-14

由于这种情况仍在发生,我们决定在管道执行完毕后自行清理。我们运行以下命令删除不是JAR或zip的所有内容:

gsutil ls -p <project_id> gs://<bucket> | grep -v '[zip|jar]$' | xargs -n 1 gsutil -m rm -r
 类似资料:
  • 我有以下错误,詹金斯无法从工作区删除一些文件。我可以手动删除文件,但如何使其自动化?我在构建之前选中了删除工作区,并在“要删除和包含的文件模式”中插入了**/tellar.tar.gz,但仍然不会这样做。 正在删除项目工作区。。。 清洁本地目录。 hudson.util.IOException2:远程文件操作失败: /local/hudson/workspace/CITI_PATCH_LATE在h

  • 我有一项服务,每天在Kubernetes上部署数千个短期工作。我试图让Kubernetes在完成后使用这里描述的功能删除这些作业: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#clean-up-finished-jobs-automatically 作业完成,但在表示的时间限制之

  • 我正在使用Hadoop GCS Connector 3-2.2.2和google云存储版本1.113.14将数据写入谷歌云存储上的文件。 我有一个文件类,它有一个写方法,返回一个输出流如下使用hadoop类: FS是org.apache.hadoop.fs.FileSystem的实例;path是导入org.apache.hadoop.fs.Path的实例; 我甚至尝试使用谷歌云存储sdk来实现我的

  • 问题内容: 我最近(通过GUI)从Jenkins删除了2个工作。之后,当我登录到奴隶时,我仍然看到那两个作业的工作空间。这是正常现象吗? 笔记: Jenkins主服务器和从服务器都在Windows环境上运行。 主服务器在Windows Server 2003上运行,从服务器在Windows Server 2008 R2上运行。 Jenkins版本是1.509.2 问候,贝尼尔 问题答案: 不幸的是

  • 问题内容: 我想用Java编写一个文件而不清除(删除)该文件上的旧数据! 我运行此代码,发现每次运行后,.txt文件上的所有较旧数据都被清除了! 我的代码在这里: 问题答案: 使用可以指示在附加模式下打开文件的构造函数:

  • 我无法自动删除由CronJob启动的已完成作业。正如我在此处和此处的QA中以及在官方文档中所阅读的,这可以通过建立作业历史限制< code > . spec . successfuljobshistorylimit 和< code > . spec . failed jobshistorylimit 来完成。我做过,两种情况下都成立为1。但是我的群集保存了不止一个已完成的作业,事实上,它保存的数据