Передача аргументов в шаблон sql от оператора воздушного потока - PullRequest
0 голосов
/ 30 августа 2018

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

1 Ответ

0 голосов
/ 30 августа 2018

В параметре 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.

...