我试图用JdbcOperator编写多个sql语句,但不确定如何使用模板;或许多sql字符串的分隔符。下面的代码是TemplateNotFound。我创建了与"dags“相同级别的”模板“文件夹。
sql_task = JdbcOperator(
task_id='sql_cmd',
jdbc_conn_id='hive_connection',
template_searchpath='/etc/dev/airflow/templates',
sql='all_sql.sql',
params={"db":'devl_df2_tsa_batch'},
dag=dag
)发布于 2019-01-22 00:29:03
您可以通过以下方式使用它:
列表
sql_task = JdbcOperator(
task_id='sql_cmd',
jdbc_conn_id='hive_connection',
template_searchpath='/etc/dev/airflow/templates',
sql=['select * from table1', 'select * from table2'],
params={"db":'devl_df2_tsa_batch'},
dag=dag
)或
SQL文件
sql_task = JdbcOperator(
task_id='sql_cmd',
jdbc_conn_id='hive_connection',
template_searchpath='/etc/dev/airflow/templates',
sql=['templates/test1.sql','templates/test2.sql'],
params={"db":'devl_df2_tsa_batch'},
dag=dag
)其中,templates/test1.sql、templates/test2.sql文件位于dags文件夹中,每个文件夹包含1个查询。
https://stackoverflow.com/questions/54293839
复制相似问题