一种数据存储方法与流程

文档序号:15518090发布日期:2018-09-25 18:48阅读:641来源:国知局

本发明涉及数据存储技术领域,具体地说是一种数据存储方法。



背景技术:

数据中心综合管理系统把模块化数据中心(moduledatacenter,mdc)当做一个整体来进行管理,包括:服务器、存储设备、网络设备、虚拟机、ups、配电柜、精密空调、门禁、温湿度传感器、烟雾探测器、温感探测器、漏水传感器、翻转天窗、网络摄像机及设备监控等多种监控对象。

面对规模化部署的mdc,服务器等it设备的数据可以到达成千上万台,面对庞大的调用量及复杂的调用链路,单靠人力难以维护,只能依赖一个全方位监控、稳定、快速的运维监控系统。

数据存储同样重要,数据中心综合管理系统每分钟要拿一个月数据出来,还有比如我们的故障分析,一个模块有异常需要要读取所有机器调用信息、cpu、内存、网络、各种进程信息等,如果机器数特别多,一次读取的数据量会超过一万条记录。

常见数据存储方法从日志里面采集,然后本地汇总打包,再发到全局服务器里面汇总。针对规模化模块化数据中心应用场景,文本日志处理消耗过大,日志格式太多难以维护。有时也会采用自定义文本类型日志上报。

由于业务及后台服务非常多,日志格式增长非常快,难以持续进行维护,而且不管是cpu、网络、存储、统计都出现非常大的压力,难以保证监控系统本身的稳定。



技术实现要素:

本发明实施例中提供了一种数据存储方法,以解决现有技术中的数据维护困难、监控系统不稳定的问题。

为了解决上述技术问题,本发明实施例公开了如下技术方案:

本发明提供了一种数据存储方法,采用多机集群,包括以下步骤:

对key进行多维度分类;

采用hash对数据进行写入、存储和查询;

经数据库接口存入数据库。

在第一种可能的实现方式中,所述对key进行多维度分类具体包括:

将key分为时间-站点和设备类型-设备两种维度。

在第二种可能的实现方式中,采用hash对数据进行写入包括以下方法:

按照时间-站点对数据进行hash计算,得到hash(时间-站点)值;

对hash(时间-站点)值按照设备类型-设备再次进行hash计算,得到hash(时间-站点-设备类型-设备)值;

将hash(时间-站点-设备类型-设备)值保存至数据库。

在第三种可能的实现方式中,采用hash对数据进行存储包括以下方式:

根据维度进行多线程共享内存存储,具体包括:logid+自定义数据字段。

在第四种可能的实现方式中,采用hash对数据进行查询包括以下方法:

采用二分查找法实现前置匹配查询。

在第五种可能的实现方式中,还包括对hash(时间-站点-设备类型-设备)值的均衡处理,包括以下方法:

对时间-站点-设备类型-设备在规定时间内进行重新分配。

由以上技术方案可见,本发明通过将key进行多维度分类,采用多机集群,使用hash对数据进行写入和查询的方式本发明通过增加查询结果,这样实现的查询性能非常高。key分成了时间-站点和设备类型-设备两种类型,能够重复性减少存储空间。通过hash(时间-站点-设备类型-设备)值的均衡处理,减少内存占用。对于选择性高,或者常用的维度,采用共享内存存储,能够彼此隔离,在指定了维度去查的时候可以不用扫描所有的数据。使得数据中心的日志数据存储纳入一个统一框架之下,构建了一个高效、稳定的一种基于规模化模块化数据中心数据存储方法。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一种数据存储方法的流程示意图;

图2为本发明实施例对数据进行写入的方法流程示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

如图1所示,一种数据存储方法,采用多机集群,包括以下步骤:

s1、对key进行多维度分类;

s2、采用hash对数据进行写入、存储和查询;

s3、经数据库接口存入数据库。

因为数据量很大,一台机不可能撑得住,因此本发明采用多机集群,使用hash(时间-站点)对数据进行写入和查询。

对key进行多维度分类具体包括:将key分为时间-站点和设备类型-设备两种维度。能够重复性减少存储空间,不限制数据模型,支持多个维度,支持多个值,允许一个周期内存多个值,能够按时间范围快速读取原数据。

如图2所示,采用hash对数据进行写入包括以下方法:

s201、按照时间-站点对数据进行hash计算,得到hash(时间-站点)值;

s202、对hash(时间-站点)值按照设备类型-设备再次进行hash计算,得到hash(时间-站点-设备类型-设备)值;

s203、将hash(时间-站点-设备类型-设备)值保存至数据库。

对数据写入来说,如果一分钟一条记录,则数据量过大。因此,本发明先缓存一定时间的数据,隔一段时间批量合并成一天一条记录。

采用hash对数据进行存储包括以下方式:

根据维度进行多线程共享内存存储,具体包括:logid+自定义数据字段。对于选择性高,或者常用的维度,采用共享内存,能够彼此隔离,在指定维度去查的时候可以不用扫描所有的数据。

采用hash对数据进行查询包括以下方法:采用二分查找法实现前置匹配查询。

在s203后还包括对hash(时间-站点-设备类型-设备)值的均衡处理,包括以下方法:

对时间-站点-设备类型-设备在规定时间内进行重新分配,减少内存占用。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。



技术特征:

技术总结
一种数据存储方法,采用多机集群,包括以下步骤:对key进行多维度分类;采用hash对数据进行写入、存储和查询;经数据库接口存入数据库。使得数据中心的日志数据存储纳入一个统一框架之下,构建了一个高效、稳定的一种基于规模化模块化数据中心数据存储方法。

技术研发人员:李俊山
受保护的技术使用者:郑州云海信息技术有限公司
技术研发日:2018.04.02
技术公布日:2018.09.25
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1