在Airflow中,我们可以在JdbcOperator中执行sql的输出吗?

在Airflow中,我们可以在JdbcOperator中执行sql的输出吗?,airflow,Airflow,我们可以查看或获取JdbcOperator中执行的sql的输出吗 with DAG(dag_id='Exasol_DB_Checks',schedule_interval= '@hourly',default_args=default_args,catchup=False,template_searchpath=tmpl_search_path) as dag: start_task=DummyOperator(task_id='start_task',dag=dag)

我们可以查看或获取JdbcOperator中执行的sql的输出吗

with DAG(dag_id='Exasol_DB_Checks',schedule_interval= '@hourly',default_args=default_args,catchup=False,template_searchpath=tmpl_search_path) as dag:
      start_task=DummyOperator(task_id='start_task',dag=dag)
      
      sql_task_1 = JdbcOperator(task_id='sql_cmd',
                                jdbc_conn_id='Exasol_db',
                                sql = ['select current_timestamp;','select current_user from DUAL;',"test.sql"],
                                autocommit=True,
                                params={
                                    "my_param": "{{ var.value.source_path }}"}
                                )
      start_task >> sql_task_1

也许您可以根据需要在PythonOperator中使用JdbcHook:

task = PythonOperator(
  task_id='task1',
  python_callable=do_work,
  dag=dag
)
    
def do_work():
  jdbc_hook = JdbcHook(jdbc_conn_id="some_db"),
  jdbc_conn = jdbc_hook.get_conn()
  jdbc_cursor = jdbc_conn.cursor()
  jdbc_cursor.execute('SELECT ......')
  row = jdbc_cursor.fetchone()[0]

task1 > task2