我有一个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上的配置,
我在哪里错了?
答案 0 :(得分:1)
步骤1)从包中删除此任务。
步骤2)创建一个数据流,其中包含指向.csv的平面文件源和指向数据库的OLE DB目标任务。表。
这里没有理由重新发明轮子。 SSIS拥有本机工具,可以使这项任务变得微不足道。