执行流程任务 - 在SSIS中无法正常工作

时间:2017-12-08 12:17:02

标签: python sql-server ssis

我有一个python代码,它读取csv文件,在sql中创建一个表并在该表中插入记录。代码工作得非常好。 SSIS任务大约需要2-3分钟才能运行,没关系,因为代码需要很长时间,但它不会在数据库上创建任何内容。

这是我的代码,

#Import the required libraries
import pandas
import pyodbc
import os

#Set the Current Directory
path="C:/Users/MOLAP/Desktop/Data Warehouse Project/1. Datasets/Structured Data"
os.chdir(path)

#Establish connection with the server and the database
conn_str = (
    r'DRIVER={ODBC Driver 13 for SQL Server};'
    r'SERVER=MOLAP;'
    r'DATABASE=EnergyUsageEffects_Database;'
    r'Trusted_Connection=yes;'
)

cnxn = pyodbc.connect(conn_str)

cursor = cnxn.cursor()

#If a table is present - Truncate it else create the table
if cursor.tables(table='EnergyConsumption_Electrical', tableType='TABLE').fetchone():
    cursor.execute("Truncate table EnergyConsumption_Electrical")
    cnxn.commit()
else:   
    cursor.execute("Create table EnergyConsumption_Electrical (CountryName nvarchar(255), Year nvarchar(255), Unit nvarchar(255), Indicator nvarchar(255), Product nvarchar(255), ConsumptionValue float) ")
    cnxn.commit()


#Read the CSV Inside the dataframe
df = pandas.read_csv("Electrical Energy Types.csv")

#Convert the dataframe into a list
ReqList = df.values.tolist()

#Loop through the list and Insert record after record inside the table
for i in range(len(ReqList)):
    Val1 = ReqList[i][0]
    Val2= ReqList[i][1]
    Val3= ReqList[i][2]
    Val4= ReqList[i][3]
    Val5= ReqList[i][4]
    Val6= ReqList[i][5]
    cursor.execute("insert into EnergyConsumption_Electrical (CountryName, Year, Unit, Indicator, Product, ConsumptionValue) values (?,?,?,?,?,?)", Val1, Val2, Val3, Val4, Val5, Val6)
    cnxn.commit()

这是我在SSIS上的配置,

enter image description here

我在哪里错了?

1 个答案:

答案 0 :(得分:1)

步骤1)从包中删除此任务。

步骤2)创建一个数据流,其中包含指向.csv的平面文件源和指向数据库的OLE DB目标任务。表。

这里没有理由重新发明轮子。 SSIS拥有本机工具,可以使这项任务变得微不足道。