Python pandas to_sql()错误-对于准备好的语句,超出了每个会话20 MB的内存限制
我已经在使用chunksize 50了,我遇到了内存错误。我总共需要上传大约2.5亿条记录,所以如果我使用更小的块大小,我认为它不会在未来十年内完成。关于如何避开这个问题有什么建议吗 数据库=Azure SQL ServerPython pandas to_sql()错误-对于准备好的语句,超出了每个会话20 MB的内存限制,python,sql,pandas,azure,Python,Sql,Pandas,Azure,我已经在使用chunksize 50了,我遇到了内存错误。我总共需要上传大约2.5亿条记录,所以如果我使用更小的块大小,我认为它不会在未来十年内完成。关于如何避开这个问题有什么建议吗 数据库=Azure SQL Server final_df.to_sql('table', con=engine, schema='example', index=False, chunksize=50, if_exists='append', dtype={'ID':sqlalchemy.types.VARCHA
final_df.to_sql('table', con=engine, schema='example', index=False, chunksize=50, if_exists='append', dtype={'ID':sqlalchemy.types.VARCHAR(length=255),'MSA_NAME':sqlalchemy.types.VARCHAR(length=255)})
我想提出一个替代方案 您可以将数据导出为CSV,并将其上载到一个Azure存储服务(例如Blob),您可能可以使用AZCopy来实现 然后使用Azure数据工厂将文件复制/导入到Azure SQL
您可以参考类似的讨论。我通过使用
fast\u executemany=True
和method='multi'
-
engine = sqlalchemy.create_engine('mssql+pyodbc:///?odbc_connect=%s' % params, echo=False, connect_args={'autocommit': True}, fast_executemany=True)
您可以添加odbc语句吗?可能更容易将大容量插入与powershell一起使用,特别是因为您需要插入250m记录。源是什么?
final_df.to_sql('table', con=engine, schema='example', index=False, method='multi', if_exists='append', dtype={'ID':sqlalchemy.types.VARCHAR(length=255),'MSA_NAME':sqlalchemy.types.VARCHAR(length=255)})