在MongoDB中存储Numpy或Pandas数据

2 投票
1 回答
2380 浏览
提问于 2025-04-18 02:44

我正在考虑在MongoDB中存储我的时间序列数据的最佳方式。在使用MongoDB之外,我是通过numpy数组或pandas数据框来处理这些数据。我看到很多人(比如在这个帖子中)建议将数据进行序列化(也就是“pickle”),然后存储为二进制文件,但我一直以为pickle不应该用于长期存储。这个说法是只针对那些可能会有底层代码变化的数据结构吗?换句话说,numpy数组可能比较稳定,所以用pickle没问题,但pandas数据框可能会出问题,因为pandas还在不断发展变化?

更新:

一个朋友给我推荐了这个链接,似乎是我想要的一个很好的起点:

http://docs.scipy.org/doc/numpy/reference/routines.io.html

numpy有自己的一种二进制文件格式,这种格式应该适合长期存储。一旦我成功实现了这个,我会回来分享我的代码。如果其他人已经实现了这个,我也很乐意接受你的答案。

1 个回答

1

我们创建了一个开源库,可以把数字数据(像Pandas、numpy等)存储到MongoDB里:

https://github.com/manahl/arctic

最棒的是,它使用起来很简单,速度也很快,还支持数据版本管理、多个数据库等等功能。

撰写回答