用于存储Erlang统计信息的最佳数据库

时间:2011-01-31 14:30:51

标签: database erlang

我需要选择一个用于存储统计数据的数据库(实际上这是一系列时间戳值数据)。我知道几乎任何数据库都可以处理这个问题,但有几个要求:

  • 它应该很快;
  • 它应该能够处理很多 数据(10千兆字节)并拼接它 快;
  • 它应该有稳定,保持 和Erlang的便捷界面;
  • 应该可以从Python获得;
  • 它应该能够做出一些东西 喜欢名为“封顶的东西” 收藏“在mongodb:集合 带有上限大小的旧数据 如果尺寸达到,则重写 限制。

我想到了mongo,但emongo似乎有点死了 - 最后一次提交是在7个月前做出的。

4 个答案:

答案 0 :(得分:3)

Riak可能是个不错的选择(这里是Riak comparison to MongoDB)。它是用Erlang编写的,具有分布式,容错性和线性扩展性。它有clients用于Erlang,Javascript,Java,PHP,Python,Ruby。一个REST接口,一个protobuf接口和许多其他好东西(Map Reduce,链接,复制,前/后提交挂钩,......)。它是开源的,由Basho维护。 Basho还有commercial offering的Riak以及一些额外的功能(如多站点复制,SNMP监控等),但操作系统版本中有很多值。

根据您的需要,将两种技术结合起来可能是有意义的。例如,您可以使用内存存储(例如Redis)来提升系统速度,并使用Riak来保存数据。 Redis + Riak是一个非常甜蜜的筹码。

答案 1 :(得分:1)

我认为postgresql和pgsql驱动程序对你来说是最好的解决方案。

答案 2 :(得分:1)

磁盘上的文件已旋转,可以满足您的需求。关键是你不想快速搜索数据。

答案 3 :(得分:0)

redis是一个非常有竞争力的竞争者。

唯一的当前限制是数据集的大小,它必须在内存中完整存储或使用VM方法,其中只有密钥空间必须适合内存(但实际上有一些空余空间)数据会很好)但启动时间非常慢。

开发人员Antirez正在将后端重写为diskstore这个应该解决你的问题的东西。它还没有出炉,但我对这个项目很有信心。

关于上限集合,redis没有直接处理方法。但是LTRIM功能可以帮助你。