【发布时间】:2014-01-16 22:59:47
【问题描述】:
我对大数据还很陌生,我们有数百万条记录,这些记录的数据方式如下 -
ID Timestamp Status
1. 12:00:00. ON
1. 12:00:35. Off
1. 12:01:01. ON
1. 12:10:00. Off
1. 12:11:00. On
我需要计算它关闭的总时间。这涉及数百万条记录,因此解决方案必须快速。关于我可以通过算法或通过查询做什么的任何想法?我认为一种方法是通过数组迭代数据,但这似乎太耗时了,我相信人们之前已经这样做了。
【问题讨论】:
-
数据格式是什么?你说遍历数组——数组是什么?您可以包含数据库中的实际文档吗?是否也保证事件是有序且独特的? IE。你不能一次又一次地关闭,或者你可以?
-
1.数据格式是json,因为它存储在mongodb中。
-
1.当我指的是数组时,我想说的是我可以编写一个查询,该查询返回并将该数据插入使用 java 的数组中。我将不得不设置一个测试文档,我可以在家里做。我只放了相关文件,但我可以保证它们是独一无二的。是的,由于其他列已更新,您可以一次又一次地关闭。
-
您需要包含一个示例文档,因为您没有非常清楚地描述其结构。
-
基本上我试图在 mongodb 中找到类似 LAG 或 LEAD 函数的东西。有没有办法做到这一点?就像在 mongodb 中查找上一行或下一行一样?
标签: java mongodb algorithm bigdata database