最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

每个“第n个”从收集文件

IT培训 admin 6浏览 0评论

每个“第n个”从收集文件

我期待在存储在MongoDB中不同分辨率返回数据的方法。最优雅的解决方案,我可以预见的是,返回每个“第n”(第二,第三,第十,等等)文件从集合的查询。

我以5秒的间隔存储数据(比如温度),但想看看在数据不同的趋势。

为了找到瞬时趋势,我看过去的720项(1小时)。这部分是容易的。

如果我想看看稍长的趋势,说3个小时,我能找回过去的2160项(3小时),但是这是有更多的时间从服务器到拉,和更多的时间和内存的情节。截至较大的发展趋势看时,小运动是噪音,我会过得更好检索相同数量的文档(720),但只有每3日,仍然给我3小时导致的,与使用相同的资源,为未成年人牺牲的细节。

当我想看看周(120960个文档)或数月(500,000文件)这只会变得更加极端。

我当前的代码收集的每一个文件(N = 1):

db.collection(collection).find().sort({$natural:-1}).limit(limit)

我可以再通过返回的数组中循环,并删除所有的文档时:

index % n != 0

这至少可以节省从处理所有数据的客户端但是这似乎非常低效的,我宁愿数据库处理这部分。

有谁知道做到这一点的方法?

回答如下:

显然,存在蒙戈没有内置的解决方案来解决你的问题。

前进的道路将很巧妙地归档数据,在片段。

所以,你可以存储在一个集合,将容纳不超过每周或每月的数据更多的数据。一个新的月/周是指存储在不同的收集数据。你不会做一个全表扫描,并不会通过这种方式来收集的每一个文件,你在你的问题中提到。您的应用程序代码将决定要查询的集合。

如果我是你的话,我会为蒙戈更适合通用数据库中使用不同的工具。时间序列数据(存储的东西每5秒),可以通过数据库来处理得很好像卡桑德拉,可处理频繁的写操作自如,就像在你的情况。

备用碎片(更新):在收集“week0”总是写当前数据并在后台运行,每周调度,从“week0”历史收藏“week1”,“week2”等移动数据。碎片逻辑取决于您的要求。

每个“第n个”从收集文件

我期待在存储在MongoDB中不同分辨率返回数据的方法。最优雅的解决方案,我可以预见的是,返回每个“第n”(第二,第三,第十,等等)文件从集合的查询。

我以5秒的间隔存储数据(比如温度),但想看看在数据不同的趋势。

为了找到瞬时趋势,我看过去的720项(1小时)。这部分是容易的。

如果我想看看稍长的趋势,说3个小时,我能找回过去的2160项(3小时),但是这是有更多的时间从服务器到拉,和更多的时间和内存的情节。截至较大的发展趋势看时,小运动是噪音,我会过得更好检索相同数量的文档(720),但只有每3日,仍然给我3小时导致的,与使用相同的资源,为未成年人牺牲的细节。

当我想看看周(120960个文档)或数月(500,000文件)这只会变得更加极端。

我当前的代码收集的每一个文件(N = 1):

db.collection(collection).find().sort({$natural:-1}).limit(limit)

我可以再通过返回的数组中循环,并删除所有的文档时:

index % n != 0

这至少可以节省从处理所有数据的客户端但是这似乎非常低效的,我宁愿数据库处理这部分。

有谁知道做到这一点的方法?

回答如下:

显然,存在蒙戈没有内置的解决方案来解决你的问题。

前进的道路将很巧妙地归档数据,在片段。

所以,你可以存储在一个集合,将容纳不超过每周或每月的数据更多的数据。一个新的月/周是指存储在不同的收集数据。你不会做一个全表扫描,并不会通过这种方式来收集的每一个文件,你在你的问题中提到。您的应用程序代码将决定要查询的集合。

如果我是你的话,我会为蒙戈更适合通用数据库中使用不同的工具。时间序列数据(存储的东西每5秒),可以通过数据库来处理得很好像卡桑德拉,可处理频繁的写操作自如,就像在你的情况。

备用碎片(更新):在收集“week0”总是写当前数据并在后台运行,每周调度,从“week0”历史收藏“week1”,“week2”等移动数据。碎片逻辑取决于您的要求。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论