我需要设计一个接近实时的系统,其中文档(具有字段:id,关键字,时间戳)正在添加到系统中。要求是从最近x分钟内添加到系统的文档中获取top-k关键字。典型的文档添加速率约为100个文档/秒,未来可能会增加(因此技术应该是水平可扩展的)。
我正在考虑使用solr-facets (带有分片)来生成top-k关键字,我有点担心solr的高写入/秒。另一种选择是使用Cassandra,但不确定它将如何扩展范围查询(以计算聚合),因为OrderPreservingPartitioner可能会使分配负载变得困难。
发布于 2012-01-06 23:39:04
这听起来像是Complex Event Processing问题,而不是数据库或搜索问题。你不太关心保存数据,而是关心实时获取关键字趋势或类似的东西。您需要查看的一些供应商/库有(有许多被省略的):
Microsoft/.NET:
StreamInsight -微软的CEP产品
Reactive Extensions for .NET -用于流处理的.NET扩展
Java:
Esper -非常流行的开放源码软件流处理库
Hadoop上的Storm流处理,可能会扩展到极大的数据量
第三方/专有(不会对此发表评论,对此了解不多):
StreamBase
Aleri
发布于 2013-04-28 15:14:33
同时使用sql和nosql。
使用sql进行查询,使用nosql处理复杂数据。
并在考虑他们的需求的情况下解决每个问题。
https://stackoverflow.com/questions/8759682
复制相似问题