【发布时间】:2015-07-10 08:27:50
【问题描述】:
我有一个现有的 python 脚本,它遍历 XML 文件目录,使用 etree 解析每个文件,并使用 psycopg2 模块将不同点的数据插入 Postgres 数据库模式。这个组合在一起的脚本工作得很好,但现在数据量(XML 文件的数量和大小)正在迅速增长,而 INSERT 语句的数量只是没有扩展。我最终数据库中最大的表已从大约 200,000 个 XML 文件增长到大约 5000 万条记录。所以我的问题是,最有效的方法是:
- 从 XML 中解析数据
- 组装行
- 向 Postgres 插入行
以正确的格式将所有数据写入 CSV,然后使用 COPY_FROM 命令将最终的 CSV 表批量加载到 Postgres 会更快吗?
否则我正在考虑在内存中填充某种临时数据结构,一旦达到一定大小,我就可以将其插入数据库?我只是无法确定这将如何工作的细节。
感谢您对此主题的任何见解,如果需要更多信息来回答我的问题,请告诉我。
【问题讨论】:
标签: python xml postgresql csv