加快文档处理并加载到数据库中

时间:2014-01-20 19:20:20

标签: python relational-database data-processing

我有几百万份文件。我想要做的很简单,处理文档以提取我需要的信息并将其加载到数据库中。我在Python中使用SQLAlchemy。我也使用multiprocessing来使用我机器上的所有核心。这些文档是带有大量文本的XML。数据库是MySQL,定义了自定义关系模式。

然而,它运行速度非常慢,并且在6-7小时内仅加载约5万个文档。

有什么方法可以加快这个任务的速度吗?

1 个答案:

答案 0 :(得分:0)

有时RDBMS不是答案,这种情况的一个标志是,如果您的数据彼此之间没有关系,例如,如果每个文档都独立存在。

如果您希望搜索某些非结构化数据,请考虑使用pylucene构建可搜索的索引

或者可能将数据放在某些非可靠数据库中,例如mongodb

在任何情况下,尝试确定系统的哪个部分正在减慢进程,我的猜测将是数据库或文件系统,如果这是mysql,你可以做的就是抛出更多的硬件。

优化广泛使用IO的系统的另一种方法是使用像twisted之类的库切换到异步编程,但它有一些学习曲线,所以最好100%确定它需要。