Если я использую BigQueryOperator с шаблоном SQL, как я могу передать аргумент SQL?
Файл :.sql/query.sql
SELECT * FROM 'dataset.{{ task_instance.variable_for_execution }}
Файл: dag.py
BigQueryOperator(
task_id='compare_tables',
sql='./sql/query.sql',
use_legacy_sql=False,
dag=dag,
)
Вы можете передать аргумент в параметре params
который можно использовать в шаблонизированном поле следующим образом:
BigQueryOperator(
task_id='',
sql='SELECT * FROM 'dataset.{{ params.param1 }}',
params={
'param1': 'value1',
'param2': 'value2'
},
use_legacy_sql=False,
dag=dag
)
ИЛИ вы можете иметь отдельный SQL файл в файле:
Файл :./sql/query.sql
SELECT * FROM 'dataset.{{ params.param1 }}
Параметром параметра params
должен быть словарь. В общем, любой оператор в Airflow может быть передан этот параметр params
.