Airflow 气流-运行sql过程(sql Server)
我正在从UI手动触发任务,它将任务显示为成功,但数据库中什么也没有发生。基本上,我调用的是一个简单的过程(没有参数),它将值从staging表复制到main并删除staging表中的内容Airflow 气流-运行sql过程(sql Server),airflow,Airflow,我正在从UI手动触发任务,它将任务显示为成功,但数据库中什么也没有发生。基本上,我调用的是一个简单的过程(没有参数),它将值从staging表复制到main并删除staging表中的内容 from airflow import DAG from airflow.operators.mssql_operator import MsSqlOperator from datetime import datetime dag = DAG("sql_proc_0", "Testing running o
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')
基本上默认设置为
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)