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 提及 createDisposition
和 writeDisposition
每个操作都是原子操作,只有在 BigQuery 能够成功完成作业时才会发生。创建、截断和追加操作在作业完成时作为一个原子更新发生。
旁注BigQueryOperator
已弃用。你应该使用BigQueryExecuteQueryOperator
【讨论】:
以上是关于bigqueryoperator 是 write_truncate 1 个事务或 2 个事务的主要内容,如果未能解决你的问题,请参考以下文章
如何在 BigQueryOperator 上参数化 write_disposition?
bigqueryoperator 气流上的 Bigquery 脚本
在 Airflow 中将 Jinja 模板变量与 BigQueryOperator 结合使用