method='multi'在python中不处理sqlalchemy包

xzabzqsa  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(594)

我目前使用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版本?
谢谢你,拉梅什

z4iuyo4d

z4iuyo4d1#

正如@gord简要提到的,它是 pandas 在这种情况下这很重要。
由于0.24.0,pandas.to\ sql()中有一个方法参数,您可以在其中定义自己的插入函数或仅使用 method='multi' 告诉pandas在一个insert查询中传递多行,这使它的速度更快。
只要确保你有正确版本的 pandas ,即任何高于 0.24.0

相关问题