使用哪种技术(SQL/NoSQL)进行实时数据聚合
我需要设计一个近乎实时的系统,在这个系统中,文档(带有字段:id、关键字、时间戳)被添加到系统中。要求在最后x分钟内从添加到系统的文档中获取top-k关键字。典型的文档添加速率约为100个文档/秒,这在将来可能会增加(因此技术应该是水平可扩展的) 我正在考虑使用solr facets(带切分)来生成top-k关键字,其中我有点担心solr的高写入速率/秒。另一种选择是使用Cassandra,但不确定它将如何扩展范围查询(以计算聚合),因为OrderPreservingPartitioner可能会使负载分配变得困难 这听起来像是个问题,不是数据库或搜索问题。你不太关心如何保存数据,而是关心如何实时获取关键字趋势或类似信息。您希望查看的一些供应商/库包括(有许多遗漏): Microsoft/.NET: -微软的CEP产品 -用于流处理的.NET扩展 Java: -非常流行的OSS流处理库 -Hadoop上的流处理,可能扩展到超大数据量 第三方/专有(不会对此发表评论,对其了解不够):使用哪种技术(SQL/NoSQL)进行实时数据聚合,nosql,aggregate-functions,Nosql,Aggregate Functions,我需要设计一个近乎实时的系统,在这个系统中,文档(带有字段:id、关键字、时间戳)被添加到系统中。要求在最后x分钟内从添加到系统的文档中获取top-k关键字。典型的文档添加速率约为100个文档/秒,这在将来可能会增加(因此技术应该是水平可扩展的) 我正在考虑使用solr facets(带切分)来生成top-k关键字,其中我有点担心solr的高写入速率/秒。另一种选择是使用Cassandra,但不确定它将如何扩展范围查询(以计算聚合),因为OrderPreservingPartitioner可能会
同时使用sql和nosql 查询使用sql,复杂数据使用nosql
编写x2代码。并根据他们的需要解决每一个问题。只是好奇,solr方面会有什么问题?一点问题都没有。它似乎不是适合这项工作的工具。Facets,AFAIK(Grant Ingersoll可以在这里纠正我)允许您根据搜索的属性钻取搜索结果,这对于网站上的产品搜索非常有用。你只关心最后几分钟的事情,然后你就扔掉旧东西。