CN106648446B - 一种用于时序数据的存储方法、装置及电子设备 - Google Patents
一种用于时序数据的存储方法、装置及电子设备 Download PDFInfo
- Publication number
- CN106648446B CN106648446B CN201510729466.XA CN201510729466A CN106648446B CN 106648446 B CN106648446 B CN 106648446B CN 201510729466 A CN201510729466 A CN 201510729466A CN 106648446 B CN106648446 B CN 106648446B
- Authority
- CN
- China
- Prior art keywords
- data
- time
- time sequence
- sequence data
- preset
- 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
Abstract
本申请公开了一种用于时序数据的存储方法、装置及电子设备、用于时序数据的查询方法、装置、系统及电子设备。其中用于时序数据的存储方法包括:采集待存储的时序数据作为原始时序数据;原始时序数据的属性包括数据标识属性、时间属性和数据值属性,按照至少一个预设时间间隔对相同数据标识的、时间位于预设时间间隔内的原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值,将原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中。采用上述方法能够有效降低数据存储量,从而达到节省存储空间且提高数据查询速度的效果;同时由于将时序数据存储在分布式数据库中,因而能够有效提高存储空间的可扩展性。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种用于时序数据的存储方法、装置及电子设备。本申请同时涉及一种用于时序数据的查询方法、装置及系统,以及又一种电子设备。
背景技术
机器上的性能数据每时每刻不停产生,是一种典型的时间序列数据(简称时序数据)。机器性能数据需要长期的保存,以方便在运营维护时查看机器在指定时间范围内的状态趋势,或者查看某一时刻的详细状态。例如,通过查看应用程序一个月的内存变化趋势,可以判断是否发生了内存泄露;查看某一时刻的QPS,了解该时刻应用程序的压力状况。性能指标是运维的重要手段,通过掌握趋势或详细状态,能够了解机器或者应用程序存在的问题,为运维提供依据。
时间序列数据的典型特点包括:1)产生频率快:每一个监测点一秒钟内可产生多条数据;2)严重依赖于采集时间:每一条数据均要求对应唯一的时间;3)测点多且信息量大:常规的实时监测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据量。总之,机器上产生的性能数据的数据量主要受三方面因素影响,包括机器数量、指标数据、保存时间长度。假设有5万台机器,其中每台机器存在3千个性能指标,每个性能指标每15s产生一个性能数据,每个性能数据占用12个字节(int类型时间4字节+double类型数值8字节),保存时间长度为1年,则需要3PB的存储空间。
随着时间序列数据不断膨胀,必然面临有限的存储空间不能满足存储需求且检索速度降低的问题。对于时间序列数据而言,通常离当前时间最近的数据具有最高的价值,离当前时间越远的数据价值越低。在读取历史数据时,一般是为了判断长时间趋势,不需要十分精确。针对时序数据的这种特性,现有技术提出了分精度存储时序数据的思想,即:对不同时间段的数据做不同精度的压缩,且不同精度的数据保留不同的时间。
例如,采用分精度思想存储时序数据的工具rrdtool。rrdtool是一个单机版的、基于环状数据库的开源工具,提供对时间序列数据多精度存储。由于该工具采用分精度方式存储时序数据,使得存储的数据量相对减少,从而有效降低了对存储空间的需求,且提高了检索速度。然而,该工具基于环状数据库存储时序数据,数据文件由操作系统负责存取,因而,所有数据只能保存在本机磁盘中。由于单机存储空间能够处理的数据规模的有限的,随着时间序列数据不断膨胀,必然导致存储空间不能满足存储需求。例如,对于大型的分布式计算集群,机器规模达到上万台或者更多时,性能数据的规模必然超出了单机处理能力。此外,单机系统在宕机时也无法保证数据可靠性。
综上所述,现有技术存在无法满足对大规模时间序列数据的有效存储与处理的问题。
发明内容
本申请提供一种用于时序数据的存储方法、装置及电子设备,以解决现有技术存在的无法满足对大规模时间序列数据的有效存储与处理的问题。本申请另外提供一种用于时序数据的查询方法、装置及系统,以及又一种电子设备。
本申请提供一种用于时序数据的存储方法,所述用于时序数据的存储方法包括:
采集待存储的时序数据,作为原始时序数据;所述原始时序数据的属性包括数据标识属性、时间属性和数据值属性;
按照至少一个预设时间间隔,对相同数据标识的、时间位于所述预设时间间隔内的所述原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值;
将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中。
可选的,所述将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中,采用如下方式:
根据所述原始时序数据和各个时间粒度的时序数据统计值的数据标识,将所述原始时序数据和各个时间粒度的时序数据统计值存储到为所述数据标识的时序数据预设的存储区域;所述存储区域是指分布式数据库的局部数据库。
可选的,所述分布式数据库包括非关系型数据库;所述为所述数据标识的时序数据预设的存储空间,采用如下步骤获取:
根据预设哈希函数,计算所述数据标识的哈希值;
根据所述哈希值,获取为所述数据标识的时序数据预设的存储区域。
可选的,相同数据标识的所述原始时序数据和各个时间粒度的时序数据统计值分别存储在不同的数据表中;当不同数据标识的时序数据存储在同一存储区域时,位于所述同一存储区域的、不同数据标识的时序数据分别存储在不同的数据表中。
可选的,所述相同数据标识的所述原始时序数据和各个时间粒度的时序数据统计值分别存储在不同的数据表中,采用如下方式:
根据为所述原始时序数据和各个时间粒度的时序数据统计值分别预先设定的数据生命周期,将相同数据标识的所述原始时序数据和各个时间粒度的时序数据统计值分别存储在不同的数据表中。
可选的,相同数据标识的、不同时间的所述原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中;相同数据标识的、相同时间粒度的、不同时间的时序数据统计值分别存储在不同的、以第二预设时间范围为数据组织单位的数据表中;所述第一预设时间范围和所述第二预设时间范围包括预设天数、预设周数、预设月数或预设年数。
可选的,所述分布式数据库包括非关系型数据库;所述原始时序数据存储在以第三预设时间范围为数据组织单位的时序数据记录中;所述第三预设时间范围包括预设分钟数。
可选的,相同数据标识的、不同时间的所述原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中;所述将所述原始时序数据存储于分布式数据库中,包括:
根据所述原始时序数据的时间和所述第一预设时间范围,计算获取存储所述原始时序数据的数据表表名;
根据预设哈希函数,计算所述原始时序数据的数据标识的哈希值,作为包括所述原始时序数据的第一时序数据记录的第一主键列值;以及根据所述原始时序数据的时间和所述第三预设时间范围,计算获取所述第一时序数据记录的时间,作为所述第一时序数据记录的第二主键列值;
获取所述原始时序数据的时间相对所述第一时序数据记录的时间的偏移数值;
判断在所述存储所述原始时序数据的数据表中是否存在以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录;若是,则将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中;若否,则将以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录增加到所述存储所述原始时序数据的数据表中,并将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中。
可选的,在所述判断在所述存储所述原始时序数据的数据表中是否存在以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录之前,还包括:
根据所述存储所述原始时序数据的数据表表名,判断所述存储所述原始时序数据的数据表是否存在;若否,则创建所述存储所述原始时序数据的数据表。
可选的,所述分布式数据库包括非关系型数据库;相同数据标识的、相同时间粒度的、不同时间的时序数据统计值分别存储在不同的、以第二预设时间范围为数据组织单位的数据表中;所述将所述各个时间粒度的时序数据统计值存储于分布式数据库中,包括:
根据所述时序数据统计值的时间、时间粒度和所述第二预设时间范围,计算获取存储所述时序数据统计值的数据表表名;
根据预设哈希函数,计算所述时序数据统计值的数据标识的哈希值,作为存储所述时序数据统计值的第二时序数据记录的第一主键列值;以及将所述时序数据统计值的时间作为所述第二时序数据记录的第二主键列值;
将以所述第一主键列值和所述第二主键列值标识的所述第二时序数据记录增加到所述存储所述时序数据统计值的数据表中,并将所述时序数据统计值的时间和所述时序数据统计值的键值对存储到所述第二时序数据记录的属性列中。
可选的,在所述将以所述第一主键列值和所述第二主键列值标识的所述第二时序数据记录增加到所述存储所述时序数据统计值的数据表中之前,还包括:
根据所述存储所述时序数据统计值的数据表表名,判断所述存储所述时序数据统计值的数据表是否存在;若否,则创建所述存储所述时序数据统计值的数据表。
可选的,所述原始时序数据的数据生命周期可调节;所述原始时序数据的数据生命周期为第一预设生命周期;所述方法还包括:
删除在所述第一预设生命周期之前的所述原始时序数据。
可选的,相同数据标识的、不同时间的所述原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中;所述删除在所述第一预设生命周期之前的所述原始时序数据,采用如下方式:
根据所述第一预设生命周期,删除在所述第一预设生命周期之前的存储所述原始时序数据的数据表。
可选的,所述时序数据统计值的数据生命周期可调节;所述时序数据统计值的数据生命周期为第二预设生命周期;所述第二预设生命周期与所述时间粒度相对应;所述方法还包括:
删除在所述第二预设生命周期之前的所述时序数据的统计值。
可选的,相同数据标识的、相同时间粒度的、不同时间的时序数据统计值分别存储在不同的、以第二预设时间范围为数据组织单位的数据表中;所述删除在所述第二预设生命周期之前的所述时序数据的统计值,采用如下方式:
根据所述第二预设生命周期,删除在所述第二预设生命周期之前的存储所述时序数据统计值的数据表。
可选的,所述时序数据统计值包括最大数据值、最小数据值、数据值的数量以及数据值之和的至少一者。
可选的,所述数据标识属性包括指标名称属性、或者指标名称属性和互联网协议地址属性的组合。
相应的,本申请还提供了一种用于时序数据的存储装置,所述用于时序数据的存储装置包括:
采集数据单元,用于采集待存储的时序数据,作为原始时序数据;所述原始时序数据的属性包括数据标识属性、时间属性和数据值属性;
统计单元,用于按照至少一个预设时间间隔,对相同数据标识的、时间位于所述预设时间间隔内的所述原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值;
存储单元,用于将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中。
可选的,所述将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中,采用如下方式:
根据所述原始时序数据和各个时间粒度的时序数据统计值的数据标识,将所述原始时序数据和各个时间粒度的时序数据统计值存储到为所述数据标识的时序数据预设的存储区域;所述存储区域是指分布式数据库的局部数据库;所述分布式数据库包括非关系型数据库;
所述装置还包括:
获取单元,用于获取为所述数据标识的时序数据预设的存储空间;
所述获取单元包括:
计算子单元,用于根据预设哈希函数,计算所述数据标识的哈希值;
匹配子单元,用于根据所述哈希值,获取为所述数据标识的时序数据预设的存储区域。
可选的,所述分布式数据库包括非关系型数据库;所述原始时序数据存储在以第三预设时间范围为数据组织单位的时序数据记录中;所述第三预设时间范围包括预设分钟数;相同数据标识的、不同时间的所述原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中;
所述存储单元包括第一存储子单元,用于将所述原始时序数据存储于分布式数据库中;
所述第一存储子单元包括:
获取表名子单元,用于根据所述原始时序数据的时间和所述第一预设时间范围,计算获取存储所述原始时序数据的数据表表名;
生成主键子单元,用于根据预设哈希函数,计算所述原始时序数据的数据标识的哈希值,作为包括所述原始时序数据的第一时序数据记录的第一主键列值;以及根据所述原始时序数据的时间和所述第三预设时间范围,计算获取所述第一时序数据记录的时间,作为所述第一时序数据记录的第二主键列值;
计算偏移值子单元,用于获取所述原始时序数据的时间相对所述第一时序数据记录的时间的偏移数值;
判断存储子单元,用于判断在所述存储所述原始时序数据的数据表中是否存在以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录;若是,则将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中;若否,则将以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录增加到所述存储所述原始时序数据的数据表中,并将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中。
可选的,所述第一存储子单元还包括:
判断建表子单元,用于根据所述存储所述原始时序数据的数据表表名,判断所述存储所述原始时序数据的数据表是否存在;若否,则创建所述存储所述原始时序数据的数据表。
可选的,所述分布式数据库包括非关系型数据库;相同数据标识的、相同时间粒度的、不同时间的时序数据统计值分别存储在不同的、以第二预设时间范围为数据组织单位的数据表中;
所述存储单元包括第一存储子单元,用于将所述各个时间粒度的时序数据统计值存储于分布式数据库中;
所述第二存储子单元包括:
获取表名子单元,用于根据所述时序数据统计值的时间、时间粒度和所述第二预设时间范围,计算获取存储所述时序数据统计值的数据表表名;
生成主键子单元,用于根据预设哈希函数,计算所述时序数据统计值的数据标识的哈希值,作为存储所述时序数据统计值的第二时序数据记录的第一主键列值;以及将所述时序数据统计值的时间作为所述第二时序数据记录的第二主键列值;
增加存储子单元,用于将以所述第一主键列值和所述第二主键列值标识的所述第二时序数据记录增加到所述存储所述时序数据统计值的数据表中,并将所述时序数据统计值的时间和所述时序数据统计值的键值对存储到所述第二时序数据记录的属性列中。
可选的,所述第二存储子单元还包括:
判断建表子单元,用于根据所述存储所述时序数据统计值的数据表表名,判断所述存储所述时序数据统计值的数据表是否存在;若否,则创建所述存储所述时序数据统计值的数据表。
可选的,所述原始时序数据的数据生命周期可调节;所述原始时序数据的数据生命周期为第一预设生命周期;所述装置还包括:
第一删除单元,用于删除在所述第一预设生命周期之前的所述原始时序数据。
可选的,所述时序数据统计值的数据生命周期可调节;所述时序数据统计值的数据生命周期为第二预设生命周期;所述第二预设生命周期与所述时间粒度相对应;所述装置还包括:
第二删除单元,用于删除在所述第二预设生命周期之前的所述时序数据的统计值。
此外,本申请还提供了一种电子设备,所述电子设备,包括:
显示器;
处理器;以及
存储器,所述存储器被配置成存储用于时序数据的存储装置,所述用于时序数据的存储装置被所述处理器执行时,包括如下步骤:采集待存储的时序数据,作为原始时序数据;所述原始时序数据的属性包括数据标识属性、时间属性和数据值属性;按照至少一个预设时间间隔,对相同数据标识的、时间位于所述预设时间间隔内的所述原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值;将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中。
此外,本申请还提供了一种用于时序数据的查询方法,所述用于时序数据的查询方法,包括:
接收时序数据的查询请求;所述查询请求包括时序数据的数据标识、数据起始时间和数据终止时间的至少一者;
根据预先设定的数据精度及数据生命周期的对应关系,对从所述数据起始时间到所述数据终止时间的时间范围进行划分,获取与各个数据精度对应的时间范围;所述时间范围位于所述数据起始时间和所述数据终止时间之间;
根据所述数据标识,获取存储所述数据标识的时序数据的存储区域;所述存储区域是指分布式数据库的局部数据库;
针对获取的各个数据精度对应的时间范围,从预先存储在所述存储所述数据标识的时序数据的存储区域中的、所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据;
将检索到的各个数据精度的时序数据作为查询结果。
可选的,根据为所述各个数据精度的时序数据分别预先设定的数据生命周期,所述时序数据存储在不同数据表中。
可选的,相同数据精度的时序数据存储在以预设时间范围为数据组织单位的文件中;
相应的,从所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据,包括:
根据所述数据精度对应的时间范围和所述预设时间范围,计算获取存储所述数据精度的时序数据集的各个数据表表名;
根据预设哈希函数,计算所述数据标识的哈希值;
根据所述哈希值和所述各个数据表表名,逐个从所述存储所述数据精度的时序数据集的各个数据表中检索获取位于所述数据精度对应的时间范围内的时序数据。
可选的,所述根据所述数据标识,获取存储所述数据标识的时序数据的存储区域,包括:
根据预设哈希函数,计算所述数据标识的哈希值;
根据所述哈希值,获取所述存储所述数据标识的时序数据的存储区域。
相应的,本申请还提供了一种用于时序数据的查询装置,所述用于时序数据的查询装置,包括:
接收单元,用于接收时序数据的查询请求;所述查询请求包括时序数据的数据标识、数据起始时间和数据终止时间的至少一者;
时间划分单元,用于根据预先设定的数据精度及数据生命周期的对应关系,对从所述数据起始时间到所述数据终止时间的时间范围进行划分,获取与各个数据精度对应的时间范围;所述时间范围位于所述数据起始时间和所述数据终止时间之间;
获取单元,用于根据所述数据标识,获取存储所述数据标识的时序数据的存储区域;所述存储区域是指分布式数据库的局部数据库;
检索单元,用于针对获取的各个数据精度对应的时间范围,从预先存储在所述存储所述数据标识的时序数据的存储区域中的、所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据;
合并单元,用于将检索到的各个数据精度的时序数据作为查询结果。
可选的,相同数据精度的时序数据存储在以预设时间范围为数据组织单位的文件中;
相应的,检索单元包括:
获取子单元,用于根据所述数据精度对应的时间范围和所述预设时间范围,计算获取存储所述数据精度的时序数据集的各个数据表表名;
计算子单元,用于根据预设哈希函数,计算所述数据标识的哈希值;
检索子单元,用于根据所述哈希值和所述各个数据表表名,逐个从所述存储所述数据精度的时序数据集的各个数据表中检索获取位于所述数据精度对应的时间范围内的时序数据。
此外,本申请还提供了又一种电子设备,所述电子设备,包括:
显示器;
处理器;以及
存储器,所述存储器被配置成存储用于时序数据的查询装置,所述用于时序数据的查询装置被所述处理器执行时,包括如下步骤:接收时序数据的查询请求;所述查询请求包括时序数据的数据标识、数据起始时间和数据终止时间的至少一者;根据预先设定的数据精度及数据生命周期的对应关系,对从所述数据起始时间到所述数据终止时间的时间范围进行划分,获取与各个数据精度对应的时间范围;所述时间范围位于所述数据起始时间和所述数据终止时间之间;根据所述数据标识,获取存储所述数据标识的时序数据的存储区域;所述存储区域是指分布式数据库的局部数据库;针对获取的各个数据精度对应的时间范围,从预先存储在所述存储所述数据标识的时序数据的存储区域中的、所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据;将检索到的各个数据精度的时序数据作为查询结果。
此外,本申请还提供了一种用于时序数据的查询系统,所述用于时序数据的查询系统,包括:
发送时序数据查询请求的客户端;以及所述的用于时序数据的查询装置。
与现有技术相比,本申请具有以下优点:
本申请提供的用于时序数据的存储方法、装置及电子设备,通过按照至少一个预设时间间隔,对相同数据标识的、时间位于预设时间间隔内的、采集到的原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值;并将原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中。由于本方法存储的时序数据并非全部直接采集的原始时序数据,而是根据时序数据的时间生成各种不同时间粒度的数据统计值,因而能够有效降低数据存储量,从而达到节省存储空间且提高数据查询速度的效果;同时,由于将时序数据存储在分布式数据库中,因而能够有效提高存储空间的可扩展性。
附图说明
图1是本申请的用于时序数据的存储方法实施例的流程图;
图2是本申请的用于时序数据的存储方法实施例存储原始时序数据的具体流程图;
图3是本申请的用于时序数据的存储方法实施例存储时序数据统计值的具体流程图;
图4是本申请的用于时序数据的存储方法实施例时序数据的存储示意图;
图5是本申请的用于时序数据的存储装置实施例时序数据数据表的示意图;
图6是本申请的用于时序数据的存储装置实施例的示意图;
图7是本申请的电子设备实施例的示意图;
图8是本申请的用于时序数据的查询方法实施例的流程图;
图9是本申请的用于时序数据的查询装置实施例的示意图;
图10是本申请的又一电子设备实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请中,提供了一种用于时序数据的存储方法、装置及电子设备,以及一种用于时序数据的查询方法、装置及电子设备。在下面的实施例中逐一进行详细说明。
本申请提供的方法,其核心的基本思想是:使用分布式数据库作为不同时间粒度的时间序列数据的存储系统。采用该思想存储时序数据,既能够存储和查询大规模不同时间粒度的时间序列数据,还能够增强系统的横向扩展能力及保障数据可靠性。
请参考图1,其为本申请的用于时序数据的存储方法实施例的流程图。所述方法包括如下步骤:
步骤S101:采集待存储的时序数据,作为原始时序数据。
本申请实施例提供的用于时序数据的存储方法,可以从大规模的集群中采集待存储的时序数据,数据来源包括集群中的网络设备、操作系统或应用程序。本申请实施例所述的原始时序数据的属性至少包含三个方面:数据标识属性、时间属性和数据值属性。其中,数据标识属性既可以为单一的指标名称属性,例如,CPU、MEMORY等性能指标;数据标识属性还可以为指标名称属性与其它数据标识属性的结合,例如,本实施例的数据标识属性为指标名称属性和互联网协议地址属性的组合。当被监测的机器或应用程序系统产生时序数据后,本申请实施例提供的用于时序数据的存储方法首先采集实时产生的时序数据,作为原始时序数据。
步骤S103:按照至少一个预设时间间隔,对相同数据标识的、时间位于所述预设时间间隔内的所述原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值。
本申请实施例所述的预设时间间隔与时间粒度相对应,不同预设时间间隔对原始时序数据进行统计处理后,所形成的时序数据统计值具有不同的时间粒度。根据采集到的在预设时间间隔内的各个原始时序数据,生成该时间粒度的时序数据统计值。例如,预设时间间隔包括3分钟、1小时或24小时等,当预设时间间隔为3分钟时,生成的3分钟时间粒度的时序数据统计值所依据的原始时序数据的时间范围为3分钟,即:根据采集到的3分钟内的原始时序数据,生成3分钟时间粒度的时序数据统计值。
本申请实施例所述的时序数据统计值包括其所依据的所有原始时序数据中最大数据值、最小数据值、数据值的数量以及数据值之和的至少一者。
需要说明的是,由于步骤S101采集到的原始时序数据可能为不同数据标识的原始时序数据,因此在步骤S103中,需要对相同数据标识的原始时序数据进行统计处理。
对于使用者而言,不同时间粒度的时序数据统计值对应的数据精度各不相同。本申请实施例所述的原始时序数据为最高精度的时序数据。对于其它各个时间粒度的时序数据统计值而言,其时间间隔越长,则对应的时序数据统计值的数据精度越低。在实际应用中,可以根据具体应用需求,设置多档次的数据统计时间粒度。具体的,时间粒度包括分钟级的时间粒度或小时级的时间粒度。上述关于时间粒度各种设置形式的变化,都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
本申请实施例所述的时序数据统计值是将原始时序数据的几个点压缩成一个点的时序数据,因此,只有当需要压缩的时序数据全部到齐后,才能够统计生成时序数据统计值。如果所依据的原始时序数据没有全部到齐,则需要将已获取的原始时序数据留在内存中,或将已获取的原始时序数据的时序数据统计值留在内存中,当等待到其它原始时序数据全部到齐后,生成时序数据统计值。上述生成时序数据统计值的各种不同时间和方式的变化,都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
步骤S105:将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中。
本申请实施例提供的用于时序数据的存储方法,将不同精度的时序数据存储在分布式数据库中。分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。
在本实施例中,根据所述原始时序数据和各个时间粒度的时序数据统计值的数据标识,将所述原始时序数据和各个时间粒度的时序数据统计值存储到为所述数据标识的时序数据预设的存储区域;所述存储区域是指分布式数据库的局部数据库。
非关系型数据库(NoSQL数据库)是一种典型的分布式数据库。非关系型数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。本申请实施例应用非关系型数据库存储时序数据,并通过时序数据的数据标识对时序数据的存储区域进行划分。本申请实施例所述的存储区域是指分布式数据库的局部数据库。在实际应用中,可以将不同数据标识的时序数据存储在位于相同或不同机器上的局部数据库中。
当时序数据存储在非关系型数据库时,对于存储在非关系型数据库中的时序数据,采用如下步骤获取为所述数据标识的时序数据预设的存储空间,包括:1)根据预设哈希函数,计算所述述数据标识的哈希值;2)根据所述哈希值,获取为所述述数据标识的时序数据预设的存储区域。
作为一个优选实施方式,本申请实施例提供的用于时序数据的存储方法,相同数据标识的原始时序数据和各个时间粒度的时序数据统计值分别存储在不同的数据表中,即:同一数据标识的、不同精度的时序数据分别存储在不同的数据表中;当不同数据标识的时序数据存储在同一存储区域时,位于同一存储区域的、不同数据标识的时序数据分别存储在不同的数据表中,即:不同数据标识的时序数据分别存储在不同的数据表中。
其中,为了使得相同数据标识的原始时序数据和各个时间粒度的时序数据统计值分别存储在不同的数据表中,可以采用如下方式:根据为所述原始时序数据和各个时间粒度的时序数据统计值分别预先设定的数据生命周期,将相同数据标识的所述原始时序数据和各个时间粒度的时序数据统计值分别存储在不同的数据表中。
首先,需要为原始时序数据和各个时间粒度的时序数据统计值分别预先设定不同的数据生命周期,例如,数据库中存储三种精度的时序数据,将最高精度的原始时序数据保留一个月;次高精度的时序数据统计值保留三个月;最低精度的时序数据统计值保留一年;其中最高精度的两个相邻原始时序数据的时间差为15秒;将每12个原始时序数据压缩成一个三分钟时间粒度的时序数据统计值,相邻两个次高精度时序数据统计值的时间差180秒;将次高精度的每20个数据点压缩成一个一小时时间粒度的时序数据统计值,相邻两个点差3600秒。通过为不同精度的时序数据分别设定的数据生命周期,能够有效减少数据存储量。
然后,对于设定数据生命周期的各个时间粒度的时序数据统计值,根据其数据生命周期,将原始时序数据和各个时间粒度的时序数据统计值存储到存储区域内的不同数据表中,能够有效提高对时序数据的查询检索速度。例如,当需要读取的时序数据的时间范围在最近一个月内时,可以直接读取存储最高精度时序数据的数据表;当需要读取的时序数据的时间范围在一个月以前,并且在三个月以内时,读取存储次高精度时序数据的数据表;在需要读取的时序数据的时间范围在三个月以前时,读取存储最低精度时序数据的数据表。
作为一个优选实施方式,本申请实施例提供的用于时序数据的存储方法,相同数据标识的、不同时间的所述原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中;相同数据标识的、相同时间粒度的、不同时间的时序数据统计值分别存储在不同的、以第二预设时间范围为数据组织单位的数据表中;所述第一预设时间范围和所述第二预设时间范围包括预设天数、预设周数、预设月数或预设年数。
在本实施例中,将相同数据标识的、最高精度的时序数据按其生成日期保存在不同的数据表中,例如,每天的最高精度时序数据保存在一张表中;将次高精度的时序数据和最低精度的时序数据按其生成年月保存在不同的数据表中,例如,每月的次高精度时序数据保存在一张表中,每月的最低精度时序数据保存在一张表中。
上述存储不同精度时序数据的各种不同形式变化,都只是具体实施方式的变更,都不偏离本申请的核心,因此都在本申请的保护范围之内。
作为一个优选实施方式,本申请实施例所述的原始时序数据存储在以第三预设时间范围为数据组织单位的时序数据记录中,例如,第三预设时间范围为一分钟,则一条时序数据记录包括一分钟内的各个原始时序数据。通过在一条时序数据记录中包含多个原始时序数据,能够减少磁盘占用空间,从而达到节约存储空间的效果。
请参见图2,其为本申请的用于时序数据的存储方法实施例存储原始时序数据的具体流程图。所述将所述原始时序数据存储于分布式数据库中,包括:
步骤S201:根据所述原始时序数据的时间和所述第一预设时间范围,计算获取存储所述原始时序数据的数据表表名。
在本实施例中,相同数据标识的、不同时间的原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中,因此,首先需要获取存储原始时序数据的数据表表名。例如,第一预设时间范围是24小时,即将每天产生的原始时序数据单独存储在一张数据表中。由于存储原始时序数据的数据表表名与原始时序数据的时间和第一预设时间范围相关,因此,需要根据原始时序数据的时间和第一预设时间范围,计算获取存储原始时序数据的数据表表名。
步骤S202:根据预设哈希函数,计算所述原始时序数据的数据标识的哈希值,作为包括所述原始时序数据的第一时序数据记录的第一主键列值;以及根据所述原始时序数据的时间和所述第三预设时间范围,计算获取所述第一时序数据记录的时间,作为所述第一时序数据记录的第二主键列值。
非关系型数据库以键值对存储数据,且结构不固定,每一个元组(数据记录)可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。一个非关系型数据库的数据表包括主键(即:rowkey)和属性列,由于每个时序数据是由其数据标识和时间的组合唯一标识的,因此,数据表的主键包含两列:数据标识的哈希值、时序数据的时间。其中,第一主键列值为数据标识的哈希值,该哈希值也是非关系型数据库的分区字段,保证不同数据标识的时序数据完全分散存储,当数据标识增加时,可以通过对非关系型数据库扩容来支撑更大规模。第二主键列值是时序数据的时间,在本实施例中,将存储原始时序数据的时序数据记录的时间对齐到整分钟,比如12点01分整,13点02分整,由此可以支持在一定时间范围内的数据查询。
步骤S203:获取所述原始时序数据的时间相对所述第一时序数据记录的时间的偏移数值。
原始时序数据存储在时序数据记录的属性列中。在本实施例中,一条时序数据记录可以包括多个原始时序数据。因此,时序数据记录的属性列包括多个时序数据的键值对(key:value),其中键是时间数据的实际时间相对上述第二主键列值的时间偏移数值。例如,12:01:15的数据,在第二主键中是12点01分整,在属性列中key是15s(相对于01分的偏移量),value是12:01:15s的数据。也就是说,一个指标一个分钟的数据,在非关系型数据库中保存在一行。
步骤S205:判断在所述存储所述原始时序数据的数据表中是否存在以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录;若是,则将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中;若否,则将以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录增加到所述存储所述原始时序数据的数据表中,并将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中。
在获取到时间偏移量后,就可将时间偏移数值和原始时序数据组成的键值对存储到上述第一时序数据记录的属性列中。
在存储所述键值对之前,需要判断以第一主键列值和第二主键列值标识的第一时序数据记录在所述存储原始时序数据的数据表中是否存在;若该时序数据记录存在,则将所述键值对直接存储到第一时序数据记录的属性列中;若该时序数据记录不存在,则还需要增加以第一主键列值和所述第二主键列值标识的第一时序数据记录,并将所述键值对存储到第一时序数据记录的属性列中。
在实际应用中,当第一次存储位于第一预设时间范围内的原始时序数据时,可能还没有创建存储该原始时序数据的数据表,因此,在所述判断在所述存储所述原始时序数据的数据表中是否存在以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录之前,还包括:根据所述存储所述原始时序数据的数据表表名,判断所述存储所述原始时序数据的数据表是否存在;若否,则创建所述存储所述原始时序数据的数据表。
上述步骤S201至步骤S205对原始时序数据的存储进行了说明。下面对时序数据统计值的存储进行说明。
请参见图3,其为本申请的用于时序数据的存储方法实施例存储时序数据统计值的具体流程图。在本实施例中,所述将所述各个时间粒度的时序数据统计值存储于分布式数据库中,包括:
步骤S301:根据所述时序数据统计值的时间、时间粒度和所述第二预设时间范围,计算获取存储所述时序数据统计值的数据表表名。
在本实施例中,相同数据标识的、相同时间粒度的、不同时间的时序数据统计值分别存储在不同的、以第二预设时间范围为数据组织单位的数据表中。因此,首先需要获取存储时序数据统计值的数据表表名。例如,对于次高精度的时序数据统计值,第二预设时间范围是一个月,即将每个月产生的次高精度的时序数据统计值单独存储在一张数据表中。通过对不同时间的时序数据统计值进行单独存储,能够提高数据的查询检索速度,当查询某一时间段时序数据时,只需按时间查找相关数据表。
由于存储时序数据统计值的数据表表名与时序数据统计值的时间、时间粒度和第二预设时间范围相关,因此,需要根据时序数据统计值的时间、时间粒度和第二预设时间范围,计算获取存储时序数据统计值的数据表表名。
步骤S302:根据预设哈希函数,计算所述时序数据统计值的数据标识的哈希值,作为存储所述时序数据统计值的第二时序数据记录的第一主键列值;以及将所述时序数据统计值的时间作为所述第二时序数据记录的第二主键列值。
本步骤与步骤S202相似,区别仅在于数据处理对象不同,步骤S202处理采集到的原始时序数据,本步骤处理时序数据统计值,相关说明详见步骤S202,此处不再赘述。
步骤S303:将以所述第一主键列值和所述第二主键列值标识的所述第二时序数据记录增加到所述存储所述时序数据统计值的数据表中,并将所述时序数据统计值的时间和所述时序数据统计值的键值对存储到所述第二时序数据记录的属性列中。
在本实施例中,将每一个时序数据统计值单独存储在一条时序数据记录中,因此需要增加以一条以第一主键列值和第二主键列值标识的时序数据记录。
在实际应用中,当第一次存储位于第二预设时间范围内的时序数据统计值时,可能还没有创建存储该时序数据统计值的数据表,因此,在所述将以所述第一主键列值和所述第二主键列值标识的所述第二时序数据记录增加到所述存储所述时序数据统计值的数据表中之前,还包括:根据所述存储所述时序数据统计值的数据表表名,判断所述存储所述时序数据统计值的数据表是否存在;若否,则创建所述存储所述时序数据统计值的数据表。
上述步骤S301至步骤S303对时序数据统计值的存储进行了说明。
在实际应用中,所述原始时序数据的数据生命周期是可调节的,将原始时序数据的数据生命周期作为第一预设生命周期,例如,只保留最近一个月内的原始时序数据。本申请实施例提供的用于时序数据的存储方法,还包括:删除在所述第一预设生命周期之前的所述原始时序数据。
在本实施例中,相同数据标识的、不同时间的原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中;所述删除在所述第一预设生命周期之前的所述原始时序数据,采用如下方式:根据第一预设生命周期,删除在第一预设生命周期之前的存储原始时序数据的数据表。由于不同时间的原始时序数据分别存储在不同的数据表中,因此,在删除过期数据时,可以采用整表删除方式,从而提高了删除过期数据的速度。
同样的,所述时序数据统计值的数据生命周期可调节;所述时序数据统计值的数据生命周期为第二预设生命周期。需要说明的是,第二预设生命周期与时序数据统计值的时间粒度相对应,例如,保留一年内的最低精度时序数据统计值,保留三个月内的次低精度时序数据统计值。本申请实施例提供的用于时序数据的存储方法,还包括:删除在所述第二预设生命周期之前的所述时序数据的统计值。
由于本申请实施例将不同时间粒度的时序数据统计值分表存储、并将同一时间粒度的时序数据统计值也分表存储,因此,可以根据数据生命周期,判断可以直接删除的数据表,从而达到提高过期数据删除速度的效果。
请参见图4,其为本申请的用于时序数据的存储方法实施例时序数据的存储示意图。由图4可见,采集到的原始时序数据为10个数据,每个数据相隔15秒产生,将这些原始时序数据存储在15秒精度的数据表表组(表1和表2所处的表组)中,并且根据数据的产生日期,将15秒精度的时序数据存储在不同的表中。数据经过统计后,生成了150秒精度的时序数据统计值,将该精度时序数据存储在150秒精度的数据表组(表3和表4所处的表组)中,并且根据数据的产生日期,将150秒精度的时序数据存储在不同的表中。
下面通过实际数据,说明时序数据表的具体存储方式。假设采集到一组CPU原始数据,包括:(CPU,127.0.0.1,1427788800,0.10)、(CPU,127.0.0.1,1427788815,0.11)、(CPU,127.0.0.1,1427788830,0.09)…..(CPU,127.0.0.1,1427788965,0.1),每个数据相隔15秒。根据数据的产生时间,这些数据将存在表组1的2015年3月31日(该日期由1427788800计算得出)这张表中。然后,对上述12份数据进行压缩,计算出次高精度在1427788800时间点的值,保存在表组2的2015年3月(该日期由1427788800计算得出)的这张表中。然后,再对最低精度进行压缩,计算出1427788800(这个是整点)这个时间点的数据,保存在表组3的2015年3月(该日期由1427788800计算得出)份的这张表中。上述三种精度的数据在非关系型数据库中的表示如表1所示。
表1
通过表1可见,属性列中的每一个健值对的value都由4个数据组成,分别是最大数据值、最小数据值、数据值的数量以及数据值之和。
请参见图5,其为本申请的用于时序数据的存储方法实施例时序数据数据表的示意图。由图5可见,2015年3月31日三种不同精度的表组中每个表组包含的数据表。其中,表组1中每天一张表保存一个月,当日期到4月1日的时候,3月1日的表会被删除;表组2中每月一张表,每张表保存3个月,当进入4月份的时候,1月份的表会删除;表组3是每月一张表,每张表保存12个月,当进入4月份的时候,14年4月份的表会被删除。
假设需要保存5万台机器、每台机器3千个指标的时序数据,其中每个指标需要保存一年。如果每个指标主键空间占用为:8字节int64哈希值,以及4字节int类型时间,属性列中每一列是2+40个字节,则分精度的时序数据需要占用1.3PB的存储空间。由于非关系型数据库具有压缩功能,实验数据表明,最终使用的空间为200T。
在上述的实施例中,提供了一种用于时序数据的存储方法,与之相对应的,本申请还提供一种时序数据的存储装置。该装置是与上述方法的实施例相对应。
请参看图6,其为本申请的用于时序数据的存储装置实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种时序数据的存储装置,包括:
采集数据单元101,用于采集待存储的时序数据,作为原始时序数据;所述原始时序数据的属性包括数据标识属性、时间属性和数据值属性;
统计单元103,用于按照至少一个预设时间间隔,对相同数据标识的、时间位于所述预设时间间隔内的所述原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值;
存储单元105,用于将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中。
可选的,所述将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中,采用如下方式:
根据所述原始时序数据和各个时间粒度的时序数据统计值的数据标识,将所述原始时序数据和各个时间粒度的时序数据统计值存储到为所述数据标识的时序数据预设的存储区域;所述存储区域是指分布式数据库的局部数据库;所述分布式数据库包括非关系型数据库;
所述装置还包括:
获取单元,用于获取为所述数据标识的时序数据预设的存储空间;
所述获取单元包括:
计算子单元,用于根据预设哈希函数,计算所述数据标识的哈希值;
匹配子单元,用于根据所述哈希值,获取为所述数据标识的时序数据预设的存储区域。
可选的,所述分布式数据库包括非关系型数据库;所述原始时序数据存储在以第三预设时间范围为数据组织单位的时序数据记录中;所述第三预设时间范围包括预设分钟数;相同数据标识的、不同时间的所述原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中;
所述存储单元105包括第一存储子单元,用于将所述原始时序数据存储于分布式数据库中;
所述第一存储子单元包括:
获取表名子单元,用于根据所述原始时序数据的时间和所述第一预设时间范围,计算获取存储所述原始时序数据的数据表表名;
生成主键子单元,用于根据预设哈希函数,计算所述原始时序数据的数据标识的哈希值,作为包括所述原始时序数据的第一时序数据记录的第一主键列值;以及根据所述原始时序数据的时间和所述第三预设时间范围,计算获取所述第一时序数据记录的时间,作为所述第一时序数据记录的第二主键列值;
计算偏移值子单元,用于获取所述原始时序数据的时间相对所述第一时序数据记录的时间的偏移数值;
判断存储子单元,用于判断在所述存储所述原始时序数据的数据表中是否存在以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录;若是,则将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中;若否,则将以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录增加到所述存储所述原始时序数据的数据表中,并将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中。
可选的,所述第一存储子单元还包括:
判断建表子单元,用于根据所述存储所述原始时序数据的数据表表名,判断所述存储所述原始时序数据的数据表是否存在;若否,则创建所述存储所述原始时序数据的数据表。
可选的,所述分布式数据库包括非关系型数据库;相同数据标识的、相同时间粒度的、不同时间的时序数据统计值分别存储在不同的、以第二预设时间范围为数据组织单位的数据表中;
所述存储单元105包括第一存储子单元,用于将所述各个时间粒度的时序数据统计值存储于分布式数据库中;
所述第二存储子单元包括:
获取表名子单元,用于根据所述时序数据统计值的时间、时间粒度和所述第二预设时间范围,计算获取存储所述时序数据统计值的数据表表名;
生成主键子单元,用于根据预设哈希函数,计算所述时序数据统计值的数据标识的哈希值,作为存储所述时序数据统计值的第二时序数据记录的第一主键列值;以及将所述时序数据统计值的时间作为所述第二时序数据记录的第二主键列值;
增加存储子单元,用于将以所述第一主键列值和所述第二主键列值标识的所述第二时序数据记录增加到所述存储所述时序数据统计值的数据表中,并将所述时序数据统计值的时间和所述时序数据统计值的键值对存储到所述第二时序数据记录的属性列中。
可选的,所述第二存储子单元还包括:
判断建表子单元,用于根据所述存储所述时序数据统计值的数据表表名,判断所述存储所述时序数据统计值的数据表是否存在;若否,则创建所述存储所述时序数据统计值的数据表。
可选的,所述原始时序数据的数据生命周期可调节;所述原始时序数据的数据生命周期为第一预设生命周期;所述装置还包括:
第一删除单元,用于删除在所述第一预设生命周期之前的所述原始时序数据。
可选的,所述时序数据统计值的数据生命周期可调节;所述时序数据统计值的数据生命周期为第二预设生命周期;所述第二预设生命周期与所述时间粒度相对应;所述装置还包括:
第二删除单元,用于删除在所述第二预设生命周期之前的所述时序数据的统计值。
请参考图7,其为本申请的电子设备实施例的示意图。由于设备实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的设备实施例仅仅是示意性的。
本实施例的一种电子设备,该电子设备包括:显示器701;处理器702;以及存储器703,所述存储器703被配置成存储用于时序数据的存储装置,所述用于时序数据的存储装置被所述处理器702执行时,包括如下步骤:采集待存储的时序数据,作为原始时序数据;所述原始时序数据的属性包括数据标识属性、时间属性和数据值属性;按照至少一个预设时间间隔,对相同数据标识的、时间位于所述预设时间间隔内的所述原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值;将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中。
本申请提供的用于时序数据的存储方法、装置及电子设备,通过按照至少一个预设时间间隔,对相同数据标识的、时间位于预设时间间隔内的、采集到的原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值;并将原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中。由于本方法存储的时序数据并非全部直接采集的原始时序数据,而是根据时序数据的时间生成各种不同时间粒度的数据统计值,因而能够有效降低数据存储量,从而达到节省存储空间且提高数据查询速度的效果;同时,由于将时序数据存储在分布式数据库中,因而能够有效提高存储空间的可扩展性。
与上述的用于时序数据的存储方法相对应,本申请还提供一种用于时序数据的查询方法。请参考图8,其为本申请提供的一种用于时序数据的查询方法的实施例的流程示意图,本实施例与第一实施例内容相同的部分不再赘述,请参见实施例一中的相应部分。本申请提供的一种用于时序数据的查询方法包括:
步骤S801:接收时序数据的查询请求。
本申请实施例所述的时序数据是指区分数据精度的时序数据,例如,高精度的原始时序数据、次高精度的时序数据统计值或最低精度的时序数据统计值。所述的查询请求包括时序数据的数据标识、数据起始时间和数据终止时间的至少一者。
步骤S803:根据预先设定的数据精度及数据生命周期的对应关系,对从所述数据起始时间到所述数据终止时间的时间范围进行划分,获取与各个数据精度对应的时间范围;所述时间范围位于所述数据起始时间和所述数据终止时间之间。
本申请实施例所述的数据精度及数据生命周期的对应关系,其含义为:不同精度的数据具有不同的数据生命周期(即存储时间),例如,高精度的原始时序数据保存一个月、次高精度的时序数据统计值保存三个月、最低精度的时序数据统计值保存一年。
由于不同精度的数据具有不同的数据生命周期,因此,不同时间的时序数据需要在不同精度的时序数据集中进行查询。为此,在接收到查询请求后,首先需要对数据起始时间到数据终止时间的时间范围进行划分,以获取各个数据精度对应的时间范围。例如,不同精度时序数据的数据生命周期如上例所示,要查询2015/7/1至2015/10/10的时序数据,其中,2015/9/10至2015/10/10这个时间段的时序数据为高精度的原始时序数据,2015/7/10至2015/9/9这个时间段的时序数据为次高精度的时序数据统计值,2015/7/1至2015/7/9这个时间段的时序数据为最低精度的时序数据统计值。
步骤S805:根据所述数据标识,获取存储所述数据标识的时序数据的存储区域;所述存储区域是指分布式数据库的局部数据库。
本申请实施例所述的时序数据存储在分布式数据库中,不同数据标识的时序数据存储在分布式数据库的各个局部数据库中。因此,还需要根据时序数据的数据标识,获取存储所述数据标识的时序数据的存储区域。
在本实施例中,所述根据所述数据标识,获取存储所述数据标识的时序数据的存储区域,包括:1)根据预设哈希函数,计算所述数据标识的哈希值;2)根据所述哈希值,获取所述存储所述数据标识的时序数据的存储区域。
步骤S807:针对获取的各个数据精度对应的时间范围,从预先存储在所述存储所述数据标识的时序数据的存储区域中的、所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据。
通过步骤S803获取到与各个数据精度对应的时间范围,通过步骤S805获取到存储时序数据的存储区域后,就可以针对各个数据精度,以该数据精度对应的时间范围为检索条件,在该精度的时序数据集中获取位于该数据精度对应的时间范围内的时序数据。
在实际应用中,为了便于对不同数据生命周期的时序数据进行管理,可以根据为各个数据精度的时序数据分别预先设定的数据生命周期,将时序数据存储在不同数据表中。为此,在检索符合查询条件的时序数据时,需要在所有相关数据表中逐一进行检索,再将各个数据表的查询结果合并。
进一步的,相同数据精度的时序数据存储在以预设时间范围为数据组织单位的文件中,例如,根据时序数据的生成日期,将最高精度的原始时序数据存储在不同的数据表中,如每天产生的数据在一张表中。相应的,从所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据,包括:1)根据所述数据精度对应的时间范围和所述预设时间范围,计算获取存储所述数据精度的时序数据集的各个数据表表名;2)根据预设哈希函数,计算所述数据标识的哈希值;3)根据所述哈希值和所述各个数据表表名,逐个从所述存储所述数据精度的时序数据集的各个数据表中检索获取位于所述数据精度对应的时间范围内的时序数据。
步骤S809:将检索到的各个数据精度的时序数据作为查询结果。
最后,对于步骤S807获取到的符合查询条件的、各个数据精度的时序数据进行合并,作为查询结果。
在上述的实施例中,提供了一种用于时序数据的查询方法,与之相对应的,本申请还提供一种时序数据的查询装置。该装置是与上述方法的实施例相对应。
请参看图9,其为本申请的用于时序数据的查询装置实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种时序数据的查询装置,包括:
接收单元201,用于接收时序数据的查询请求;所述查询请求包括时序数据的数据标识、数据起始时间和数据终止时间的至少一者;
时间划分单元202,用于根据预先设定的数据精度及数据生命周期的对应关系,对从所述数据起始时间到所述数据终止时间的时间范围进行划分,获取与各个数据精度对应的时间范围;所述时间范围位于所述数据起始时间和所述数据终止时间之间;
获取单元203,用于根据所述数据标识,获取存储所述数据标识的时序数据的存储区域;所述存储区域是指分布式数据库的局部数据库;
检索单元204,用于针对获取的各个数据精度对应的时间范围,从预先存储在所述存储所述数据标识的时序数据的存储区域中的、所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据;
合并单元205,用于将检索到的各个数据精度的时序数据作为查询结果。
可选的,相同数据精度的时序数据存储在以预设时间范围为数据组织单位的文件中;
相应的,检索单元204包括:
获取子单元,用于根据所述数据精度对应的时间范围和所述预设时间范围,计算获取存储所述数据精度的时序数据集的各个数据表表名;
计算子单元,用于根据预设哈希函数,计算所述数据标识的哈希值;
检索子单元,用于根据所述哈希值和所述各个数据表表名,逐个从所述存储所述数据精度的时序数据集的各个数据表中检索获取位于所述数据精度对应的时间范围内的时序数据。
请参考图10,其为本申请的电子设备实施例的示意图。由于设备实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的设备实施例仅仅是示意性的。
本实施例的一种电子设备,该电子设备包括:显示器1001;处理器1002;以及存储器1003,接收时序数据的查询请求;所述查询请求包括时序数据的数据标识、数据起始时间和数据终止时间的至少一者;根据预先设定的数据精度及数据生命周期的对应关系,对从所述数据起始时间到所述数据终止时间的时间范围进行划分,获取与各个数据精度对应的时间范围;所述时间范围位于所述数据起始时间和所述数据终止时间之间;根据所述属性,获取存储所述属性的时序数据的存储区域;所述存储区域是指分布式数据库的局部数据库;针对获取的各个数据精度对应的时间范围,从预先存储在所述存储所述数据标识的时序数据的存储区域中的、所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据;将检索到的各个数据精度的时序数据作为查询结果。
本申请实施例还提供一种用于时序数据的查询系统,其特征在于,包括:发送时序数据查询请求的客户端;以及上述实施例所述的用于时序数据的查询装置。
本申请提供的用于时序数据的查询方法、装置及系统,通过根据预先设定的数据精度及数据生命周期的对应关系,对从数据起始时间到数据终止时间的时间范围进行划分,获取与各个数据精度对应的时间范围;并根据要查询的时序数据的数据标识,获取存储所述数据标识的时序数据的存储区域,其中存储区域是指分布式数据库的局部数据库;然后,针对获取的各个数据精度对应的时间范围,从预先存储在所述存储所述数据标识的时序数据的存储区域中的、所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据;最后,将检索到的各个数据精度的时序数据作为查询结果。由于本方法从存储在分布式数据库中的各个精度的时序数据进行检索,以获取符合查询条件的时序数据,从而达到提高数据查询速度的效果。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (32)
1.一种用于时序数据的存储方法,其特征在于,包括:
采集待存储的时序数据,作为原始时序数据;所述原始时序数据的属性包括数据标识属性、时间属性和数据值属性;
按照至少一个预设时间间隔,对相同数据标识的、时间位于所述预设时间间隔内的所述原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值;
将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中;
其中,所述原始时序数据和各个时间粒度的时序数据统计值所对应的数据精度不同;
所述将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中,包括:
根据所述原始时序数据和各个时间粒度的时序数据统计值所分别对应的数据精度,为所述原始时序数据和各个时间粒度的时序数据统计值分别预先设定不同的数据生命周期;
根据为所述原始时序数据和各个时间粒度的时序数据统计值分别预先设定的所述数据生命周期,将相同数据标识的所述原始时序数据和各个时间粒度的时序数据统计值分别存储在不同的数据表中。
2.根据权利要求1所述的用于时序数据的存储方法,其特征在于,所述将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中,采用如下方式:
根据所述原始时序数据和各个时间粒度的时序数据统计值的数据标识,将所述原始时序数据和各个时间粒度的时序数据统计值存储到为所述数据标识的时序数据预设的存储区域;所述存储区域是指分布式数据库的局部数据库。
3.根据权利要求2所述的用于时序数据的存储方法,其特征在于,所述分布式数据库包括非关系型数据库;所述为所述数据标识的时序数据预设的存储空间,采用如下步骤获取:
根据预设哈希函数,计算所述数据标识的哈希值;
根据所述哈希值,获取为所述数据标识的时序数据预设的存储区域。
4.根据权利要求1所述的用于时序数据的存储方法,其特征在于,相同数据标识的所述原始时序数据和各个时间粒度的时序数据统计值分别存储在不同的数据表中;当不同数据标识的时序数据存储在同一存储区域时,位于所述同一存储区域的、不同数据标识的时序数据分别存储在不同的数据表中。
5.根据权利要求1所述的用于时序数据的存储方法,其特征在于,相同数据标识的、不同时间的所述原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中;相同数据标识的、相同时间粒度的、不同时间的时序数据统计值分别存储在不同的、以第二预设时间范围为数据组织单位的数据表中;所述第一预设时间范围和所述第二预设时间范围包括预设天数、预设周数、预设月数或预设年数。
6.根据权利要求1所述的用于时序数据的存储方法,其特征在于,所述分布式数据库包括非关系型数据库;所述原始时序数据存储在以第三预设时间范围为数据组织单位的时序数据记录中;所述第三预设时间范围包括预设分钟数。
7.根据权利要求6所述的用于时序数据的存储方法,其特征在于,相同数据标识的、不同时间的所述原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中;所述将所述原始时序数据存储于分布式数据库中,包括:
根据所述原始时序数据的时间和所述第一预设时间范围,计算获取存储所述原始时序数据的数据表表名;
根据预设哈希函数,计算所述原始时序数据的数据标识的哈希值,作为包括所述原始时序数据的第一时序数据记录的第一主键列值;以及根据所述原始时序数据的时间和所述第三预设时间范围,计算获取所述第一时序数据记录的时间,作为所述第一时序数据记录的第二主键列值;
获取所述原始时序数据的时间相对所述第一时序数据记录的时间的偏移数值;
判断在所述存储所述原始时序数据的数据表中是否存在以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录;若是,则将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中;若否,则将以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录增加到所述存储所述原始时序数据的数据表中,并将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中。
8.根据权利要求7所述的用于时序数据的存储方法,其特征在于,在所述判断在所述存储所述原始时序数据的数据表中是否存在以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录之前,还包括:
根据所述存储所述原始时序数据的数据表表名,判断所述存储所述原始时序数据的数据表是否存在;若否,则创建所述存储所述原始时序数据的数据表。
9.根据权利要求1所述的用于时序数据的存储方法,其特征在于,所述分布式数据库包括非关系型数据库;相同数据标识的、相同时间粒度的、不同时间的时序数据统计值分别存储在不同的、以第二预设时间范围为数据组织单位的数据表中;所述将所述各个时间粒度的时序数据统计值存储于分布式数据库中,包括:
根据所述时序数据统计值的时间、时间粒度和所述第二预设时间范围,计算获取存储所述时序数据统计值的数据表表名;
根据预设哈希函数,计算所述时序数据统计值的数据标识的哈希值,作为存储所述时序数据统计值的第二时序数据记录的第一主键列值;以及将所述时序数据统计值的时间作为所述第二时序数据记录的第二主键列值;
将以所述第一主键列值和所述第二主键列值标识的所述第二时序数据记录增加到所述存储所述时序数据统计值的数据表中,并将所述时序数据统计值的时间和所述时序数据统计值的键值对存储到所述第二时序数据记录的属性列中。
10.根据权利要求9所述的用于时序数据的存储方法,其特征在于,在所述将以所述第一主键列值和所述第二主键列值标识的所述第二时序数据记录增加到所述存储所述时序数据统计值的数据表中之前,还包括:
根据所述存储所述时序数据统计值的数据表表名,判断所述存储所述时序数据统计值的数据表是否存在;若否,则创建所述存储所述时序数据统计值的数据表。
11.根据权利要求1所述的用于时序数据的存储方法,其特征在于,所述原始时序数据的数据生命周期可调节;所述原始时序数据的数据生命周期为第一预设生命周期;所述方法还包括:
删除在所述第一预设生命周期之前的所述原始时序数据。
12.根据权利要求11所述的用于时序数据的存储方法,其特征在于,相同数据标识的、不同时间的所述原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中;所述删除在所述第一预设生命周期之前的所述原始时序数据,采用如下方式:
根据所述第一预设生命周期,删除在所述第一预设生命周期之前的存储所述原始时序数据的数据表。
13.根据权利要求1所述的用于时序数据的存储方法,其特征在于,所述时序数据统计值的数据生命周期可调节;所述时序数据统计值的数据生命周期为第二预设生命周期;所述第二预设生命周期与所述时间粒度相对应;所述方法还包括:
删除在所述第二预设生命周期之前的所述时序数据的统计值。
14.根据权利要求13所述的用于时序数据的存储方法,其特征在于,相同数据标识的、相同时间粒度的、不同时间的时序数据统计值分别存储在不同的、以第二预设时间范围为数据组织单位的数据表中;所述删除在所述第二预设生命周期之前的所述时序数据的统计值,采用如下方式:
根据所述第二预设生命周期,删除在所述第二预设生命周期之前的存储所述时序数据统计值的数据表。
15.根据权利要求1所述的用于时序数据的存储方法,其特征在于,所述时序数据统计值包括最大数据值、最小数据值、数据值的数量以及数据值之和的至少一者。
16.根据权利要求1所述的用于时序数据的存储方法,其特征在于,所述数据标识属性包括指标名称属性、或者指标名称属性和互联网协议地址属性的组合。
17.一种用于时序数据的存储装置,其特征在于,包括:
采集数据单元,用于采集待存储的时序数据,作为原始时序数据;所述原始时序数据的属性包括数据标识属性、时间属性和数据值属性;
统计单元,用于按照至少一个预设时间间隔,对相同数据标识的、时间位于所述预设时间间隔内的所述原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值;
存储单元,用于将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中;
其中,所述原始时序数据和各个时间粒度的时序数据统计值所对应的数据精度不同;
所述将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中,包括:
根据所述原始时序数据和各个时间粒度的时序数据统计值所分别对应的数据精度,为所述原始时序数据和各个时间粒度的时序数据统计值分别预先设定不同的数据生命周期;
根据为所述原始时序数据和各个时间粒度的时序数据统计值分别预先设定的所述数据生命周期,将相同数据标识的所述原始时序数据和各个时间粒度的时序数据统计值分别存储在不同的数据表中。
18.根据权利要求17所述的用于时序数据的存储装置,其特征在于,所述将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中,采用如下方式:
根据所述原始时序数据和各个时间粒度的时序数据统计值的数据标识,将所述原始时序数据和各个时间粒度的时序数据统计值存储到为所述数据标识的时序数据预设的存储区域;所述存储区域是指分布式数据库的局部数据库;所述分布式数据库包括非关系型数据库;
所述装置还包括:
获取单元,用于获取为所述数据标识的时序数据预设的存储空间;
所述获取单元包括:
计算子单元,用于根据预设哈希函数,计算所述数据标识的哈希值;
匹配子单元,用于根据所述哈希值,获取为所述数据标识的时序数据预设的存储区域。
19.根据权利要求17所述的用于时序数据的存储装置,其特征在于,所述分布式数据库包括非关系型数据库;所述原始时序数据存储在以第三预设时间范围为数据组织单位的时序数据记录中;所述第三预设时间范围包括预设分钟数;相同数据标识的、不同时间的所述原始时序数据分别存储在不同的、以第一预设时间范围为数据组织单位的数据表中;
所述存储单元包括第一存储子单元,用于将所述原始时序数据存储于分布式数据库中;
所述第一存储子单元包括:
获取表名子单元,用于根据所述原始时序数据的时间和所述第一预设时间范围,计算获取存储所述原始时序数据的数据表表名;
生成主键子单元,用于根据预设哈希函数,计算所述原始时序数据的数据标识的哈希值,作为包括所述原始时序数据的第一时序数据记录的第一主键列值;以及根据所述原始时序数据的时间和所述第三预设时间范围,计算获取所述第一时序数据记录的时间,作为所述第一时序数据记录的第二主键列值;
计算偏移值子单元,用于获取所述原始时序数据的时间相对所述第一时序数据记录的时间的偏移数值;
判断存储子单元,用于判断在所述存储所述原始时序数据的数据表中是否存在以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录;若是,则将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中;若否,则将以所述第一主键列值和所述第二主键列值标识的所述第一时序数据记录增加到所述存储所述原始时序数据的数据表中,并将所述偏移数值和所述原始时序数据的键值对存储到所述第一时序数据记录的属性列中。
20.根据权利要求19所述的用于时序数据的存储装置,其特征在于,所述第一存储子单元还包括:
判断建表子单元,用于根据所述存储所述原始时序数据的数据表表名,判断所述存储所述原始时序数据的数据表是否存在;若否,则创建所述存储所述原始时序数据的数据表。
21.根据权利要求17所述的用于时序数据的存储装置,其特征在于,所述分布式数据库包括非关系型数据库;相同数据标识的、相同时间粒度的、不同时间的时序数据统计值分别存储在不同的、以第二预设时间范围为数据组织单位的数据表中;
所述存储单元包括第二存储子单元,用于将所述各个时间粒度的时序数据统计值存储于分布式数据库中;
所述第二存储子单元包括:
获取表名子单元,用于根据所述时序数据统计值的时间、时间粒度和所述第二预设时间范围,计算获取存储所述时序数据统计值的数据表表名;
生成主键子单元,用于根据预设哈希函数,计算所述时序数据统计值的数据标识的哈希值,作为存储所述时序数据统计值的第二时序数据记录的第一主键列值;以及将所述时序数据统计值的时间作为所述第二时序数据记录的第二主键列值;
增加存储子单元,用于将以所述第一主键列值和所述第二主键列值标识的所述第二时序数据记录增加到所述存储所述时序数据统计值的数据表中,并将所述时序数据统计值的时间和所述时序数据统计值的键值对存储到所述第二时序数据记录的属性列中。
22.根据权利要求21所述的用于时序数据的存储装置,其特征在于,所述第二存储子单元还包括:
判断建表子单元,用于根据所述存储所述时序数据统计值的数据表表名,判断所述存储所述时序数据统计值的数据表是否存在;若否,则创建所述存储所述时序数据统计值的数据表。
23.根据权利要求17所述的用于时序数据的存储装置,其特征在于,所述原始时序数据的数据生命周期可调节;所述原始时序数据的数据生命周期为第一预设生命周期;所述装置还包括:
第一删除单元,用于删除在所述第一预设生命周期之前的所述原始时序数据。
24.根据权利要求17所述的用于时序数据的存储装置,其特征在于,所述时序数据统计值的数据生命周期可调节;所述时序数据统计值的数据生命周期为第二预设生命周期;所述第二预设生命周期与所述时间粒度相对应;所述装置还包括:
第二删除单元,用于删除在所述第二预设生命周期之前的所述时序数据的统计值。
25.一种电子设备,其特征在于,包括:
显示器;
处理器;以及
存储器,所述存储器被配置成存储用于时序数据的存储装置,所述用于时序数据的存储装置被所述处理器执行时,包括如下步骤:采集待存储的时序数据,作为原始时序数据;所述原始时序数据的属性包括数据标识属性、时间属性和数据值属性;按照至少一个预设时间间隔,对相同数据标识的、时间位于所述预设时间间隔内的所述原始时序数据进行统计处理,形成相同数据标识的、至少一个时间粒度的时序数据统计值;将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中;
其中,所述原始时序数据和各个时间粒度的时序数据统计值所对应的数据精度不同;
所述将所述原始时序数据和各个时间粒度的时序数据统计值存储于分布式数据库中,包括:
根据所述原始时序数据和各个时间粒度的时序数据统计值所分别对应的数据精度,为所述原始时序数据和各个时间粒度的时序数据统计值分别预先设定不同的数据生命周期;
根据为所述原始时序数据和各个时间粒度的时序数据统计值分别预先设定的所述数据生命周期,将相同数据标识的所述原始时序数据和各个时间粒度的时序数据统计值分别存储在不同的数据表中。
26.一种用于时序数据的查询方法,其特征在于,包括:
接收时序数据的查询请求;所述查询请求包括时序数据的数据标识、数据起始时间和数据终止时间的至少一者,其中,所述时序数据包括至少一个数据精度的时序数据,根据为各个数据精度的时序数据分别预先设定的数据生命周期,所述至少一个数据精度的时序数据存储在不同数据表中;
根据预先设定的数据精度及数据生命周期的对应关系,对从所述数据起始时间到所述数据终止时间的时间范围进行划分,获取与各个数据精度对应的时间范围;所述时间范围位于所述数据起始时间和所述数据终止时间之间;
根据所述数据标识,获取存储所述数据标识的时序数据的存储区域;所述存储区域是指分布式数据库的局部数据库;
针对获取的各个数据精度对应的时间范围,从预先存储在所述存储所述数据标识的时序数据的存储区域中的、所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据;
将检索到的各个数据精度的时序数据作为查询结果。
27.根据权利要求26所述的用于时序数据的查询方法,其特征在于,相同数据精度的时序数据存储在以预设时间范围为数据组织单位的文件中;
相应的,从所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据,包括:
根据所述数据精度对应的时间范围和所述预设时间范围,计算获取存储所述数据精度的时序数据集的各个数据表表名;
根据预设哈希函数,计算所述数据标识的哈希值;
根据所述哈希值和所述各个数据表表名,逐个从所述存储所述数据精度的时序数据集的各个数据表中检索获取位于所述数据精度对应的时间范围内的时序数据。
28.根据权利要求26所述的用于时序数据的查询方法,其特征在于,所述根据所述数据标识,获取存储所述数据标识的时序数据的存储区域,包括:
根据预设哈希函数,计算所述数据标识的哈希值;
根据所述哈希值,获取所述存储所述数据标识的时序数据的存储区域。
29.一种用于时序数据的查询装置,其特征在于,包括:
接收单元,用于接收时序数据的查询请求;所述查询请求包括时序数据的数据标识、数据起始时间和数据终止时间的至少一者,其中,所述时序数据包括至少一个数据精度的时序数据,根据为各个数据精度的时序数据分别预先设定的数据生命周期,所述至少一个数据精度的时序数据存储在不同数据表中;
时间划分单元,用于根据预先设定的数据精度及数据生命周期的对应关系,对从所述数据起始时间到所述数据终止时间的时间范围进行划分,获取与各个数据精度对应的时间范围;所述时间范围位于所述数据起始时间和所述数据终止时间之间;
获取单元,用于根据所述数据标识,获取存储所述数据标识的时序数据的存储区域;所述存储区域是指分布式数据库的局部数据库;
检索单元,用于针对获取的各个数据精度对应的时间范围,从预先存储在所述存储所述数据标识的时序数据的存储区域中的、所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据;
合并单元,用于将检索到的各个数据精度的时序数据作为查询结果。
30.根据权利要求29所述的用于时序数据的查询装置,其特征在于,相同数据精度的时序数据存储在以预设时间范围为数据组织单位的文件中;
相应的,检索单元包括:
获取子单元,用于根据所述数据精度对应的时间范围和所述预设时间范围,计算获取存储所述数据精度的时序数据集的各个数据表表名;
计算子单元,用于根据预设哈希函数,计算所述数据标识的哈希值;
检索子单元,用于根据所述哈希值和所述各个数据表表名,逐个从所述存储所述数据精度的时序数据集的各个数据表中检索获取位于所述数据精度对应的时间范围内的时序数据。
31.一种电子设备,其特征在于,包括:
显示器;
处理器;以及
存储器,所述存储器被配置成存储用于时序数据的查询装置,所述用于时序数据的查询装置被所述处理器执行时,包括如下步骤:接收时序数据的查询请求;所述查询请求包括时序数据的数据标识、数据起始时间和数据终止时间的至少一者,其中,所述时序数据包括至少一个数据精度的时序数据,根据为各个数据精度的时序数据分别预先设定的数据生命周期,所述至少一个数据精度的时序数据存储在不同数据表中;根据预先设定的数据精度及数据生命周期的对应关系,对从所述数据起始时间到所述数据终止时间的时间范围进行划分,获取与各个数据精度对应的时间范围;所述时间范围位于所述数据起始时间和所述数据终止时间之间;根据所述数据标识,获取存储所述数据标识的时序数据的存储区域;所述存储区域是指分布式数据库的局部数据库;针对获取的各个数据精度对应的时间范围,从预先存储在所述存储所述数据标识的时序数据的存储区域中的、所述数据精度的时序数据集中检索获取位于所述数据精度对应的时间范围内的时序数据;将检索到的各个数据精度的时序数据作为查询结果。
32.一种用于时序数据的查询系统,其特征在于,包括:发送时序数据查询请求的客户端;以及根据权利要求29所述的用于时序数据的查询装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510729466.XA CN106648446B (zh) | 2015-10-30 | 2015-10-30 | 一种用于时序数据的存储方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510729466.XA CN106648446B (zh) | 2015-10-30 | 2015-10-30 | 一种用于时序数据的存储方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106648446A CN106648446A (zh) | 2017-05-10 |
CN106648446B true CN106648446B (zh) | 2020-07-07 |
Family
ID=58810629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510729466.XA Active CN106648446B (zh) | 2015-10-30 | 2015-10-30 | 一种用于时序数据的存储方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106648446B (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958959B (zh) * | 2017-05-18 | 2022-04-12 | 北京京东尚科信息技术有限公司 | 检测hive数据表的方法和装置 |
CN107273446A (zh) * | 2017-05-27 | 2017-10-20 | 杭州清本科技有限公司 | 分布式数据库的数据管理装置 |
CN109117428B (zh) * | 2017-06-26 | 2020-12-08 | 北京嘀嘀无限科技发展有限公司 | 数据存储方法及其装置、数据查询方法及其装置 |
CN107562533B (zh) * | 2017-07-28 | 2021-08-06 | 创新先进技术有限公司 | 一种数据加载处理方法及装置 |
CN107633347A (zh) * | 2017-08-22 | 2018-01-26 | 阿里巴巴集团控股有限公司 | 一种数据指标统计方法及装置 |
CN110019352B (zh) * | 2017-09-14 | 2021-09-03 | 北京京东尚科信息技术有限公司 | 用于存储数据的方法和装置 |
CN107609143B (zh) * | 2017-09-21 | 2020-06-05 | 国电南瑞科技股份有限公司 | 一种分布式实时内存数据库的分片信息存储方法 |
CN110069487A (zh) * | 2017-09-28 | 2019-07-30 | 北京国双科技有限公司 | 一种数据处理方法、装置及系统 |
CN107885791B (zh) * | 2017-10-19 | 2021-04-16 | 北京工业大数据创新中心有限公司 | 一种传感器数据层次化存储装置与方法 |
CN108398641B (zh) * | 2017-11-30 | 2021-03-09 | 深圳市科列技术股份有限公司 | 一种电池数据处理方法和电池数据服务器 |
CN108268589B (zh) * | 2017-12-05 | 2019-07-23 | 北京百度网讯科技有限公司 | 时序数据的聚合查询方法、装置、计算机设备及可读介质 |
CN108062378B (zh) * | 2017-12-12 | 2018-12-11 | 清华大学 | 一种列式存储下多时间序列的连接查询方法及系统 |
CN107908594B (zh) * | 2017-12-12 | 2018-12-28 | 清华大学 | 一种基于时域和频域的时序数据存储方法和系统 |
CN108132986B (zh) * | 2017-12-14 | 2020-06-16 | 北京航天测控技术有限公司 | 一种飞行器海量传感器试验数据的快速处理方法 |
CN107871022B (zh) * | 2017-12-20 | 2018-12-11 | 清华大学 | 一种时序数据列式存储、查询方法及系统 |
CN108197181B (zh) * | 2017-12-25 | 2023-04-18 | 广州亦云信息技术股份有限公司 | 一种时序数据的压缩存储方法、电子设备及存储介质 |
CN108322434A (zh) * | 2017-12-25 | 2018-07-24 | 广州亦云信息技术股份有限公司 | 一种时序数据的发送、接收方法及装置 |
CN108182244B (zh) * | 2017-12-28 | 2019-04-05 | 清华大学 | 一种基于多层次列式存储结构的时序数据存储方法 |
CN108256088A (zh) * | 2018-01-23 | 2018-07-06 | 清华大学 | 一种基于键值数据库的时序数据的存储方法及系统 |
CN108595553B (zh) * | 2018-04-10 | 2022-02-08 | 红云红河烟草(集团)有限责任公司 | 一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法 |
CN109063012A (zh) * | 2018-07-11 | 2018-12-21 | 北京百度网讯科技有限公司 | 存储、查询时序数据的方法、装置、设备和计算机存储介质 |
CN109379762B (zh) * | 2018-09-10 | 2021-09-14 | 中国联合网络通信集团有限公司 | 一种随机信号数据统计方法和系统 |
CN109388659B (zh) * | 2018-09-29 | 2021-06-29 | 北京京东尚科信息技术有限公司 | 数据存储方法、装置和计算机可读存储介质 |
CN109408508A (zh) * | 2018-09-30 | 2019-03-01 | 广州恩业电子科技有限公司 | 监测数据的存储和查询方法、装置和计算机设备 |
CN111061758B (zh) * | 2018-10-16 | 2023-10-20 | 杭州海康威视数字技术股份有限公司 | 数据存储方法、装置及存储介质 |
CN109597837B (zh) * | 2018-11-29 | 2023-12-01 | 深圳前海微众银行股份有限公司 | 时序数据的存储方法、查询方法及相关设备 |
US11354373B2 (en) | 2018-12-14 | 2022-06-07 | Sisense Ltd. | System and method for efficiently querying data using temporal granularities |
CN111488364A (zh) * | 2019-01-29 | 2020-08-04 | 顺丰科技有限公司 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
CN109977140B (zh) * | 2019-03-25 | 2022-04-05 | 中国农业银行股份有限公司 | 一种交易数据查询方法、装置及系统 |
CN110109923B (zh) * | 2019-04-04 | 2021-07-06 | 北京市天元网络技术股份有限公司 | 时序数据的存储方法、分析方法及装置 |
CN110046183A (zh) * | 2019-04-16 | 2019-07-23 | 北京易沃特科技有限公司 | 一种时序数据聚合检索方法、设备及介质 |
US11216466B2 (en) | 2019-04-24 | 2022-01-04 | Ebay Inc. | Managing database offsets with time series |
CN110222048B (zh) * | 2019-05-06 | 2023-06-23 | 平安科技(深圳)有限公司 | 序列生成方法、装置、计算机设备及存储介质 |
TWI712950B (zh) * | 2019-06-13 | 2020-12-11 | 和碩聯合科技股份有限公司 | 資料處理方法及裝置 |
CN112084226A (zh) * | 2019-06-13 | 2020-12-15 | 北京京东尚科信息技术有限公司 | 数据处理方法、系统、装置和计算机可读存储介质 |
CN110347726A (zh) * | 2019-07-17 | 2019-10-18 | 帷幄匠心科技(杭州)有限公司 | 一种高效时序数据集成存储查询系统及方法 |
CN110390160B (zh) * | 2019-07-19 | 2022-03-22 | 浪潮(北京)电子信息产业有限公司 | 一种时序信号的周期检测方法、装置及相关设备 |
CN110543496B (zh) * | 2019-09-06 | 2022-04-15 | 中国联合网络通信集团有限公司 | 用于时序数据库集群的数据处理方法和装置 |
CN110727682A (zh) * | 2019-09-27 | 2020-01-24 | 北京智道合创科技有限公司 | 数据存储方法及装置 |
CN111046240B (zh) * | 2019-11-26 | 2024-03-08 | 金蝶软件(中国)有限公司 | 网关流量统计方法、装置、计算机设备和存储介质 |
CN111552687B (zh) * | 2020-03-10 | 2023-08-04 | 远景智能国际私人投资有限公司 | 时序数据的存储方法、查询方法、装置、设备及存储介质 |
CN111400322B (zh) * | 2020-03-25 | 2023-10-03 | 抖音视界有限公司 | 用于存储数据的方法、装置、电子设备和介质 |
US20230252029A1 (en) * | 2020-06-24 | 2023-08-10 | Zhixie Huitong (Beijing) Technology Co., Ltd. | On-board data storage method and system |
CN111813782A (zh) * | 2020-07-14 | 2020-10-23 | 杭州海康威视数字技术股份有限公司 | 一种时序数据的存储方法、装置 |
CN112131433B (zh) * | 2020-08-20 | 2021-10-29 | 贝壳找房(北京)科技有限公司 | 区间计数查询方法及装置 |
CN112307051A (zh) * | 2020-10-10 | 2021-02-02 | 蔚来汽车科技(安徽)有限公司 | 数据查询方法、装置、介质以及数据处理系统 |
CN112445795A (zh) * | 2020-10-22 | 2021-03-05 | 浙江蓝卓工业互联网信息技术有限公司 | 一种时序数据库的分布式存储扩容方法及数据查询方法 |
CN112486985A (zh) * | 2020-11-26 | 2021-03-12 | 广州奇享科技有限公司 | 一种锅炉数据的查询方法、装置、设备及存储介质 |
CN112835908B (zh) * | 2021-02-22 | 2023-01-10 | 广东数程科技有限公司 | 一种时序数据存储方法、系统、存储设备和存储介质 |
CN114816275B (zh) * | 2022-06-28 | 2023-05-16 | 广东欧谱曼迪科技有限公司 | 灌注数据存储方法、装置、电子设备及存储介质 |
CN116975032B (zh) * | 2023-07-14 | 2024-04-12 | 南京领行科技股份有限公司 | 数据对齐方法、系统和电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0177020A2 (en) * | 1984-10-03 | 1986-04-09 | Shin Caterpillar Mitsubishi Ltd. | System for recording operation data of a work machine |
CN104268219A (zh) * | 2014-09-24 | 2015-01-07 | 国家电网公司 | 一种海量用电信息采集数据的管理方法及其系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043726B (zh) * | 2010-12-29 | 2012-08-15 | 北京播思软件技术有限公司 | 一种大规模时序数据的存储管理方法 |
CN102495851B (zh) * | 2011-11-17 | 2014-11-05 | 百度在线网络技术(北京)有限公司 | 时序数据的存储和查询方法、系统及装置 |
CN103631912B (zh) * | 2013-11-28 | 2016-08-03 | 清华大学 | 一种利用非关系数据库存储海量工业设备监测数据的方法 |
CN103605805B (zh) * | 2013-12-09 | 2016-10-26 | 冶金自动化研究设计院 | 一种海量时序数据的存储方法 |
-
2015
- 2015-10-30 CN CN201510729466.XA patent/CN106648446B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0177020A2 (en) * | 1984-10-03 | 1986-04-09 | Shin Caterpillar Mitsubishi Ltd. | System for recording operation data of a work machine |
CN104268219A (zh) * | 2014-09-24 | 2015-01-07 | 国家电网公司 | 一种海量用电信息采集数据的管理方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106648446A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648446B (zh) | 一种用于时序数据的存储方法、装置及电子设备 | |
US10176208B2 (en) | Processing time series data from multiple sensors | |
CN111125089B (zh) | 时序数据存储方法、装置、服务器及存储介质 | |
CN107766575B (zh) | 读写分离的数据库访问方法及装置 | |
US9521052B1 (en) | Methods, systems, and computer readable mediums for utilizing application programming interfaces for accessing key performance indicator information | |
CN110162526B (zh) | 一种块链式账本中数据记录的查询方法、装置及设备 | |
CN110413634B (zh) | 数据查询方法、系统、装置及计算机可读存储介质 | |
KR102031588B1 (ko) | 파일 저장 시의 색인 구현 방법 및 시스템 | |
CN108932257B (zh) | 多维度数据的查询方法及装置 | |
CN111061758B (zh) | 数据存储方法、装置及存储介质 | |
US9600559B2 (en) | Data processing for database aggregation operation | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN111046036A (zh) | 数据同步方法、装置、系统及存储介质 | |
US9779121B2 (en) | Transparent access to multi-temperature data | |
CN107491458B (zh) | 一种存储时间序列数据的方法和装置以及系统 | |
CN110413631B (zh) | 一种数据查询方法及装置 | |
CN104951462A (zh) | 用于管理数据库的方法和系统 | |
CN111782640A (zh) | 一种云平台的数据处理方法、系统、电子设备及存储介质 | |
CN107515807B (zh) | 一种存储监控数据的方法及装置 | |
CN111857981A (zh) | 一种数据处理方法以及装置 | |
CN115878684A (zh) | 时序数据分布式查询方法、装置、电子设备及存储介质 | |
CN113268546A (zh) | 一种区块链账本数据抓取解析方法 | |
CN110502543B (zh) | 设备性能数据存储方法、装置、设备和存储介质 | |
CN104317820B (zh) | 报表的统计方法和装置 | |
CN115374109B (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 |