问题标签 [nosql-aggregation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
342 浏览

messaging - 按时间戳排序的流数据聚合

我有一个用例,我从客户端接收事件,其中一些事件在逻辑上是相关的(属于单个会话),并且基于时间戳的事件之间有明确的顺序。

现在,我想构建一个解决方案,该解决方案应该继续聚合事件,直到以时间戳的递增顺序接收到特定组的最后一个。因此,如果收到不按顺序的事件,则应将其保留到收到之前的事件为止。然后,继续根据特定组的密钥将其存储在 HBase 等数据存储中。

问题是一次此类不完整组的数量可能达到数百万,并且需要能够支持快速附加到不完整组并保持接收到的事件无序的东西。我该怎么办?

0 投票
1 回答
95 浏览

redis - Scaling-window ratings in Redis

I use awesome Redis sorted sets to score users and, then, quickly get user rating by score. Also, my score has "weight", so that one score can give 5 points to user, and another vote can give 2 points, etc. Now if somebody votes for user, I call

ZINCRBY user:votes <vote_weight> <userId>

but now I need to calculate users ratings for the last week, month, year from the current timestamp (like 'moving window')

What is the best way to do it in Redis?

0 投票
2 回答
2009 浏览

java - 使用cloudant的java客户端时如何获取count?

我需要在执行查询时查找文档总数,而无需在 cloudant 中获取它们。

我正在使用 cloudant 客户端https://github.com/cloudant/java-cloudant。通常要获取文档,我使用“findByIndex()”方法。

现在我的要求是“仅”获取 findByIndex() 的第一个参数中指定的选择器可以获取的文档总数。

我不想获取所有文档并在客户端计算它们,因为这将占用所有网络带宽和内存。

从搜索中,我确实通过这里给出的 reduce 函数看到了它的可能性:http: //guide.couchdb.org/editions/1/en/cookbook.html#aggregate

但是如何在 Cloudant 的 java 客户端上使用这个 reduce 函数呢?还有其他方法可以实现这一目标吗?

0 投票
1 回答
580 浏览

performance - Redis 上的 MAX() SQL 等效项

我是 Redis 的新手,现在我在改进我的 stat 应用程序时遇到了问题。生成统计信息的当前 SQL 在这里:

SELECT MIN(created_at), MAX(created_at) FROM table ORDER BY id DESC limit 10000

它将从字段返回MINMAX值。created_at

我已经阅读了RANGE关于SCORINGRedis 的信息,似乎它们可以用来解决这个问题。但我仍然SCORING对最后 10000 条记录感到困惑。它们可以用来解决这个问题,还是有其他方法可以使用 Redis 来解决这个问题?

问候

0 投票
1 回答
1028 浏览

mongodb - 如何在mongodb中聚合时间序列文档

我有一个 mongo 分片集群,我在其中保存来自虚拟机监控系统(zabbix ecc)的数据。现在我想从数据库中获取一些信息,例如一个虚拟机最近 2 天的 avg memfree。我阅读了有关聚合的教程以及与 sql 的比较,但我不明白如何查询时间序列文档(像 mongo 在网络研讨会上建议的那样编写)。

示例:我有一个包含许多这些文档的集合(一个文档代表 1 小时):

我想知道从“2014-10-13T23:00:00.000”到“2014-10-15T23:00:00.000”的平均 memfree。所以我需要对从 13 到 15 的所有值求和(3600*24*2 值)。我认为查询将是这样的,但我不知道如何解释 avg 命令.....

有什么建议吗?

谢谢

编辑:正确答案(适用于一对多指标)是:

产生这个结果:

0 投票
2 回答
181 浏览

cassandra - nosql 中的大数据分析

我正在尝试将包含数百万次点击(几年点击历史)的 postgres 数据库迁移到性能更高的系统。我们当前在 postgres 上运行的分析查询需要很长时间才能完成,并且会降低整个数据库的性能。我一直在研究可能的解决方案,并决定仔细研究 2 个选项:

  • HBase 与 Hadoop (mapreduce)
  • Cassandra 与 Spark

我之前使用过 NoSQL,但从未将其用于分析目的。起初,我对这些数据库提供的分析查询选项很少(缺少 groupBy、count、...)感到有点失望。在阅读了许多文章和演示文稿后,我发现,我需要根据我打算如何读取数据来设计我的架构,并且存储层与查询层是分开的。这增加了更多冗余数据,但是在 NoSQL 的世界中这不是问题。

最终我找到了一个不错的 grails 插件cassandra-orm ,它内部封装了 cassandra counters counters中的 orderBy 功能。但是我仍然担心如何使这种设计可扩展。将来会出现的查询呢,我今天对此一无所知,我该如何设计为此准备的架构?一种选择是使用 Spark,但 Spark 不提供实时数据。

您能给我一些见解或建议,什么是大数据分析的最佳选择。我应该使用实时查询与预聚合查询的组合吗?

谢谢,

0 投票
1 回答
1207 浏览

java - $out 聚合 MongoDB

谁能解释我为什么在Java中当我用“$out”做一个聚合管道时,当我只写这个时,不要把结果写到新集合中:

当我保存聚合结果并对其进行迭代时,会创建新集合并且匹配的结果在里面(Java 在这种情况下显然有错误):

我不明白为什么。

0 投票
0 回答
1422 浏览

mongodb - MongoDB 聚合 - 返回与查询不匹配的文档的默认值

我无法找出正确的聚合管道操作来返回我需要的结果。

我有一个类似于以下的集合:-

这是我到目前为止的聚合:-

这仅返回对匹配电影进行评论的作家,也仅返回至少有 1 位作家评论该电影的网站,但是,我需要返回包含所有作者列表的所有网站,如果得分为 0他们还没有为指定的电影写评论。

所以,我目前得到: -

当我真正需要时:-

谁能指出我正确的方向?

干杯

0 投票
0 回答
64 浏览

sql - 为什么“ sql 不能很好地处理大型集群 - Martin Fowler ”?

我试图了解 NoSQL 的闪光点,并最终在 Martin Fowler 的这段视频中登陆,他其中指出

在此处输入图像描述

他为什么这么说?

SQL 或关系数据库中的什么使其不适合在大型集群中工作?

NOSQL 做了什么来解决这个问题并使其在集群中运行时高效?

0 投票
1 回答
113 浏览

mongodb - 如何使用 MongoDB 聚合管道找到后续结果?

想象一下:

我想创建一个中断报告,告诉“用户 john 有 5 分钟的停机时间”。我现在完全处于黑暗之中,我深入研究了聚合以及 mapReduce,但似乎没有任何东西指向我需要它的方向。我可以使用普通的 javascript 来解决它,但我想避免这种情况,因为 MongoDB 是为这些类型的聚合而设计的。也许我只是陷入困境,需要让它休息一段时间,但也许有人对我有一个很好的解决方案。

所以最好的输出是(我猜):

除了这个“最佳”示例之外,在部署新服务器版本时,系统可能会吞下断开连接。这些大约是 10 秒,为了方便起见,我正在考虑将它们排除在外。