Airflow - запуск процедур sql (SQL Server) - PullRequest
0 голосов
/ 20 февраля 2019

Я запускаю задачу вручную из пользовательского интерфейса, и она показывает задачу как успешную, но в базе данных ничего не происходит.Обычно я вызываю простую процедуру (без параметров), которая копирует значения из промежуточной таблицы в основную и удаляет содержимое промежуточной таблицы.

from airflow import DAG
from airflow.operators.mssql_operator import MsSqlOperator
from datetime import datetime

dag = DAG("sql_proc_0", "Testing running of SQL procedures",
          schedule_interval = None, catchup = False,
          start_date = datetime(2019, 1, 1))

# [dbo].[LoadData] is the name of the procedure
sql_command = """ 
EXECUTE [dbo].[LoadData] 
"""

task = MsSqlOperator(task_id = 'run_test_proc', mssql_conn_id = 'mssql_azure_test',
                     sql = sql_command, dag = dag, database = 'TestDB')

1 Ответ

0 голосов
/ 20 февраля 2019

В основном auto_commit=False установлено по умолчанию.Когда он установлен на True, он работает (у меня ушло 2 часа, чтобы понять это и после публикации в SO!)

task = MsSqlOperator(task_id='run_test_proc',mssql_conn_id='mssql_azure_test',
                     sql=sql_command,dag=dag,
                     database='TestDB', 
                     auto_commit=True)
...