我目前使用sqlalchemy包,安装的包是1.3.16。我的python版本是3.6.7。我可以使用sqlalchemy将小数据集写入sql server和\u sql,但是当我尝试将1.1m行数据集写入sql server时,需要几个小时。从我的在线研究中,我看到sqlalchemy有可选的参数method='multi'选项。但是当我使用它时,我得到了一个错误,'to\u sql'没有参数'method'。这是我的密码。如果我使用相同的代码,但没有'method'参数,它可以工作,但速度非常慢。
import sqlalchemy
import math
input_num_of_cols=len(input.columns)
chunknum=math.floor(2000/input_num_of_cols)
engine = create_engine("mssql+pyodbc://@CRSQLDEV04")
conn = engine.connect()
input.to_sql('Input',con=conn,chunksize=chunknum, method = 'multi', if_exists = 'append', index = False, schema = 'ABC.dbo')
你知道我用的是sqlalchemy软件包吗?还是我的python版本?
谢谢你,拉梅什
1条答案
按热度按时间z4iuyo4d1#
正如@gord简要提到的,它是
pandas
在这种情况下这很重要。由于0.24.0,pandas.to\ sql()中有一个方法参数,您可以在其中定义自己的插入函数或仅使用
method='multi'
告诉pandas在一个insert查询中传递多行,这使它的速度更快。只要确保你有正确版本的
pandas
,即任何高于0.24.0