<分区>
我正在用 Python 编写一个数据处理库,它可以将各种来源的数据读取到内存中,对其进行处理,然后将其导出为各种不同的格式。我正在将这些数据加载到内存中,但我正在处理的一些数据集可能特别大(超过 4 Gig)。
我需要一个开源库作为后备存储,以优雅地处理大型数据集。它需要能够动态改变数据结构(添加、重命名和删除列),并且应该支持相当快的迭代。理想情况下,它应该能够处理任意大小的字符串和整数(就像 python 一样),但如果需要,我可以将其构建到库中。它需要能够处理缺失值。
有人有什么建议吗?
只要您没有复杂的连接,面向文档的数据库就应该能够很好地应对这种工作负载。
常见的代表是CouchDB或 MongoDB .
它们都非常适合 MapReduce 之类的算法(这包括遍历所有数据集)。如果您想将行与新数据合并,您将希望对“表格”进行排序或快速访问单个元素:两者都归结为拥有索引。
面向文档的数据库通过具有不同架构的文档来支持多个“表”。他们可以毫无问题地查询具有特定架构的文档。
我不认为您会找到一个轻量级解决方案来处理多个 4 GB 数据集并满足您列出的要求。尤其是动态数据结构很难快速实现。