在 BigQuery extract_table 中强制覆盖

Posted

技术标签:

【中文标题】在 BigQuery extract_table 中强制覆盖【英文标题】:Force overwrite in BiqQuery extract_table 【发布时间】:2019-12-31 13:58:26 【问题描述】:

我正在使用 BigQuery Python API。

从查询创建表时,BiqQuery 的JobConfig 有一个设置选项

job_config.write_disposition = bigquery.WriteDisposition.WRITE_TRUNCATE

但是,当使用 extract_table 将表导出到 GCS 时,我使用 ExtractJobConfig 进行配置。后者似乎根本没有WriteDisposition,实际上当文件存在时似乎不会写入。

在这种情况下有什么方法可以强制覆盖吗?

【问题讨论】:

注意:这种行为可能确实默认存在,但系统可能需要一段时间(> 1 小时)来传输/更新文件。欢迎任何澄清! 【参考方案1】:

正如我在我找到的所有文档([1]、[2]、[3])中看到的那样,这种特定类型的工作不提供有关写入处置的任何选项。尽管如此,似乎默认模式是覆盖。正如我可以重现的那样,当您创建不同的作业以导出相同的文件时,该文件将被替换。 我想请您提供您的代码,以便我可以更准确地重现问题并为您提供更好的答案。

【讨论】:

感谢您的研究,但这应该是评论,因为它没有回答问题。你知道默认行为是什么吗? 乔希,很抱歉,由于我的声誉,我无法添加评论。默认模式是覆盖,我没有发现任何有关更改此模式的信息。正如我可以在这里重现的那样,如果您创建另一个具有不同 ID 的作业来导出具有相同名称的文件,则该文件将被替换。

以上是关于在 BigQuery extract_table 中强制覆盖的主要内容,如果未能解决你的问题,请参考以下文章

pdfplumber模块初始用

Bigquery:在 Bigquery 中计算余额或重写 SQL 脚本

log parser分析windows日志

使用Regex解析数据库表名

我们可以在 BigQuery 中自定义函数吗?如何在 BigQuery 中创建日期参数?

BigQuery - 在插入表时调用查询