您可以将BigQueryExecuteQueryOperator 的destination_dataset_table 参数用作:
from airflow.providers.google.cloud.operators.bigquery import BigQueryExecuteQueryOperator
execute_query_save = BigQueryExecuteQueryOperator(
task_id="execute_query_save",
sql="SELECT * FROM my_data_set.table1",
use_legacy_sql=False,
destination_dataset_table="my_data_set.table2",
location="southamerica-east1",
write_disposition="WRITE_EMPTY",
create_disposition="CREATE_IF_NEEDED",
)
您可以通过设置参数值来控制请求的行为(参考来自Google docs 的值)。
write_disposition 选项是:
WRITE_TRUNCATE:如果表已存在,BigQuery 会覆盖表数据并使用查询结果中的架构。
WRITE_APPEND:如果表已存在,BigQuery 会将数据附加到表中。
WRITE_EMPTY:如果表已存在且包含数据,则作业结果中返回“重复”错误。
create_disposition 选项是:
CREATE_IF_NEEDED:如果表不存在,BigQuery 会创建表。
CREATE_NEVER:表必须已经存在。如果没有,则在作业结果中返回“notFound”错误。