如何使用PostgresOperator在气流中调用存储过程函数



我不确定如何在airflow操作符中调用存储过程-例如存储过程是-调用goal.dba.sp_ctrl_calendar()

我的代码-

from airflow.operators.postgres_operator import PostgresOperator
sp_ctrl_calendar = PostgresOperator(
task_id = 'sp_ctrl_calendar',
sql = 'goal.dba.sp_ctrl_calendar(); end;',
postgres_conn_id = 'redshift',
autocommit = True)

这种方法正确吗?

在postgresql(或redshift(中调用proc,命令为call procname所以你的sql命令应该是这样的:

from airflow.operators.postgres_operator import PostgresOperator
sp_ctrl_calendar = PostgresOperator(
task_id = 'sp_ctrl_calendar',
sql = 'call goal.dba.sp_ctrl_calendar',
postgres_conn_id = 'redshift',
autocommit = True)

正确答案是-

sql_command_1 = 'call goal.dba.sp_ctrl_calendar()'
sp_ctrl_calendar = PostgresOperator(
task_id = 'sp_ctrl_calendar',
sql = sql_command_1,
postgres_conn_id = 'redshift',
autocommit = True)

相关内容

  • 没有找到相关文章

最新更新