В Apache Airflow, как передать результат из макроса в качестве параметра в запрос sql в отдельном файле. sql - PullRequest
0 голосов
/ 10 февраля 2020

Я пишу группу обеспечения доступности баз данных, используя MySqlOperator, и мне нужно передать результат из macro.add(ds,1) в запрос MySQL. Обратите внимание, что запрос MySQL хранится в отдельном файле. sql.

Моя задача DAG:

t2 = MySqlOperator(task_id='load_dv_hub',
                   mysql_conn_id="zeus_root",
                   sql="dv_candidate_login.sql",
                   params={"window_end_date": '{{ macros.ds_add(ds, 1) }}'})

И, dv_candidate_login. sql:

FROM stg_candidate_login as s
WHERE s.load_dts >= "{{ ds }}"
  AND s.load_dts < "{{ params.window_end_date }}"

Есть идеи, что я делаю не так?

1 Ответ

1 голос
/ 10 февраля 2020

Параметры не являются шаблонными, что означает, что вы не можете использовать macros.ds_add в нем. Вы можете переместить шаблонный код в сам файл sql, и это решит проблему.

...