希望大牛讨论 树状数据如何选择数据库和设计存储格式
2013-05-15 22:06
921 查看
先上一张图:
解释:上图为一棵树形的数据结构,思想为 采集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的子文档插入(首先要查询待插入的子文档)带有一定的重复性。
对于上述的需求怎么选择一个合理的数据库(可随意选择数据库)和设计存储格式呢?
ip地址是可添加的(可能过几天又有新的ip地址需要采集),端口也是不定的(有的机器端口多,有的端口少)
望大家讨论出主意。。。
解释:上图为一棵树形的数据结构,思想为 采集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的子文档插入(首先要查询待插入的子文档)带有一定的重复性。
对于上述的需求怎么选择一个合理的数据库(可随意选择数据库)和设计存储格式呢?
ip地址是可添加的(可能过几天又有新的ip地址需要采集),端口也是不定的(有的机器端口多,有的端口少)
望大家讨论出主意。。。
相关文章推荐
- 如何设计一个数据库中间件(支持百亿级别数据存储)
- 如何设计一个数据库中间件(支持百亿级别数据存储)
- 用JAVA如何实现每天1亿条记录的数据存储,数据库方面怎么设计?
- [ mongoDB ] - 文档型数据库设计模式-如何存储树形数据
- ORACLE-在设计数据库时如何选择正确的数据类型
- 文档型数据库设计模式-如何存储树形数据
- 现在电子商务网站建设中数据库如何设计使数据存储量变大
- 文档型数据库设计模式-如何存储树形数据
- [ mongoDB ] - 文档型数据库设计模式-如何存储树形数据 [转]
- 文档型数据库设计模式-如何存储树形数据
- 存储到数据库的文章如何保留原有格式
- 数据库存储历史数据设计注意事项
- MySQL基础教程4 —— 数据类型之存储需求及如何选择正确的类型
- android 用json格式同步数据库数据时遇到null值如何传递
- 设计案例3----利用存储过程和JOB 设计从餐饮ERP数据库将数据抽取、数据清洗到BI数据库
- 存储到数据库的文章如何保留原有格式
- 数据库设计中,日期字段的类型应该如何选择?
- 如何在MongoDB设计存储你的数据(JSON化)?
- 请单击下面的按钮,以重定向到可以选择新数据存储区的页。下面的消息可能会有助于诊断问题: 无法连接到 SQL Server 数据库。
- 树形结构-树形结构的数据存储与数据库表设计