Вы можете, но вам нужно беспокоиться о том, как ваши параметры будут отображаться. В этом случае вы передаете массив и напрямую отрисовываете его в операторе SQL. Это напечатает [1, 2, 3]
в операторе SQL, что, конечно, недопустимо SQL.
Airflow использует Jinja для визуализации шаблонов. Чтобы получить правильное выражение SQL, вы можете использовать для циклов в Jinja для рендеринга параметров. Airflow также поддерживает добавление ваших собственных функций для использования в Jinja. Это означает, что вам нужно создать плагин Airflow . Например, вы можете добавить следующий макрос:
def render_list_sql(list):
return ', '.join(list)
Если вы правильно импортировали его как плагин, ваш шаблон sql превратится в следующее:
Select hotel_name from hoteldetails where id in ({{ macros.render_list_sql(params.hotel_ids) }});