Запустить хранимую процедуру в Airflow

#sql-server #stored-procedures #automation #airflow #airflow-scheduler

#sql-сервер #хранимые процедуры #автоматизация #воздушный поток #airflow-планировщик

Вопрос:

Я пытаюсь запустить свою хранимую процедуру в Airflow. Просто я импортировал оператор mssql и попытался выполнить следующее:

 sql_command = """ EXEC [spAirflowTest] """
t3 = MsSqlOperator( task_id = 'run_test_proc',
                    mssql_conn_id = 'FIConnection',
                    sql = sql_command,
                    dag = dag,
                    database = 'RDW')
  

Она завершает эту задачу как успешную. Однако задача даже не выполняется. Поскольку я не получаю никакой ошибки от system, я также не могу идентифицировать ошибку. Чтобы определить, поступила ли она на мой Microsoft sql server, я проверил с помощью профилирования данных, и кажется, что сервер получает команду, но не выполняет ее. Действительно, я вижу команду sql в инструменте профилирования данных.

Когда я запускаю команду для чтения чего-либо, например :

 select *
from sys.tables
  

она также возвращает результат с успехом. Как я могу решить эту проблему? Есть ли кто-нибудь, кто сталкивался с этой проблемой?

Ответ №1:

 sql_command = """ EXEC [spAirflowTest] """
t3 = MsSqlOperator( task_id = 'run_test_proc',
                    mssql_conn_id = 'FIConnection',
                    sql = sql_command,
                    dag = dag,
                    database = 'RDW',
                    autocommit = True)
  

добавление автоматической фиксации, как указано выше, решило проблему