标签: python relational-database data-processing
我有几百万份文件。我想要做的很简单,处理文档以提取我需要的信息并将其加载到数据库中。我在Python中使用SQLAlchemy。我也使用multiprocessing来使用我机器上的所有核心。这些文档是带有大量文本的XML。数据库是MySQL,定义了自定义关系模式。
multiprocessing
然而,它运行速度非常慢,并且在6-7小时内仅加载约5万个文档。
有什么方法可以加快这个任务的速度吗?
答案 0 :(得分:0)
有时RDBMS不是答案,这种情况的一个标志是,如果您的数据彼此之间没有关系,例如,如果每个文档都独立存在。
如果您希望搜索某些非结构化数据,请考虑使用pylucene构建可搜索的索引
或者可能将数据放在某些非可靠数据库中,例如mongodb
在任何情况下,尝试确定系统的哪个部分正在减慢进程,我的猜测将是数据库或文件系统,如果这是mysql,你可以做的就是抛出更多的硬件。
优化广泛使用IO的系统的另一种方法是使用像twisted之类的库切换到异步编程,但它有一些学习曲线,所以最好100%确定它需要。