gpt4 book ai didi

python - pandas .to_sql 与 RDS 超时

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:55 24 4
gpt4 key购买 nike

我有一个 2200 万行的 .csv 文件(~850mb),我正试图将其加载到 Amazon RDS 上的 postgres 数据库中。它每次都失败(我收到超时错误),即使我将文件分成更小的部分(每部分 100,000 行),甚至当我使用 chunksize 时也是如此。

我现在所做的就是将 .csv 作为数据框加载,然后使用 df.to_sql(table_name, engine, index=False, if_exists='append', chunksize=1000 将其写入数据库)

我正在使用 sqlalchemy 中的 create_engine 创建连接:engine = create_engine('postgresql:database_info')

我已经测试过使用 psycopg2 写入少量数据没有问题,但是写入 1000 行大约需要 50 秒。显然对于 2200 万行行不通。

还有什么我可以尝试的吗?

最佳答案

Pandas 数据框。 to_sql () 方法不是专门为大型插入设计的,因为它不使用 PostgreSQL COPY命令。常规 SQL 查询可能会超时,这不是 pandas 的错,它由数据库服务器控制,但可以根据连接进行修改,请参阅 this page并搜索“statement_timeout”。

我建议您考虑使用 Redshift,它针对数据仓库进行了优化,可以使用 Redshift Copy 直接从 S3 存储桶读取大量数据转储。命令。

如果您无法使用 Redshift,我仍然建议您使用 PostgreSQL COPY 找到一种方法来执行此操作。命令,因为它的发明正是为了规避您遇到的问题。

关于python - pandas .to_sql 与 RDS 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30286775/

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