python - 如何使用 python 3 更快地将批量 csv 数据插入 SQL Server
问题描述
操作系统:Windows 语言:Python 3
只有一列的 csv 文件:
Column1
10000ABC89GH
10000DBC29GH
10300ABC59GK
10120ANC39LH
.
.
位于服务器上的文件夹内。
我需要将此 Column1 值放入另一台服务器上的 SQL Server 表中(与放置 csv 文件的服务器不同)。
我已经使用 Pandas 完成了这项工作,但问题是它非常慢。这意味着我在 2.3 分钟内插入了 3000 条记录。这不会很好,因为我预计会收到大约 250000 条记录,并且会运行几个小时,因为我也会有多个文件。
我尝试的另一个选项是批量插入查询,但由于路径是动态的,我在查询“where”子句中得到了双反斜杠,这导致了格式错误。
如果您能提供帮助,请告诉我,并告诉我最好的方法。
解决方案
Python 没有一流的 SQL Server 批量加载库。如果您安装了 BCP,则可以使用 BCP,如果文件位于 SQL Server 可以看到的某个位置,则可以使用 BULK INSERT。
或者您可以将数据作为 JSON 文档发送到 SQL Server 并在服务器端对其进行解析,这不是绝对最快的加载方式,但使用 pandas 逐行加载要快得多。参见例如:尝试将熊猫数据框插入临时表
推荐阅读
- python - 当列有多个选择时,如何计算数据透视表中的行百分比 - 使用 python pandas
- python - python - 如何在python列表中将更小的元素与更大的奇数元素交换?
- android - Flutter 本地 JSON 更新
- php - 会话没有执行任务
- python - 弄清楚如何让 Discord Bot 在 Python 中发送 DM
- asp.net - 使用 FK 向表中添加记录
- c# - 如何在 C# 中将函数附加在一起?
- dc.js - 如何添加交叉过滤函数filterRange。服务器端的 Dc.js
- python - 为什么你需要在 Python 中为函数返回一个值?
- css - 对齐 Infusionsoft 表单上的输入字段