Передача аргументов в шаблон sql от оператора воздушного потока

1

Если я использую 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,
)
Теги:
airflow

1 ответ

2
Лучший ответ

Вы можете передать аргумент в параметре 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.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню