在Airflow中,使用BigQuery操作器执行SQL查询时,不能直接将SQL查询作为原始文件读取。但可以使用Python代码将SQL查询作为字符串传递给BigQuery操作器。
以下是一个示例,演示如何使用BigQuery操作器执行SQL查询:
from datetime import datetime
from airflow import DAG
from airflow.contrib.operators.bigquery_operator import BigQueryOperator
default_args = {
'owner': 'airflow',
'start_date': datetime(2021, 1, 1)
}
dag = DAG('bigquery_example',
default_args=default_args,
schedule_interval='@daily')
sql_query = """
SELECT *
FROM `your_project.your_dataset.your_table`
WHERE date >= '2021-01-01'
"""
bigquery_task = BigQueryOperator(
task_id='execute_query',
sql=sql_query,
use_legacy_sql=False,
destination_dataset_table='your_project.your_dataset.your_destination_table',
dag=dag
)
bigquery_task
在这个例子中,我们使用了BigQueryOperator
来执行一个SQL查询。将SQL查询作为一个多行字符串赋值给sql
参数。use_legacy_sql
参数设置为False
,表示使用标准SQL。destination_dataset_table
参数指定了查询结果的目标表。
通过将SQL查询作为字符串传递给BigQuery操作器,可以在Airflow中执行BigQuery查询。