【发布时间】:2020-10-23 06:58:21
【问题描述】:
我一直在尝试每 10 分钟后将大量数据从 csv 导入 Postgres。 在 celery 的帮助下,我同时安排了几项工作。
没有。导入到 postgres 后,csv 中的行数不匹配。
我一直在使用 df.to_sql() 方法将 CSV 写入数据库,它没有抛出任何错误,但数据库中仍然缺少一些行。
根据我的观察,表越来越大会导致行丢失。
是 Postgres 限制吗? 或者是工作的重叠计划导致锁定或其他什么?
【问题讨论】:
-
CSV 文件的格式是否正确?
-
是的,在编写本地系统的相同 csv 时,它不会丢失任何行,但在多个作业并行运行的服务器上,有时会跳过几行(不是每次)
-
我会说这表明您的并行化代码没有正确选择单独作业的边界。
-
如果文件在引号内包含换行符,则行数与行数不同。如果不是这样,那可能是你的代码,因为 PostgreSQL 在这方面非常健壮。
-
我的代码在本地运行数百个文件时运行良好,但在服务器上部署时跳过几行。读入 df 时记录行数。它正确读取所有行,但不知道为什么它在写入数据库时跳过!
标签: python-3.x postgresql import django-celery