gpt4 book ai didi

python - Pandas 到 Sql Server 的速度 - python 批量插入?

转载 作者:行者123 更新时间:2023-12-02 05:58:11 26 4
gpt4 key购买 nike

这可能是一个广泛讨论的话题,但我还没有找到“答案”。我每月都会将大表插入 Azure SQL Server。我用 python 和 Pandas 处理内存中的原始数据。我真的很喜欢 Pandas 的速度和多功能性。

示例 DataFrame 大小 = 520 万行、50 列、分配的 250 MB 内存

将处理后的 Pandas DataFrame 传输到 Azure SQL Server 始终是瓶颈。对于数据传输,我使用了to_sql(与sqlalchemy)。我尝试了 fast_executemany、各种 block 大小等参数。

到目前为止,我发现的最快方法是将 DataFrame 导出到 csv 文件,然后使用 SSMS、bcp、Azure Blob 等将其批量插入到 SQL Server 中。

但是,我正在考虑绕过 csv 文件创建来执行此操作,因为我的 df 已设置所有 dtypes,并且已加载到内存中。

仅使用 python/Pandas 将此 df 传输到 SQL Server 的最快方法是什么?我也对使用二进制文件传输等解决方案感兴趣 - 只要我消除平面文件导出/导入。

谢谢

最佳答案

我遇到了类似的问题,我使用 BCP 实用程序解决了它。瓶颈问题的基本描述是它似乎使用 RBAR 数据输入,如 Row-By-Agonizing-Row 插入,即一个插入语句/记录。采用批量插入路线节省了我很多时间。当我跨过 100 万条以上记录的阈值时,真正的好处似乎就来了,而您似乎已经远远领先了。

Link to utility:https://github.com/yehoshuadimarsky/bcpandas

关于python - Pandas 到 Sql Server 的速度 - python 批量插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68654842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com