维护每小时表NoSql

时间:2012-09-18 13:50:31

标签: redis cassandra

我需要维护存储大量计数器的每小时表。我打算随时保留当前的小时表和上一小时的表格,因为较旧的数据对我来说并不重要。

对于前。如果时间是下午4点30分,我将从下午3点到下午4点有一个小时表,当前每小时表有4:00 - 4:30。一旦时间跨越下午5:00,我删除下午3:00-4:00表。

每小时表的最大大小将增加到7-8 gb,查询是高度并发和面向写入的(10:1写入:读取,每秒20,000次写入,平均每秒读取2000次)。 / p>

由于数据的大小很小(我的数据库中最大10gb)并且所有查询都是计数器增量,我应该选择像Cassandra(计数器列)或内存数据库(如Redis)这样的密钥存储库。 (我计划对数据库进行分区以分割巨大的写入负载)?

感谢。

1 个答案:

答案 0 :(得分:1)

这听起来像是内存处理的任务:HashMap比最快的数据库快得多。所以,我建议你看看hazelcast(http://www.hazelcast.com/)或风暴(https://github.com/nathanmarz/storm)。

可能会将计数器定期转储到某些内存数据库(如Redis或Memcached),以使查询更简单。但它纯粹在内存中可行,完全没有任何数据库后端。

Cassandra对于这项任务来说看起来有点过分了:当你需要以复制和高可用的方式永久存储数TB的数据时,这真是太棒了,但是如果你以前从未做过这样的话,那么将它设置为重负载并不是一件容易的事。