bigqueryoperator 是 write_truncate 1 个事务或 2 个事务

Posted

技术标签:

【中文标题】bigqueryoperator 是 write_truncate 1 个事务或 2 个事务【英文标题】:bigqueryoperator is write_truncate 1 transaction or 2 transactions 【发布时间】:2021-06-11 19:01:48 【问题描述】:

我希望在单个事务中替换表。我正在使用带有write_disposition='WRITE_TRUNCATE' 的bigqueryoperator,而我的sql 只是select * from my_table。我想知道这是否会发生在单个事务或两个单独的事务中?如果是 2 个事务,是否可以在单个事务中将我的 bigquery 表替换为 select * from my_table

【问题讨论】:

【参考方案1】:

Airflow 使用 Job API 提交查询。 BigQuery documentation 提及 createDispositionwriteDisposition

每个操作都是原子操作,只有在 BigQuery 能够成功完成作业时才会发生。创建、截断和追加操作在作业完成时作为一个原子更新发生。

旁注BigQueryOperator 已弃用。你应该使用BigQueryExecuteQueryOperator

【讨论】:

以上是关于bigqueryoperator 是 write_truncate 1 个事务或 2 个事务的主要内容,如果未能解决你的问题,请参考以下文章

如何在 BigQueryOperator 上参数化 write_disposition?

bigqueryoperator 气流上的 Bigquery 脚本

在 Airflow 中将 Jinja 模板变量与 BigQueryOperator 结合使用

在 BigQueryOperator 中拉取 xcom

可以使用气流 BigQueryOperator 制作 DDL bigquery 语句吗?

BigQueryOperator 可以运行多个 SQL 文件吗?