CN107590157B - 一种数据存储方法、数据查询方法及相关设备 - Google Patents
一种数据存储方法、数据查询方法及相关设备 Download PDFInfo
- Publication number
- CN107590157B CN107590157B CN201610536602.8A CN201610536602A CN107590157B CN 107590157 B CN107590157 B CN 107590157B CN 201610536602 A CN201610536602 A CN 201610536602A CN 107590157 B CN107590157 B CN 107590157B
- Authority
- CN
- China
- Prior art keywords
- data
- hash
- original
- original data
- time period
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种数据存储方法、数据查询方法及相关设备,该方法包括:获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值;每隔设定时间段,确定所获取的各数据对象的原始数据集合,一原始数据集合包括一数据对象的至少一原始数据,一设定时间段划分有多个时间点;确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,并确定各原始数据集合所对应的各时间点的数据值;对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据;存储各原始数据集合对应的目标存储数据。本发明实施例提供的数据存储方法,可降低数据存储占用的存储空间。
Description
技术领域
本发明涉及数据存储技术领域,具体涉及一种数据存储方法、数据查询方法及相关设备。
背景技术
随着数据的爆炸式增长,数据存储技术在各场景应用极广;一种典型的数据存储应用场景为,对云计算平台中不断产生的监控数据进行存储,云计算平台中包含有众多的计算设备(如物理服务器,虚拟机,交换机等)及服务程序(服务程序可能设置在某一计算设备中),为保障云计算平台的正常运行,需要对云计算平台中计算设备或服务程序进行监控,而监控这些计算设备或服务程序将产生大量的监控数据,因此对这些不断产生的监控数据进行存储,显得尤为必要;数据存储的应用场景当然不仅是针对监控数据,还可能针对网络服务的用户数据、工厂设备运行日志等数据进行存储。
在对数据进行存储时,要求数据存储占用的存储空间能够尽可能的小,然而,目前的数据存储方式主要是,采用特定的压缩算法,将数据进行压缩后处理,这种数据存储方式能够降低的存储空间占用量较为有限;因此,提供一种新的数据存储方式,以进一步的降低数据存储占用的存储空间,成为了本领域技术人员需要考虑的问题。
发明内容
有鉴于此,本发明实施例提供一种数据存储方法、数据查询方法及相关设备,以降低数据存储占用的存储空间。
为实现上述目的,本发明实施例提供如下技术方案:
一种数据存储方法,包括:
获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值;
每隔设定时间段,确定所获取的各数据对象的原始数据集合,一原始数据集合包括一数据对象的至少一原始数据,一设定时间段划分有多个时间点;
确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,并确定各原始数据集合所对应的各时间点的数据值;
对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据;
存储各原始数据集合对应的目标存储数据。
本发明实施例还提供一种数据查询方法,包括:
根据需查询数据的数据对象的标识生成第一哈希命名,根据需查询数据的数据生成时间对应的设定时间段的时间段标志生成第一哈希键;基于第一哈希命名,第一哈希键构建需查询数据的第一数据查询请求;
根据所述第一数据查询请求在数据库中进行数据查询;
从所述数据库中查询到哈希命名与所述第一哈希命名匹配,且哈希键与所述第一哈希键匹配的哈希数据,得到该哈希数据的哈希值。
本发明实施例还提供一种数据存储设备,包括:
数据获取模块,用于获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值;
数据集合确定模块,用于每隔设定时间段,确定所获取的各数据对象的原始数据集合,一原始数据集合包括一数据对象的至少一原始数据,一设定时间段划分有多个时间点;
集合对应时间点确定模块,用于确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,并确定各原始数据集合所对应的各时间点的数据值;
压缩处理模块,用于对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据;
存储模块,用于存储各原始数据集合对应的目标存储数据。
本发明实施例还提供一种数据查询设备,包括:
第一查询请求构建模块,用于根据需查询数据的数据对象的标识生成第一哈希命名,根据需查询数据的数据生成时间对应的设定时间段的时间段标志生成第一哈希键;基于第一哈希命名,第一哈希键构建需查询数据的第一数据查询请求;
查询模块,用于根据所述第一数据查询请求在数据库中进行数据查询;
查询结果确定模块,用于从所述数据库中查询到哈希命名与所述第一哈希命名匹配,且哈希键与所述第一哈希键匹配的哈希数据,得到该哈希数据的哈希值。
基于上述技术方案,本发明实施例提供的数据存储方法包括:获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值;每隔设定时间段,确定所获取的各数据对象的原始数据集合,一原始数据集合包括一数据对象的至少一原始数据,一设定时间段划分有多个时间点;确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,并确定各原始数据集合所对应的各时间点的数据值;对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据;存储各原始数据集合对应的目标存储数据。可见,本发明实施例可将一设定时间段划分为多个时间点,进而每隔设定时间段,确定所获取的各数据对象的原始数据集合在各时间点的数据值,从而对各原始数据集合所对应的各时间点的数据值进行压缩,可极大的减小每隔设定时间段所获取的各数据对象的原始数据集合的存储占用空间。本发明实施例提供的数据存储方法,可降低数据存储占用的存储空间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的数据存储系统的结构框图;
图2为本发明实施例提供的数据存储方法的流程图;
图3为本发明实施例提供的数据存储方法的另一流程图;
图4为本发明实施例提供的数据存储方法的再一流程图;
图5为带有本发明实施例提供的数据存储功能的云计算平台的示意图;
图6为本发明数量提供的数据存储设备的组件示意图;
图7为将编码数据转换为16进制字符串的示意图;
图8为对16进制字符串进行压缩的示意图;
图9为Mysql存储结构的示意图;
图10为本发明实施例提供的数据查询方法的流程图;
图11为本发明实施例提供的数据查询方法的另一流程图;
图12为本发明实施例提供的数据查询方法的再一流程图;
图13为本发明实施例提供的数据存储设备的结构框图;
图14为本发明实施例提供的数据存储设备的硬件结构示意图;
图15为本发明实施例提供的数据查询设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的数据存储系统的结构框图,参照图1,该数据存储系统可以包括:数据存储设备10,至少一个数据上报设备20,
在本发明实施例中,数据存储设备主要执行本发明实施例提供的数据存储方法,数据存储设备可以是具有数据处理功能的计算设备,可能是设置于网络端的服务器,也可能是设置于用户端的用户设备;
数据上报设备可不断的向数据存储设备上传待存储的原始数据,以便数据存储设备针对数据上报设备上报的原始数据进行存储处理;
可选的,在对云计算平台的监控数据进行存储的应用场景下,数据上报设备可以是设置于云计算平台的被监控服务器中的Agent(代理);可选的,在对网络服务的用户数据进行存储的应用场景下,数据上报设备可以是能够采集用户数据的设备;值得注意的是,在数据存储设备存储的不是自身生成的数据的情况下,数据上报设备可以是任意的能够向数据存储设备上报数据的设备。
作为一种替换方式,数据存储设备进行存储处理的原始数据也可以是,数据存储设备自生成的;如数据存储设备可以是用户使用的笔记本电脑等用户设备,用户设备可不断的监控本机的运行数据或者用户使用数据,从而对所监控的本机的运行数据或者用户使用数据进行存储处理。
下面以数据存储设备的角度,对本发明实施例提供的数据存储方法进行介绍。
图2为本发明实施例提供的数据存储方法的流程图,参照图2,该方法可以包括:
步骤S100、获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值;
数据对象为原始数据的生成来源,原始数据的具体数据内容是对该数据对象的预定特征(如数据对象的属性、参数)的数值化表示;
如原始数据以云计算平台的监控数据为例,监控数据的生成来源是云计算平台中需被监控的设备或服务的被监控数据项,相应的,监控数据的数据对象可以认为是被监控的设备或服务的被监控数据项;
又如原始数据以网络服务的用户数据为例,用户数据的生成来源是用户的使用产生的,相应的,用户数据的数据对象可以是使用网络服务的用户;再如原始数据以终端设备的运行数据为例,运行数据的生成来源是基于对CPU、内存等部件的监控产生,相应的,运行数据的数据对象可以是终端设备的CPU、内存等部件;
相应的,数据生成时间可以是从数据对象中采集到原始数据的采集时间,数据值可以是对数据对象的预定特征的数值化表示;
可选的,数据存储设备可不断的接收至少一个数据上报设备上传的待存储的原始数据,从而不断的获取到待存储的原始数据;
可选的,数据存储设备也可不断的自生成待存储的原始数据,从而不断的获取到待存储的原始数据。
步骤S110、每隔设定时间段,确定所获取的各数据对象的原始数据集合,一原始数据集合包括一数据对象的至少一原始数据,一设定时间段划分有多个时间点;
可选的,一原始数据除包括数据生成时间,数据值外,还可以包括数据对象的标识;数据对象的标识可以是数据对象的ID等,可唯一性区分不同数据对象的信息;
数据存储设备可每隔设定时间段,根据已获取的原始数据的数据生成时间及数据对象的标识,确定数据生成时间处于当前设定时间段的各数据对象的至少一原始数据,从而确定出当前设定时间段所获取的各数据对象的原始数据集合;进而以设定时间段为周期,周期性的确定各当前设定时间段所获取的各数据对象的原始数据集合,实现每隔设定时间段,获取到各数据对象的原始数据集合;
本发明实施例可将一设定时间段划分成多个时间点,可选为将一设定时间段均分为多个时间点;
如设定时间段为2个小时,将每分钟作为一个时间点,由于每2小时共120分钟,所以共均分出120个时间点,作为一个例子,2个小时的设定时间段可以均分为0至1分钟,1分钟至2分钟,…119分钟-120分钟的120个时间点,简称为0至119的120个时间点,其中0表示0至1分钟的时间点,119表示119分钟-120分钟的时间点,以此类推;显然,此种时间点定义方式仅为可选的,本发明实施例也可定义1表示0至1分钟的时间点,120表示119分钟-120分钟的时间点,以此类推,从而得到1至120的120个时间点;
显然,本发明实施例也可采用其他方式将一设定时间段划分成多个时间点,具体从设定时间段中划分时间点的方式,本发明实施例并不限制,只要划分出的多个时间点处于设定时间段内即可。
步骤S120、确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,并确定各原始数据集合所对应的各时间点的数据值;
在每隔设定时间段得到各数据对象的原始数据集合后,本发明实施例可在每隔设定时间段得到至少一原始数据集合,且一原始数据集合表示一设定时间段内所获取的一数据对象的原始数据的集合;
针对各原始数据集合,本发明实施例可根据各原始数据的数据生成时间,确定各原始数据的数据生成时间所对应的时间点;如以2个小时的设定时间段划分为0至119的120个时间点,一原始数据的数据生成时间为12点3分钟,则该原始数据对应时间点为2分钟至3分钟,可简称为对应2的时间点;
对于各原始数据集合,在确定各原始数据对应的时间点后,本发明实施例可将各原始数据的数据值与对应的时间点相对应,得到各原始数据的数据值与时间点的对应关系,从而可确定出各原始数据集合所对应的各时间点的数据值,即各原始数据集合中各原始数据对应的时间点与数据值。
步骤S130、对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据;
本发明实施例对原始数据进行压缩主要是,通过对原始数据的数据值进行压缩实现,本发明实施例在每隔设定时间段,确定出所获取的各原始数据集合所对应的各时间点的数据值后,可先对各原始数据集合所对应的各时间点的数据值先编码后压缩;
可选的,对于各原始数据集合,本发明实施例可定义表示各时间点的数据值的长度,及各时间点的数据值的编码数据,如编码数据可定义为:一定字节长度标志+连续的各时间点的数据值;一定字节长度标志可以表示各时间点是否对应有数据值,及有数据值的时间点所对应的数据值的长度;从而本发明实施例可将编码数据按照字节顺序转换成十六进制字符串,然后将转换成的十六进制字符串采用预定压缩算法进行压缩,实现对原始数据集合所对应的各时间点的数据值进行编码压缩,得到目标存储数据。
步骤S140、存储各原始数据集合对应的目标存储数据。
可选的,本发明实施例可在存储设备本地存储所述目标存储数据,也可在数据库中存储所述目标存储数据;可选的,在存储目标存储数据时,本发明实施例可采用Mysql存储结构存储目标存储数据。
本发明实施例提供的数据存储方法包括:获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值;每隔设定时间段,确定所获取的各数据对象的原始数据集合,一原始数据集合包括一数据对象的至少一原始数据,一设定时间段划分有多个时间点;确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,并确定各原始数据集合所对应的各时间点的数据值;对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据;存储各原始数据集合对应的目标存储数据。可见,本发明实施例可将一设定时间段划分为多个时间点,进而每隔设定时间段,确定所获取的各数据对象的原始数据集合在各时间点的数据值,从而对各原始数据集合所对应的各时间点的数据值进行压缩,可极大的减小每隔设定时间段所获取的各数据对象的原始数据集合的存储占用空间。本发明实施例提供的数据存储方法,可降低数据存储占用的存储空间。
本发明实施例提供的数据存储方法的一个可选应用场景可以是,对云计算平台中被监控的设备或服务等数据对象的监控数据进行存储;
数据存储设备可以不断的获取设备或服务的监控数据,且一监控数据可以包括:监控数据的采集时间,被监控的设备或服务的标识,被监控的设备或服务中具体被监控数据项的标识,监控得到的采集值(数据值的一种可选形式);
其中,被监控的设备或服务的标识,被监控的设备或服务中具体被监控数据项的标识可以是数据对象的标识的一种形式,即在云计算平台的数据监控场景下,数据对象的标识可以包括:被监控的设备或服务的标识,被监控的设备或服务中具体被监控数据项的标识;被监控的设备或服务的标识如被监控的服务器的标识,具体被监控数据项的标识如被监控的服务器中的CPU使用率,内存使用率等具体被监控数据项的标识;相应的,监控得到的采集值可以是CPU使用率的具体值等;
监控数据可以是云计算平台的监控Agent采集监控数据后上传给数据存储设备;
数据存储设备每隔设定时间段,可确定同一被监控的设备或服务的同一被监控数据项的监控数据集合,同一被监控的设备或服务的同一被监控数据项为同一数据对象的一种形式;
进而,数据存储设备可根据各监控数据集合中的各监控数据的采集时间和监控得到的采集值,确定各监控数据集合所对应的各时间点的采集值;
对各监控数据集合所对应的各时间点的采集值进行编码压缩,可得到目标存储数据;存储目标存储数据,从而实现对监控数据的压缩存储,减小监控存储的存储占用空间。
可选的,本发明实施例可基于hash(哈希)技术,实现数据存储,在减小数据存储占用空间的基础上,通过哈希命名(hash name),哈希键(hash key)等查询索引的设计,为后续的数据查询提供便利;图3示出了本发明实施例提供的数据存储方法的另一流程图,参照图3,该方法可以包括:
步骤S200、获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值;
步骤S210、每隔设定时间段,确定所获取的各数据对象的原始数据集合,一原始数据集合包括一数据对象的至少一原始数据,一设定时间段划分有多个时间点;
步骤S220、确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,并确定各原始数据集合所对应的各时间点的数据值;
步骤S230、对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据;
步骤S240、至少根据各原始数据集合的数据对象的标识,生成各原始数据集合的目标哈希命名,至少根据各原始数据集合所对应的设定时间段的时间段标志,生成各原始数据集合的目标哈希键,至少根据各原始数据集合对应的目标存储数据,生成各原始数据集合的目标哈希值;
步骤S250、存储各原始数据集合的目标哈希命名、目标哈希键和目标哈希值。
可选的,原始数据集合的目标hash数据可以包括目标哈希命名(目标hash name),目标哈希键(目标hash key)和目标哈希值(目标hash value);
在本发明实施例中,一原始数据集合的目标hash数据中,目标hash name可以至少包括原始数据集合的数据对象的标识;如目标hash name:数据对象的标识;可选的,在云计算平台的数据监控场景下,目标hash name可以是:被监控的设备或服务的标识,被监控的设备或服务中具体被监控数据项的标识;
可选的,目标hash name还可以加入数据生成日期;如目标hash name可以是:数据生成日期,被监控的设备或服务的标识,被监控的设备或服务中具体被监控数据项的标识;
一原始数据集合的目标hash数据中,目标hash key可以包括:原始数据集合所对应的设定时间段的时间段标志;可选的,本发明实施例可将一个自然日划分成多个连续的设定时间段,并定义各个设定时间段对应的时间段标志,则对于各原始数据集合,本发明实施例可根据原始数据集合对应的设定时间段的时间段标志,生成目标hash key;
如设定时间段为2小时,本发明实施例可将一个自然日的24小时划分成12个连续的设定时间段,即0小时至2小时,2小时至4小时,4小时至6小时,6小时至8小时,8小时至10小时,10小时至12小时,12小时至14小时,14小时至16小时,16小时至18小时,18小时至20小时,20小时至22,22小时至24小时;同时,可为各设定时间段定义时间段标志,如0小时至2小时定义时间段标志0,2小时至4小时定义时间段标志2,以此类推,得到12个设定时间段分别对应的12个时间段标志:0/2/4/6/8/10/12/14/16/18/20/22;显然,本发明实施例也可定义0小时至2小时的时间段标志为2,以此类推,得到2/4/6/8/10/12/14/16/18/20/22/24的12个时间段标志;
一原始数据集合的目标hash数据中,目标hash value可以包括:原始数据集合对应的目标存储数据;如本发明实施例可将原始数据集合中各时间点的数据值进行编码压缩所得到的目标存储数据,作为目标hash value。
在云计算平台的数据监控场景下,以设定时间段为两小时,两小时的设定时间段划分的时间点为120个为例,相应的,一原始数据集合的目标hash数据可以包括:
目标hash name:yyyyMMdd,uuid,feature_id;其中,yyyyMMdd表示数据生成日期,uuid表示被监控的设备或服务的标识(如被监控的服务器的ID),feature_id表示被监控数据项的标识(如被监控数据项的ID);
目标hash key:time_interval;其中,time_interval表示原始数据集合对应的设定时间段的时间段标志,time_interval可以从0/2/4/6/8/10/12/14/16/18/20/22中选取,如原始数据集合对应的设定时间段为8小时至10小时,则time_interval可以是8;
目标hash value:各时间点对应的编码压缩后数据值,如2小时120个时间点编码压缩后的数据值。
可选的,本发明实施例可先将每隔设定时间段所获取的各数据对象的原始数据集合,存储在第一数据库中,再在当前设定时间段结束时,通过对第一数据库中当前设定时间段的原始数据集合进行编码压缩处理,实现数据存储;如设定时间段为2小时,本发明实施例可先将2小时内所获取的各数据对象的原始数据集合,存储在第一数据库中,对第一数据库中存储的2小时外的未编码压缩的原始数据集合进行编码压缩处理,实现数据存储;同时,编码压缩处理后的数据可存储入第一数据库和第二数据库;在这个过程中,本发明实施例可引入两次hash数据的生成,来便于数据的存储处理;
图4示出了本发明实施例提供的数据存储方法的再一流程图,参照图4,该方法可以包括:
步骤S300、获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值及数据对象的标识;
步骤S310、至少根据获取的各原始数据的数据对象的标识,各原始数据的数据生成时间所对应的设定时间段的时间段标志,生成各原始数据的初始哈希命名;至少根据获取的各原始数据的数据生成时间对应的时间点,生成各原始时间的初始哈希键;至少根据获取的各原始数据的采集值,生成各原始时间的初始哈希值;
步骤S320、根据各原始数据的初始哈希命名,初始哈希键,初始哈希值,生成各原始数据对应的初始哈希数据,并将各原始数据对应的初始哈希数据写入第一数据库;
在每获取到一原始数据后,本发明实施例可对所获取的原始数据进行预处理,针对各原始数据,按照以下格式生成对应的初始hash数据,并写入第一数据库中:
对于各原始数据,原始数据的初始hash name为:原始数据的数据对象的标识,数据生成时间所对应的设定时间段的时间段标志;如在云计算平台的数据监控场景下,hashname可以是:被监控的设备或服务的标识,被监控的设备或服务中具体被监控数据项的标识,数据生成时间所对应的设定时间段的时间段标志;
可选的,原始数据的初始hash name还可以加入数据生成日期;同时,原始数据在生成初始hash数据后需要存储在第一数据库中,本发明实施例还可在hash name中加入数据未压缩标识,以便后续从第一数据库中根据未压缩标识导出未压缩的原始数据的初始hash数据进行存储处理;
可选的,作为原始数据的初始hash name的一种形式,初始hash name可以为:数据未压缩标识,数据生成日期,被监控的设备或服务的标识,被监控的设备或服务中具体被监控数据项的标识,数据生成时间所对应的设定时间段的时间段标志;
对于各原始数据,原始数据的初始hash key为:数据生成时间对应的时间点;如2小时的设定时间段划分为0至119的120个时间点,一原始数据的数据生成时间为12点3分钟,则该原始数据的数据生成时间对应的时间点为2,相应的,可基于2的时间点生成原始数据的初始hash key;
对于各原始数据,原始数据的初始hash value为:原始数据的数据值;
相应的,在得到上述各原始数据的初始hash name,初始hash key,初始hashvalue后,本发明实施例可生成各原始数据的初始hash数据,并加入第一数据库中。
步骤S330、在当前设定时间段结束时,从第一数据库中导出当前设定时间段所获取的各数据对象的原始数据的初始哈希数据集合;
数据存储设备可对第一数据库每设定时间段存储的同一数据对象的原始数据的初始hash数据进行存储处理,因此第一数据库可存储当前设定时间段内的原始数据的初始hash数据;如设定时间段为2小时(仅为举例),则第一数据库可存储距今2小时内的原始数据的初始hash数据;
可选的,在当前设定时间段结束时,本发明实施例可对第一数据库中的各初始hash数据的初始hash name进行扫描,若扫描到带有数据未压缩标识的初始hash name;则判断初始hash name带有数据未压缩标识的初始hash数据中,初始hash key的时间段标志是否与当前设定时间段相应,若是,则将初始hash name带有数据未压缩标识,初始hashkey的时间段标志与当前设定时间段相应,且初始hash name中数据对象的标识相同的初始hash数据导出,以得到当前设定时间段所获取的同一数据对象的原始数据的初始hash数据集合。
步骤S340、对所导出的各初始哈希数据集合所对应的各时间点对应的数据值,进行压缩,得到各初始哈希数据集合对应的目标存储数据;
可选的,将所导出的当前设定时间段所获取的各数据对象的对应的初始哈希数据集合,作为当前设定时间段所获取的各数据对象的原始数据集合的一种形式;即原始数据集合可以是至少一原始数据形成的集合,也可能是至少一原始数据的初始哈希数据形成的集合;
相应的,图2所示步骤S120确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,可以是确定各初始哈希数据集合中各初始哈希数据所对应的时间点;图2所示步骤S130对各原始数据集合所对应的各时间点的数据值进行压缩,可以是对各初始哈希数据集合所对应的各时间点对应的数据值,进行压缩。
步骤S350、至少根据各初始哈希数据集合的数据对象的标识,生成各初始哈希数据集合对应的目标哈希命名,至少根据各初始哈希数据集合所对应的设定时间段的时间段标志,生成各初始哈希数据集合对应的目标哈希键,至少根据各初始哈希数据集合对应的目标存储数据,生成各初始哈希数据集合对应的目标哈希值;
步骤S360、存储各初始哈希数据集合对应的目标哈希命名、目标哈希键和目标哈希值。
由于一初始哈希数据集合对应一设定时间段所获取的一数据对象的原始数据集合,因此一初始哈希数据集合可以对应一原始数据集合,步骤S360所生成的一初始哈希数据集合对应的目标哈希数据(由目标哈希命名、目标哈希键和目标哈希值构成),可以上文步骤S250所生成的一原始数据集合对应的目标哈希数据相应,且目标hash数据的形式可以一致;
可选的,本发明实施例可将所生成的各目标哈希数据写入第一数据库和第二数据库中,第一数据库和第二数据库不同;在本发明实施例中,第一数据库可存储当前设定时间段内所获取的各原始数据的初始哈希数据,及当前设定时间段后经过编码压缩后的各数据对象的目标哈希数据,第二数据库可存储当前设定时间段后经过编码压缩后的各数据对象的目标哈希数据;以设定时间段为2小时,则第一数据库可存储2小时内所获取的原始数据的初始哈希数据,及2小时后的编码压缩的各数据对象的目标哈希数据,第二数据库可存储2小时后的编码压缩的各数据对象的目标哈希数据;
可选的,第一数据库和第二数据库可以是本地数据库,也可以是网络数据库,也可以其中一个是本地数据库,另一个是网络数据库;
可选的,第一数据库可以是Redis数据库,第二数据库可以是Database数据库。
可选的,本发明实施例提供的数据存储方法可应用于对云计算平台的监控数据进行存储,图5示出了带有本发明实施例提供的数据存储功能的云计算平台的示意图,本发明实施例提供的数据存储方法主要可应用于图5所示的分发路由模块中,即数据存储设备可以设置于分发路由模块中;
图6示出了分发路由模块中的数据存储设备的组件示意图,参照图6,预处理组件可获取云计算平台的接入层传输的原始数据,并处理成初始哈希数据,写入Redis数据库中;Redis数据库为上文第一数据库的一种可选形式;如图5所示,接入层如云计算平台中的Collector模块和Net-Collector模块,接收运行在被监控服务器上的Agent上报过来的原始数据;
压缩存储组件可从Redis数据库中导出当前设定时间段各数据对象的原始数据的初始哈希数据集合,如2小时内的各数据对象的原始数据的初始哈希数据集合,并处理成目标哈希数据,将目标哈希数据写入Redis数据库和Database数据库,Database数据库为第二数据库的一种可选形式;
同时,数据存储设备可提供对外的查询接口,以便的数据查询需要。
在云计算平台的应用场景中,数据存储设备可以服务器实现,至于是采用单台服务器实现,还是多台服务器实现需要根据服务器的性能而定;在服务器的性能较强时,本发明实施例可通过单台服务器实现数据存储设备;如果采用多台服务器实现数据存储设备,则预处理组件可部署至少一台服务器实现,压缩存储组件可部署不同的至少一台服务器实现,Redis数据库和Database数据库也可分别通至少一台服务器实现,可选的,Redis数据库和Database数据库优选分别采用不小于两台服务器实现;
在对云计算平台的监控数据进行存储处理的应用场景下,数据存储设备可接收各Agent上报的原始数据,原始数据可以包括:被监控服务器的ID,被监控数据项的ID,采集时间,采集值;其中,被监控服务器的ID和被监控数据项的ID可以认为是上文所述的数据对象的标识的一种可选形式,采集时间为数据生成时间的一种可选形式,采集值为数据值的一种可选形式;
在云计算平台的数据监控应用领域,每台服务器都会分配一个唯一ID来进行服务器之间的区分;被监控数据项的ID可以是被监控服务器中被监控的具体数据项的ID,比如监控CPU使用率,则可对CPU使用率设置相应的被监控数据项的ID,如100000等;采集值是指对被监控服务器的被监控数据项具体采集的数值,比如监控服务器的CPU使用率,则采集值可以是CPU使用百分比,如50(表示CPU使用率为50%)等;
数据存储设备针对接收的各原始数据,可按照下述格式将原始数据写入Redis数据库中,原始数据为未压缩后的,因此可带有未压缩标识,如通过下述格式生成原始数据的初始hash数据并写入Redis数据库:
初始hash name:un,yyyyMMdd,uuid,feature_id,time_interval;un是固定前缀表示未编码压缩的数据;yyyyMMdd是采集日期(数据生成日期的一种可选形式);uuid是被监控服务器的ID;feature_id是被监控数据项的ID;time_interval是采集时间对应的设定时间段的时间段标志,如每天的24小时按两小时均分成多个设定时间段,得到0/2/4/6/8/10/12/14/16/18/20/22的时间段标志,对于各原始数据可根据采集时间,确定所处于的设定时间段的时间段标志;
例如,Hash name:un,20160516,35E118BC-2C94-499C-B49F-1EFF52BB480D,10005,14可以表示服务器35E118BC-2C94-499C-B49F-1EFF52BB480D的被监控数据项10005在2016年5月16日14点到16点上报的数据,且是未压缩数据;
初始hash key:采集时间对应的时间点;如一个2小时的设定时间段划分为120个时间点,每分钟一个时间点,则hash key可以是原始数据的采集时间所对应的时间点;
初始hash value:采集值。
数据存储设备可在当前设定时间段结束后,如当前2小时结束后,从Redis数据库扫描以un开头的hash key,time_interval对应当前设定时间段,且uuid和feature_id相同的初始hash数据的集合;对于各初始hash数据集合,针对初始hash数据中各hash key的hash value进行编码压缩,生成目标hash数据;
目标hash数据包括:目标Hash name:yyyyMMdd,uuid,feature_id;
目标Hash key:time_interval;
目标Hash value:各时间点的压缩存储后的采集值;如2小时120个时间点压缩存储后的采集值。
针对各初始hash数据集合,如何对各时间点的采集值进行压缩,本发明实施例可以是先编码再压缩;如针对2小时120个时间点的采集值,可编码为“1字节version+60字节长度标志+连续的120个数据点”的编码数据;其中,1字节version表示编码方式的版本,便以日后编码方式升级,60字节长度标志,其中每个点的数据占4bit长度,编码可如下表1所示:
bit位 | 描述 | bit位 | 描述 |
1000 | 保留 | 0000 | 数据占1个字节 |
1001 | 保留 | 0001 | 数据占2个字节 |
1010 | 保留 | 0010 | 数据占3个字节 |
1011 | 保留 | 0011 | 数据占4个字节 |
1100 | 保留 | 0100 | 数据占5个字节 |
1101 | 保留 | 0101 | 数据占6个字节 |
1110 | 数据点未计算 | 0110 | 数据占7个字节 |
1111 | 数据点未上报 | 0111 | 数据占8个字节 |
表1
如上表格,长度标志比较灵活,既可以表示当前时间点有无采集值,也可以表示采集值的总长度;
可将上述的编码数据按照字节顺序转换成16进制字符串,如上述举例的编码数据转换成的16进制字符串如图7所示;
再对转换成的16进制字符串采用snappy算法进行压缩,得到存储用的目标存储数据,即目标hash数据中目标hash value的数据,如上述举例的16进制字符串可压缩成如图8所示。
可选的,本发明实施例可采用Mysql存储结构存储压缩数据,Mysql存储结构可如图9所示。
可选的,本发明实施例还可根据数据生成日期及被监控数据项的标识来定义,各监控数据项在各日期所对应的目标存储数据的表名,并依据表名对各原始数据集合对应的目标存储数据进行分表存储;从而在每一天,根据当天的日期及被监控数据项的标识,生成当天的各被监控数据项的目标存储数据的表名;可选的,如总的被监控数据项的标识为1024个,则按照数据生成日期(yyyyMMdd)及被监控数据项的标识(feature_id)mode 1024可以使用如下表2规则定义目标存储数据的表名:
feature_id mode 1024 | 表名 |
<=206 | bus_data_yyyyMMdd_206 |
>206and<=512 | bus_data_yyyyMMdd_512 |
>512and<=718 | bus_data_yyyyMMdd_718 |
>718and<=1023 | bus_data_yyyyMMdd_1023 |
表2
本发明实施例提供的数据存储方法,可将每隔设定时间段获取的各原始数据集合的各时间点的数据值进行压缩存储,降低数据存储占用的存储空间,同时定义存储数据的hash数据,通过hah数据的hash命名,hash键可为后续的数据查询提供便利。
本发明实施例还提供一种与上述数据存储方法匹配的数据查询方法。图10为本发明实施例提供的数据查询方法的流程图,该方法可应用于数据查询设备;数据查询设备可与上文的数据存储设备是同一设备,也可以是能够与数据存储设备存储数据的数据库(第一数据库或第二数据库)相通信的具有数据查询功能的设备;参照图10,该方法可以包括:
步骤S400、根据需查询数据的数据对象的标识生成第一哈希命名,根据需查询数据的数据生成时间对应的设定时间段的时间段标志生成第一哈希键;基于第一哈希命名,第一哈希键构建需查询数据的第一数据查询请求;
可选的,第一哈希命名(第一hash name)中还可以包括需查询数据的数据生成日期。
步骤S410、根据所述第一数据查询请求在数据库中进行数据查询;
步骤S420、从所述数据库中查询到哈希命名与所述第一哈希命名匹配,且哈希键与所述第一哈希键匹配的哈希数据,得到该哈希数据的哈希值。
可选的,本发明实施例可基于需查询数据的生成日期,数据对象的标识(如被监控服务器的ID,被监控数据项的ID)生成第一hash name,基于需查询数据对应的时间段标志生成第一hash key;从而基于第一hash name,第一hash key构建需查询数据的第一数据查询请求;
例如生成第一hash name为20160516,0EA0089F-A96B-4B77-A939-419D7D04FE6F,10003;第一hash key为8的第一数据查询请求,表示的是查询数据库中hash name表示2016年5月16日,服务器0EA0089F-A96B-4B77-A939-419D7D04FE6F的被监控数据项10003,hashkey表示8至10小时的数据值;
图10所示方法查询的数据库可以是数据存储设备存储数据的第一数据库,或第二数据库。
可选的,本发明实施例还可对未压缩的原始数据进行查询,如对Redis数据库中当前设定时间段内(如2小时内)的原始时间进行查询;
相应的,图11示出了本发明实施例提供的数据查询方法的另一流程图,该方法可应用于数据查询设备,参照图11,该方法可以包括:
步骤S500、根据需查询数据的数据对象的标识,数据生成时间对应的设定时间段的时间段标志,生成第二哈希命名;根据所生成的第二哈希命名构建第二数据查询请求;
可选的,第二hash name还可以包括:需查询数据的生成日期。
步骤S510、根据所述第二数据查询请求在数据库中进行数据查询;
步骤S520、从所述数据库中查询到哈希命名与所述第二哈希命名匹配的哈希数据,得到该哈希数据的哈希值。
可选的,本发明实施例可使用需查询数据的生成日期,数据对象的标识(如被监控服务器的ID,被监控数据项的ID),需查询数据的生成时间对应的设定时间段的时间段标志,生成第二hash name,从而在Redis数据库等第一数据库中,检索hash name与第二hashname匹配的当前设定时间段内获取的原始数据的哈希值;
例如,第二数据查询请求中第二hash name为:un,20160516,5C827803-01B9-4F0F-A6CA-5595C5213226,1200000040,22;表示的是查询数据库中hash name表示2016年5月16日,服务器5C827803-01B9-4F0F-A6CA-5595C5213226的被监控数据项1200000040,在22-24小时的数据值。
可选的,在检索超过一天的数据时,本发明实施例可使用基于数据生成日期及被监控数据项的ID所构建的表名,实现数据查询;
图12示出了本发明实施例提供的数据查询方法的再一流程图,该方法可应用于数据查询设备,参照图12,该方法可以包括:
步骤S600、根据需查询数据的生成日期,被监控数据项的标识构建表名请求,根据需查询数据的被监控服务器的标识,被监控数据项的标识,数据生成时间对应的设定时间段的时间段标志,生成查询条件;
步骤S610、在数据库中查询与所述表名请求相应的分表,在所述分表中查询与所述查询条件对应的数据。
可选的,对于检索1天以上的历史数据进行查询,则使用索yyyyMMdd+feature_idmod 1024来确定表名,并使用被监控服务器的标识,被监控数据项的标识,时间段标志作为查询条件,查询Mysql等数据库,获取到的是压缩后的采集值。
经过研究,采用本发明实施例提供数据存储方法,将每隔设定时间段获取的各原始数据集合的各时间点的数据值进行压缩存储,可最多减少了80%的存储空间占用,且采用特定的hash key和索引进行数据查询,可极大的减小数据查询耗时,将数据检索耗时维持在毫米级。
本发明实施例提供的数据存储方法,可降低数据存储占用的存储空间,且为数据查询的便利性提供基础。
下面对本发明实施例提供的数据存储设备进行介绍,下文描述的数据存储设备可与上文以数据存储设备角度描述的数据存储方法相互对应参照。
图13为本发明实施例提供的数据存储设备的结构框图,参照图13,该数据存储设备可以包括:
数据获取模块100,用于获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值;
数据集合确定模块110,用于每隔设定时间段,确定所获取的各数据对象的原始数据集合,一原始数据集合包括一数据对象的至少一原始数据,一设定时间段划分有多个时间点;
集合对应时间点确定模块120,用于确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,并确定各原始数据集合所对应的各时间点的数据值;
压缩处理模块130,用于对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据;
存储模块140,用于存储各原始数据集合对应的目标存储数据。
可选的,所述原始数据还包括:数据对象的标识;
相应的,数据集合确定模块110具体可用于,每隔设定时间段,根据已获取的原始数据的数据生成时间及数据对象的标识,确定数据生成时间处于当前设定时间段的各数据对象的至少一原始数据,得到当前设定时间段各数据对象的原始数据集合。
可选的,集合对应时间点确定模块120具体可用于,根据各原始数据集合中各原始数据的数据生成时间,确定各原始数据集合的各原始数据的数据生成时间所对应的时间点;将各原始数据集合中各原始数据的数据值与对应的时间点相对应,确定出各原始数据集合中的各原始数据的数据生成时间对应的时间点。
可选的,压缩处理模块130具体可用于,对于各原始数据集合,定义表示各时间点的数据值的长度,及各时间点的数据值的编码数据,得到各原始数据集合对应的编码数据;将各原始数据集合对应的编码数据按照字节顺序转换成十六进制字符串;将各原始数据集合对应的十六进制字符串,采用预定压缩算法进行压缩。
可选的,一个自然日可划分有多个连续的设定时间段,且各个设定时间段定义有对应的时间段标志;在本发明实施例中,数据存储设备还可用于:
至少根据各原始数据集合的数据对象的标识,生成各原始数据集合的目标哈希命名,至少根据各原始数据集合所对应的设定时间段的时间段标志,生成各原始数据集合的目标哈希键,至少根据各原始数据集合对应的目标存储数据,生成各原始数据集合的目标哈希值;
相应的,存储模块140具体可用于,存储各原始数据集合的目标哈希值。
可选的,各原始数据集合的目标哈希命名还包括各原始数据集合的数据生成日期;所述数据对象的标识可以包括:被监控的服务器的标识,及被监控数据项的标识。
可选的,数据存储设备还可用于,在获取至少一数据对象的原始数据后,至少根据获取的各原始数据的数据对象的标识,各原始数据的数据生成时间所对应的设定时间段的时间段标志,生成各原始数据的初始哈希命名;至少根据获取的各原始数据的数据生成时间对应的时间点,生成各原始时间的初始哈希键;至少根据获取的各原始数据的采集值,生成各原始时间的初始哈希值;根据各原始数据的初始哈希命名,初始哈希键,初始哈希值,生成各原始数据对应的初始哈希数据,并将各原始数据对应的初始哈希数据写入第一数据库。
可选的,各原始数据的初始哈希命名还可以包括:数据未压缩标识,各原始数据的数据生成日期;
相应的,数据集合确定模块110具体可用于,在当前设定时间段结束时,从第一数据库中导出当前设定时间段所获取的各数据对象的原始数据的初始哈希数据集合,将所导出的各数据对象的对应的初始哈希数据集合,作为当前设定时间段所获取的各数据对象的原始数据集合。
可选的,数据集合确定模块110在从第一数据库中导出当前设定时间段所获取的各数据对象的原始数据的初始哈希数据集合时,具体可用于,将初始哈希命名带有数据未压缩标识,初始哈希键的时间段标志与当前设定时间段相应,且初始哈希命名中数据对象的标识相同的初始哈希数据导出,以得到当前设定时间段所获取的同一数据对象的原始数据的初始哈希数据集合。
可选的,压缩处理模块130对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据,可以是:对所导出的各初始哈希数据集合所对应的各时间点对应的数据值,进行压缩,得到各初始哈希数据集合对应的目标存储数据。
可选的,数据存储设备还可用于,至少根据各初始哈希数据集合的数据对象的标识,生成各初始哈希数据集合对应的目标哈希命名,至少根据各初始哈希数据集合所对应的设定时间段的时间段标志,生成各初始哈希数据集合对应的目标哈希键,至少根据各初始哈希数据集合对应的目标存储数据,生成各初始哈希数据集合对应的目标哈希值;
相应的,存储模块140具体可用于,存储各初始哈希数据集合对应的目标哈希值。
可选的,数据存储设备还可将各初始哈希数据集合对应的目标哈希值储存入第一数据库和第二数据库,第一数据库与第二数据库不同。
可选的,数据存储设备还可用于,根据数据生成日期及被监控数据项的标识,定义各监控数据项在各日期所对应的目标存储数据的表名;依据表名对各原始数据集合对应的目标存储数据进行分表存储。
数据存储设备的硬件结构可如图14所示,包括:处理器1,通信接口2,存储器3和通信总线4;
其中处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;
处理器1,用于执行程序;
存储器3,用于存放程序;
程序可以包括程序代码,所述程序代码包括计算机操作指令;其中,程序中可以包括:游戏客户端的程序;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,程序可具体用于:
获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值;
每隔设定时间段,确定所获取的各数据对象的原始数据集合,一原始数据集合包括一数据对象的至少一原始数据,一设定时间段划分有多个时间点;
确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,并确定各原始数据集合所对应的各时间点的数据值;
对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据;
存储各原始数据集合对应的目标存储数据。
下面对本发明实施例提供的数据查询设备进行介绍,下文描述的数据查询设备可与上文描述的数据查询方法相互对应参照。
图15为本发明实施例提供的数据查询设备的结构框图,参照图15,该数据查询设备可以包括:
第一查询请求构建模块200,用于根据需查询数据的数据对象的标识生成第一哈希命名,根据需查询数据的数据生成时间对应的设定时间段的时间段标志生成第一哈希键;基于第一哈希命名,第一哈希键构建需查询数据的第一数据查询请求;
查询模块210,用于根据所述第一数据查询请求在数据库中进行数据查询;
查询结果确定模块220,用于从所述数据库中查询到哈希命名与所述第一哈希命名匹配,且哈希键与所述第一哈希键匹配的哈希数据,得到该哈希数据的哈希值。
可选的,数据查询设备还可用于,根据需查询数据的数据对象的标识,数据生成时间对应的设定时间段的时间段标志,生成第二哈希命名;根据所生成的第二哈希命名构建第二数据查询请求;根据所述第二数据查询请求在数据库中进行数据查询;从所述数据库中查询到哈希命名与所述第二哈希命名匹配的哈希数据,得到该哈希数据的哈希值。
可选的,所述第一哈希命名及第二哈希命名还可以包括,需查询数据的数据生成日期。
可选的,数据查询设备还可用于,根据需查询数据的生成日期,被监控数据项的标识构建表名请求,根据需查询数据的被监控服务器的标识,被监控数据项的标识,数据生成时间对应的设定时间段的时间段标志,生成查询条件;在数据库中查询与所述表名请求相应的分表,在所述分表中查询与所述查询条件对应的数据。
本发明实施例提供的数据查询设备的硬件结构可与图14类似,包括:处理器,通信接口,存储器和通信总线;
其中处理器,用于执行程序;
存储器,用于存放程序;
程序可具体用于:
根据需查询数据的数据对象的标识生成第一哈希命名,根据需查询数据的数据生成时间对应的设定时间段的时间段标志生成第一哈希键;基于第一哈希命名,第一哈希键构建需查询数据的第一数据查询请求;
根据所述第一数据查询请求在数据库中进行数据查询;
从所述数据库中查询到哈希命名与所述第一哈希命名匹配,且哈希键与所述第一哈希键匹配的哈希数据,得到该哈希数据的哈希值。
本发明实施例可降低数据存储占用的存储空间,且为数据查询的便利性提供基础。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种数据存储方法,其特征在于,包括:
获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值;
每隔设定时间段,确定所获取的各数据对象的原始数据集合,一原始数据集合包括在设定时间段内所获取的一数据对象的至少一原始数据,一设定时间段划分有多个时间点;
确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,并确定各原始数据集合所对应的各时间点的数据值,并写入第一数据库中;
对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据,其中包括:对于各原始数据集合,定义表示各时间点的数据值的长度,及各时间点的数据值的编码数据,得到各原始数据集合对应的编码数据;将各原始数据集合对应的编码数据按照字节顺序转换成十六进制字符串;将各原始数据集合对应的十六进制字符串,采用预定压缩算法进行压缩,得到各原始数据集合对应的目标存储数据;
存储各原始数据集合对应的目标存储数据至第一数据库和第二数据库,第一数据库与第二数据库不同;所述各原始数据集合对应的目标存储数据至少包括:各原始数据集合的目标哈希命名、目标哈希键和目标哈希值。
2.根据权利要求1所述的数据存储方法,其特征在于,所述原始数据还包括:数据对象的标识;
所述每隔设定时间段,确定所获取的各数据对象的原始数据集合包括:
每隔设定时间段,根据已获取的原始数据的数据生成时间及数据对象的标识,确定数据生成时间处于当前设定时间段的各数据对象的至少一原始数据,得到当前设定时间段各数据对象的原始数据集合。
3.根据权利要求1所述的数据存储方法,其特征在于,所述确定各原始数据集合中的各原始数据的数据生成时间对应的时间点包括:
根据各原始数据集合中各原始数据的数据生成时间,确定各原始数据集合的各原始数据的数据生成时间所对应的时间点;
将各原始数据集合中各原始数据的数据值与对应的时间点相对应,确定出各原始数据集合中的各原始数据的数据生成时间对应的时间点。
4.根据权利要求1所述的数据存储方法,其特征在于,一个自然日划分有多个连续的设定时间段,且各个设定时间段定义有对应的时间段标志;所述原始数据还包括:数据对象的标识;
所述方法还包括:
至少根据各原始数据集合的数据对象的标识,生成各原始数据集合的目标哈希命名,至少根据各原始数据集合所对应的设定时间段的时间段标志,生成各原始数据集合的目标哈希键,至少根据各原始数据集合对应的目标存储数据,生成各原始数据集合的目标哈希值;
所述存储各原始数据集合对应的目标存储数据包括:
存储各原始数据集合的目标哈希值。
5.根据权利要求4所述的数据存储方法,其特征在于,各原始数据集合的目标哈希命名还包括各原始数据集合的数据生成日期;所述数据对象的标识包括:被监控的服务器的标识,及被监控数据项的标识。
6.根据权利要求1所述的数据存储方法,其特征在于,所述方法还包括:
在获取至少一数据对象的原始数据后,至少根据获取的各原始数据的数据对象的标识,各原始数据的数据生成时间所对应的设定时间段的时间段标志,生成各原始数据的初始哈希命名;至少根据获取的各原始数据的数据生成时间对应的时间点,生成各原始时间的初始哈希键;至少根据获取的各原始数据的采集值,生成各原始时间的初始哈希值;
根据各原始数据的初始哈希命名,初始哈希键,初始哈希值,生成各原始数据对应的初始哈希数据,并将各原始数据对应的初始哈希数据写入第一数据库。
7.根据权利要求6所述的数据存储方法,其特征在于,各原始数据的初始哈希命名还包括:数据未压缩标识,各原始数据的数据生成日期。
8.根据权利要求7所述的数据存储方法,其特征在于,所述每隔设定时间段,确定所获取的各数据对象的原始数据集合包括:
在当前设定时间段结束时,从第一数据库中导出当前设定时间段所获取的各数据对象的原始数据的初始哈希数据集合,将所导出的各数据对象的对应的初始哈希数据集合,作为当前设定时间段所获取的各数据对象的原始数据集合。
9.根据权利要求8所述的数据存储方法,其特征在于,所述从第一数据库中导出当前设定时间段所获取的各数据对象的原始数据的初始哈希数据集合包括:
将初始哈希命名带有数据未压缩标识,初始哈希键的时间段标志与当前设定时间段相应,且初始哈希命名中数据对象的标识相同的初始哈希数据导出,以得到当前设定时间段所获取的同一数据对象的原始数据的初始哈希数据集合。
10.根据权利要求8所述的数据存储方法,其特征在于,所述对各原始数据集合所对应的各时间点的数据值进行压缩,得到各原始数据集合对应的目标存储数据包括:
对所导出的各初始哈希数据集合所对应的各时间点对应的数据值,进行压缩,得到各初始哈希数据集合对应的目标存储数据。
11.根据权利要求10所述的数据存储方法,其特征在于,所述方法还包括:
至少根据各初始哈希数据集合的数据对象的标识,生成各初始哈希数据集合对应的目标哈希命名,至少根据各初始哈希数据集合所对应的设定时间段的时间段标志,生成各初始哈希数据集合对应的目标哈希键,至少根据各初始哈希数据集合对应的目标存储数据,生成各初始哈希数据集合对应的目标哈希值;
所述存储各原始数据集合对应的目标存储数据包括:
存储各初始哈希数据集合对应的目标哈希值。
12.根据权利要求11所述的数据存储方法,其特征在于,所述方法还包括:
将各初始哈希数据集合对应的目标哈希值储存入第一数据库和第二数据库,第一数据库与第二数据库不同。
13.根据权利要求1所述的数据存储方法,其特征在于,所述方法还包括:
根据数据生成日期及被监控数据项的标识,定义各监控数据项在各日期所对应的目标存储数据的表名;
依据表名对各原始数据集合对应的目标存储数据进行分表存储。
14.一种数据查询方法,其特征在于,包括:
根据需查询数据的数据对象的标识生成第一哈希命名,根据需查询数据的数据生成时间对应的设定时间段的时间段标志生成第一哈希键;基于第一哈希命名,第一哈希键构建需查询数据的第一数据查询请求;
根据所述第一数据查询请求在第一数据库或第二数据库中进行数据查询,所述第一数据库和第二数据库中的数据采用如权利要求1-13任一项所述的数据存储方法进行存储的;
从所述第一数据库和第二数据库中查询到哈希命名与所述第一哈希命名匹配,且哈希键与所述第一哈希键匹配的哈希数据,得到该哈希数据的哈希值。
15.根据权利要求14所述的数据查询方法,其特征在于,还包括:
根据需查询数据的数据对象的标识,数据生成时间对应的设定时间段的时间段标志,生成第二哈希命名;根据所生成的第二哈希命名构建第二数据查询请求;
根据所述第二数据查询请求在数据库中进行数据查询;
从所述数据库中查询到哈希命名与所述第二哈希命名匹配的哈希数据,得到该哈希数据的哈希值。
16.根据权利要求15所述的数据查询方法,其特征在于,所述第一哈希命名及第二哈希命名还包括,需查询数据的数据生成日期。
17.根据权利要求14所述的数据查询方法,其特征在于,还包括:
根据需查询数据的生成日期,被监控数据项的标识构建表名请求,根据需查询数据的被监控服务器的标识,被监控数据项的标识,数据生成时间对应的设定时间段的时间段标志,生成查询条件;
在数据库中查询与所述表名请求相应的分表,在所述分表中查询与所述查询条件对应的数据。
18.一种数据存储设备,其特征在于,包括:
数据获取模块,用于获取至少一数据对象的原始数据;一所述原始数据包括:数据生成时间,数据值;
数据集合确定模块,用于每隔设定时间段,确定所获取的各数据对象的原始数据集合,一原始数据集合包括在设定时间段内所获取的一数据对象的至少一原始数据,一设定时间段划分有多个时间点;
集合对应时间点确定模块,用于确定各原始数据集合中的各原始数据的数据生成时间对应的时间点,并确定各原始数据集合所对应的各时间点的数据值,并写入第一数据库中;
压缩处理模块,用于对于各原始数据集合,定义表示各时间点的数据值的长度,及各时间点的数据值的编码数据,得到各原始数据集合对应的编码数据;将各原始数据集合对应的编码数据按照字节顺序转换成十六进制字符串;将各原始数据集合对应的十六进制字符串,采用预定压缩算法进行压缩,得到各原始数据集合对应的目标存储数据;
存储模块,用于存储各原始数据集合对应的目标存储数据至第一数据库和第二数据库,第一数据库与第二数据库不同;所述各原始数据集合对应的目标存储数据至少包括:各原始数据集合的目标哈希命名、目标哈希键和目标哈希值。
19.一种数据查询设备,其特征在于,包括:
第一查询请求构建模块,用于根据需查询数据的数据对象的标识生成第一哈希命名,根据需查询数据的数据生成时间对应的设定时间段的时间段标志生成第一哈希键;基于第一哈希命名,第一哈希键构建需查询数据的第一数据查询请求;
查询模块,用于根据所述第一数据查询请求在第一数据库或第二数据库中进行数据查询,所述第一数据库和第二数据库中的数据是采用如权利要求1-13任一项所述的数据存储方法进行存储的;
查询结果确定模块,用于从所述第一数据库和第二数据库中查询到哈希命名与所述第一哈希命名匹配,且哈希键与所述第一哈希键匹配的哈希数据,得到该哈希数据的哈希值。
20.一种计算机可读存储介质,其特征在于,包括若干指令用以执行如权利要求1-13或14-17任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610536602.8A CN107590157B (zh) | 2016-07-08 | 2016-07-08 | 一种数据存储方法、数据查询方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610536602.8A CN107590157B (zh) | 2016-07-08 | 2016-07-08 | 一种数据存储方法、数据查询方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107590157A CN107590157A (zh) | 2018-01-16 |
CN107590157B true CN107590157B (zh) | 2021-03-23 |
Family
ID=61046491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610536602.8A Active CN107590157B (zh) | 2016-07-08 | 2016-07-08 | 一种数据存储方法、数据查询方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107590157B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110401681B (zh) * | 2018-04-20 | 2022-06-24 | 伊姆西Ip控股有限责任公司 | 用于数据传输、数据接收的方法以及电子设备 |
CN110689953A (zh) * | 2019-09-03 | 2020-01-14 | 东软医疗系统股份有限公司 | 数据存储方法及装置、数据查找方法及装置、电子设备 |
CN113626490B (zh) * | 2020-05-08 | 2023-08-25 | 杭州海康威视数字技术股份有限公司 | 数据查询方法、装置及设备、存储介质 |
CN113190623B (zh) * | 2021-05-14 | 2024-05-17 | 京东科技信息技术有限公司 | 数据处理方法、装置、服务器和存储介质 |
CN113378234B (zh) * | 2021-05-27 | 2023-04-07 | 浙江贝才之神网络科技有限公司 | 数据篡改的检测方法、系统、计算机设备以及存储介质 |
CN117591035B (zh) * | 2024-01-18 | 2024-05-10 | 天津医康互联科技有限公司 | 数据集处理方法、装置及计算机可读取存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894153A (zh) * | 2010-06-29 | 2010-11-24 | 武汉绿色网络信息服务有限责任公司 | 一种基于环形存储表的数据动态压缩保存方法 |
CN102479189B (zh) * | 2010-11-23 | 2016-08-03 | 上海宝信软件股份有限公司 | 一种内存中海量时间戳型数据高速均匀访问的索引方法 |
US9152671B2 (en) * | 2012-12-17 | 2015-10-06 | General Electric Company | System for storage, querying, and analysis of time series data |
CN104615599A (zh) * | 2013-11-05 | 2015-05-13 | 中国空间技术研究院 | 海量数据管理方法和设备 |
CN104881481B (zh) * | 2015-06-03 | 2018-05-01 | 广东省机电设备招标有限公司 | 一种存取海量时间序列数据的方法及装置 |
CN105117402B (zh) * | 2015-07-16 | 2018-08-28 | 中国人民大学 | 日志数据分片方法及装置 |
-
2016
- 2016-07-08 CN CN201610536602.8A patent/CN107590157B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107590157A (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590157B (zh) | 一种数据存储方法、数据查询方法及相关设备 | |
JP5187532B2 (ja) | データ収集システム、データ収集方法、およびデータ収集プログラム | |
CN102170455B (zh) | 用于在本地装置和远程装置间更新对象的方法和系统 | |
CN111125089A (zh) | 时序数据存储方法、装置、服务器及存储介质 | |
CN111629081B (zh) | 互联网协议ip地址数据处理方法、装置及电子设备 | |
CN110427368A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN103379140A (zh) | 一种日志处理规则同步方法及相关设备和系统 | |
CN106067142B (zh) | 一种电能质量数据表示方法 | |
CN110198171B (zh) | 数据压缩方法、装置、计算机可读介质及电子设备 | |
CN110019205B (zh) | 一种数据存储、还原方法、装置及计算机设备 | |
CN110704439B (zh) | 数据存储方法及装置 | |
CN113946572A (zh) | 气象数据存储、查询方法及装置 | |
CN115408350A (zh) | 日志压缩、日志还原方法、装置、计算机设备和存储介质 | |
CN116827354B (zh) | 一种文件数据分布式存储管理系统 | |
CN108880559B (zh) | 数据压缩方法、数据解压缩方法、压缩设备及解压缩设备 | |
CN112269726A (zh) | 一种数据处理方法及装置 | |
CN115905168B (zh) | 基于数据库的自适应压缩方法和装置、设备、存储介质 | |
CN110362540B (zh) | 一种数据存储、访客数获取方法及装置 | |
CN110909263A (zh) | 一种身份特征的伴随关系确定方法及装置 | |
CN107070987B (zh) | 用于分布式对象存储系统的数据获取方法及系统 | |
CN109361686A (zh) | 一种减少传感器数据时间冗余的压缩方法 | |
CN113407541B (zh) | 数据采集方法、设备、存储介质及装置 | |
CN110990640B (zh) | 一种数据判定方法、装置、设备及计算机可读存储介质 | |
Hirata et al. | Estimating topological entropy via a symbolic data compression technique | |
CN110362535B (zh) | 一种文件管理方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |