mongodb - 希望大牛讨论 树状数据如何选择数据库和设计存储格式

 手机用户2502883075 发布于 2022-10-26 22:33

先上一张图: http://img.blog.csdn.net/20130515221459631&objectId=1010000000202723&token=b024907db11b69952bf88d04d01814c5"> 解释:上图为一棵树形的数据结构,思想为 采集50000台机器的性能数据,每5分钟采集一次,存储两年(两年后数据才可以被删除,所以有730天),每台机器有一个ip地址(50000个机器就有50000个ip地址),多个端口(比如交换机就有:eth0,eth1,...),每个端口采集16个性能数据(收包数量,发包数量,错误包数量...等,也就是图中的key),每个key对应288个value(因为每5分钟采集一次,一天一个key就有288条value。)

我的初步设想是用NOsql来存储这些数据,把日期(就是树的第一层)设计为集合。ip地址(第二层)设计为文档。采用mongodb,端口以及后面的(第三层以及后面的层)设计成子文档。这样 当采集一条数据回来时,就按照树形查找,有则插入数据,无则在路途中添加没有的树枝条。

例如:来了一条数据:2013-5-8. 192.168.10.1. eth0. key1. value4就将value4插入value3下方。

又来了一条数据:2013-5-8. 192.168.10.1.eth1. key1. value1就在eth0下方新生一个eth1枝条,继续添加数据。

但是mongodb的子文档插入(首先要查询待插入的子文档)带有一定的重复性。

对于上述的需求怎么选择一个合理的数据库和设计存储格式呢?

望大家讨论出主意。。。

2 个回答
  • 同问楼上,你的查询需求是什么? 如果仅仅是存储,查询需求很简单的话,建议考虑日志方式存储。 按照你描述的目录结构来存储数据,如果需要统计写一点脚本就可以了,速度不一定比存储在数据库中慢。

    2022-10-27 01:19 回答
  • 你的查询需求是什么???

    2022-10-27 01:19 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有