我正在尝试将.CSV
文件批量插入 SQL Server,但没有取得多大成功。
一点背景:
1.我需要在 SQL Server (2017) 数据库中插入 1600 万条记录。每条记录有 130 列。我在我们的一个供应商的 API 调用的结果中有一个字段.CSV
,我不允许提及。我有整数、浮点数和字符串数据类型。
2.我尝试了通常的方法:BULK INSERT
但我无法通过数据类型错误。我在这里发布了一个问题,但无法使其发挥作用。
3.我尝试使用 python 进行实验,并尝试了我能找到的所有方法,但pandas.to_sql
每个人都警告说它非常慢。我遇到了数据类型和字符串截断错误。与来自 的不同BULK INSERT
。
4.没有太多选择,我尝试了pd.to_sql
,虽然它没有引发任何数据类型或截断错误,但由于我的 tmp SQL 数据库空间不足而失败。尽管我有足够的空间并且我的所有数据文件(和日志文件)都设置为无限制的自动增长,但我也无法传递此错误。
我当时就卡住了。我的代码(对于这pd.to_sql
件作品)很简单:
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine("mssql+pyodbc://@myDSN")
df.to_sql('myTable', engine, schema='dbo', if_exists='append',index=False,chunksize=100)
我不确定还有什么可以尝试的,欢迎任何建议。我见过的所有代码和示例都处理小型数据集(列不多)。我愿意尝试任何其他方法。我会很感激任何指示。
谢谢!