小编Hen*_*son的帖子

Python 的快速键值磁盘存储

我想知道是否有一个带有 Python 绑定的快速磁盘键值存储,它支持对单独键的数百万次读/写调用。我的问题涉及计算一个非常大的语料库(维基百科)中的单词共现,并不断更新共现计数。这涉及使用 64 位密钥和 64 位值读取和写入约 3 亿个值 70 次。

我还可以将我的数据表示为尺寸约为 2M x 2M 的上三角稀疏矩阵。

到目前为止我已经尝试过:

  • Redis(64GB内存不够大)
  • TileDB SparseArray(无法添加值)
  • Sqlite(太慢了)
  • LMDB(批处理事务中的 3 亿个读/写需要几个小时才能执行)
  • Zarr(基于坐标的更新非常慢)
  • Scipy .npz(无法将矩阵保留在内存中用于加法部分)
  • 具有内存映射坐标和数据的稀疏 COO(添加矩阵时 RAM 使用量很大)

目前唯一运行良好的解决方案是 LMDB,但运行时间约为 12 天,这似乎不合理,因为我感觉自己没有处理那么多数据。使用 .npz 将子矩阵(大约 300M 值)保存到磁盘几乎是即时的。

有任何想法吗?

python arrays on-disk key-value sparse-matrix

7
推荐指数
1
解决办法
1271
查看次数

标签 统计

arrays ×1

key-value ×1

on-disk ×1

python ×1

sparse-matrix ×1