我有一个问题要问你。如果我有一个内置Databricks的ETL将数据加载到BigQuery中,但我想在每次运行ETL之前擦除BigQuery表,那可能吗?对不起新手问题!感谢!!!
答案 0 :(得分:2)
当您加载数据时,jobs.insert的configuration.load属性下有两个属性(以及许多其他属性)可用于控制加载表的内容和方式:
configuration.load.writeDisposition
[可选]指定目标表已存在时发生的操作。
支持以下值:
WRITE_TRUNCATE:如果表已存在,BigQuery将覆盖表数据。 WRITE_APPEND:如果表已经存在,BigQuery会将数据附加到表中 WRITE_EMPTY:如果该表已存在且包含数据,则表示“重复”表。作业结果中返回错误 默认值为WRITE_APPEND。每个操作都是原子操作,只有在BigQuery能够成功完成作业时才会发生。作业完成时,创建,截断和追加操作将作为一个原子更新发生。
和
configuration.load.createDisposition
[可选]指定是否允许作业创建新表。
支持以下值:
CREATE_IF_NEEDED:如果该表不存在,BigQuery将创建该表 CREATE_NEVER:该表必须已存在。如果没有,那么就不会发现'作业结果中返回错误 默认值为CREATE_IF_NEEDED。创建,截断和追加操作在作业完成时作为一个原子更新发生。
所以,WRITE_TRUNCATE
就是你要找的东西