mongodb - 如何通过平均旧数据来减少 Mongo 数据库

标签 mongodb database nosql

我有一个用于测量的 mongodb,每个测量都有一个文档。每个文档看起来像:

{
 timestamp : 123
 value     : 123
 meta1     : something
 meta2     : something
}

我每秒从多个来源获得测量值,因此数据库很快变得非常大。我有兴趣将最近的信息保持在读取的频率,但较旧的数据,我想定期进行平均以节省空间,并使数据库更快一些。

1.mongo 中最好的方法是什么?

2.是否有更好的数据库,考虑到不同测量的模式不同,固定格式不会很好地工作。 RRD 也不是一个选项,因为我需要动态查询能力。?

最佳答案

<强>1。 mongo 中最好的方法是什么?
使用 capped collections用于日志记录等用例。另一种方法是创建一个“后台进程”,从集合中移动旧数据。

2.是否有更好的数据库,考虑到不同测量的模式不同,固定格式不会很好地工作。 RRD 也不是一个选项,因为我需要动态查询能力。?
Mongodb 非常适合这里。

更新: 另一种方法是将每个数据项存储两次:首先在上限集合中(并使用此集合进行查询)。并创建另一个集合(甚至另一个 logdb)来记录您的事件。

关于mongodb - 如何通过平均旧数据来减少 Mongo 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5115947/

相关文章:

php - 使用 PHP 和 MySQL 更新记录中的 BLOB

php - 当 MYSQL 列值递增 100 时做些什么

amazon-dynamodb - 用于存储不可变时间序列遥测/传感器数据的表设计?

database - Rethinkdb 按包含文本进行完整搜索

Azure 应用服务中的 MongoDB,通过 Docker-Compose

python - 插入数百万个文档 - mongo/pymongo - insert_many

node.js - Mongoose 不返回正则表达式子字符串

mongodb - "foo"与 foo 有何不同,在 mongodb 键 :value pair? 中

database - Grails https session

node.js - Google Cloud Datastore 如何在本地运行?