У меня есть шаблон jinja, который ссылается на файл sql, который будет запускаться оператором Airflow. (Согласно этому Документ о воздушном потоке)
execute_query = BigQueryInsertJobOperator(
task_id = "execute_query_task",
configuration = {
"query": {
"query" : "{% include 'folder/final_tableA.sql' %}",
"useLegacySql": False,
}
}
)
что работает отлично. Но мой вопрос здесь в том, что если мне нужно динамически изменить имя файла или папки. Этот оператор запускается внутри цикла for списка таблиц, например. таблица А, таблица Б, таблица С. . . Как я могу отформатировать строку внутри этого шаблона?
Это то, что я пытался, но не удалось
table = "tableB"
execute_query = BigQueryInsertJobOperator(
.
.
.
" "query" : {% include 'folder/final_{}.sql'.format(table) %}"
и получил эту ошибку
jinja2.exceptions.TemplateNotFound: folder/final_{'json': None, 'value': None}.sql
Отсутствие DAG не помогает, но вы пробовали?
"query": "{{% include 'folder/final_{}.sql'%}}".format(table)
{{
должен выполнять экранирование строки шаблона с помощью format
.