掌桥专利:专业的专利平台
掌桥专利
首页

一种用于电力大数据快速组合查询的动态索引方法及系统

文献发布时间:2023-06-19 10:21:15


一种用于电力大数据快速组合查询的动态索引方法及系统

技术领域

本发明涉及大数据的技术领域,尤其涉及一种用于电力大数据快速组合查询的动态索引方法及系统。

背景技术

随着电力系统数字化进程的推进,电力系统积累了大量的电力数据,电力大数据时代也随之到来。同时随着电力数据的增多,简单的逐行扫描已经无法满足性能需求,建立高效的索引机制和快速的电力大数据组合查询功能成为当前研究的热门话题。

目前现有的电力大数据解决方案为Hadoop+HBase,该解决方案通过搭建分布式处理软件框架和分布式存储系统,实现大数据的分布式存储和查询;由于HBase是按Rowkey进行排序和存储的,在进行数据查询时需要对数据块按行检索,查询速度远无法满足实时的需求。

鉴于此,如何更为高效的数据索引机制,进行电力数据的查询,成为本领域技术人员亟待解决的问题。

发明内容

本发明提出一种用于电力大数据快速组合查询的动态索引方法及系统,通过采取层次化组合索引结构进行组合索引,从而在内存中使用基于排序的索引构建方法进行内存索引的构建,在数据库使用基于数据分片的方式构建完成不同的索引段,利用索引合并算法实现内存索引和数据库索引的合并,进而实现电力大数据的组合快速查询。为实现上述目的,本发明提供的一种用于电力大数据快速组合查询的动态索引方法,包括:

获取电力数据,并将电力数据存储到数据库中,利用基于排序的内存索引构建方法进行内存索引的构建;

利用基于数据库分片的算法对数据库中所存储的电力数据进行数据库索引的构建;

利用基于缓存队列的方式将带有数据库索引的电力数据导入数据库缓存中;

利用索引相似度算法计算内存索引与数据库索引的相似度,将相似的索引进行合并处理,同时进行数据库缓存以及内存中电力数据索引的更新,实现利用电力数据索引进行数据查询。

可选地,所述利用基于排序的内存索引构建方法进行内存索引的构建,包括:

所述基于排序的内存索引方法即将电力数据依据访问频率以及时序特征,进行冷热数据的划分,将数据的主题hash值作为数据索引,并将热数据存储到内存中;

本发明提出一种结合指数平滑法的电力数据热度访问值计算方法,当对于第n个电力数据的热度值hot

其中:

β为衰减系数,表示数据的历史热度在当前热度中的所占的权重大小,因此,在一个计算周期内,当β越大时,当前的热度值权重越大,历史热度值的权重越小,反之亦然;

T

hot

Visit

可选地,所述对内存索引数据进行实时更新,包括:

根据统计周期计算,系统检测到距离上一次内存数据淘汰达到设定的时限,就会对内存的索引数据进行重新计算按照计算的hot值进行排序,淘汰hot最低的100个;

设定阈值,即内存中的热数据量达到200MB时会触发一次内存中热数据淘汰,按照新计算的热度值进行排序,淘汰末尾的数据,保证淘汰完之后的内存中热数据量降到阈值的80%。

可选地,所述利用基于数据库分片的算法构建数据库中所存储的电力数据的数据库索引,包括:

1)根据索引的数据大小、索引下某主题类型数据的大小及设置的数据库分片比例系数,确定给不同主题的数据预先分配多少数据库分片进行绑定,所述绑定的数据库分片数的计算公式为:

其中:

Size

N

r表示最小比例系数,设置为0.01;

随着某类主题类型数据量的不断增长,分片数的计算结果也会不断的变大,在结果增加后,相应也会给该主题类型的数据分配更多的分片;所述数据库分片即将数据库划分为若干数据库存储区域;

2)对每个数据库分片进行打分,所述数据库分片的打分公式为:

其中:

Q为当前数据库分片的负载值;

N

Num

Num

3)通过计算不同主题电力数据的总量,从而将数据总量多的主题电力数据存储在得分高的数据分片中;在主题电力数据不断增大的同时,分片数会慢慢增加,当增加一个分片时,单分片绑定就会升级到多分片绑定,系统会为该主题类型数据再分配一个最合适的分片,新增加的数据直接存储到新分配分片中;同时将数据的地址信息hash值作为数据的索引;所述数据的地址信息hash值即为数据库分片的地址。

可选地,所述利用基于缓存队列的方式将带有数据库索引的电力数据导入数据库缓存中的流程为:

1)为每个索引建立数据请求缓冲区进行请求数据的收集;

2)当请求缓冲区的数据量达到阈值或者在一定的时间周期后,根据请求数据中需要分词并建立倒排索引的域作为数据的特征域,通过该域利用聚类算法,划分不同的主题类型数据,让特征域相似的数据聚集在一起;

3)然后根据分片绑定元数据信息得到不同主题类型数据的绑定方式及对应的绑定节点,将缓存区中相同主题类型的数据平均分成N份,N为绑定的分片个数;

4)建立N个数据转发队列,每个队列对应于不同的分片节点,将平分好的数据放入到对应的数据转发队列中,并为每个转发队列中的数据通过自定义的id生成算法自动生成docId,使同一队列下的数据根据docId计算出的路由值都为目标分片序号,在进行批量数据转发时,由于每个数据都能计算出正确的路由值,因此在目标节点上不会再次进行数据转发。

可选地,所述利用索引相似度算法计算内存索引与数据库索引的相似度,将相似的索引进行合并处理,包括:

1)利用Jaccard相似度计算公式计算不同索引值的相似度,并将相似度较高的两个索引作为相似集合:

其中:

A,B分别为内存索引hash值,数据库索引hash值;

2)通过相似度最高的两个索引段的关键词集合取并集得到该相似集合中的总的关键词集合,并让每个索引段的关键词集合与总的关键词集合进行相比从而得到每个索引段的在该集合中的平均相似度系数Sim

其中:

C

C

3)计算得到两种索引之间的相似度S:

其中:

σ为相似集合内索引大小标准差;

4)根据索引相似度得分的高低对索引进行排序,根据用户设置的单次合并的最大索引段数量,去候选的相似集合中选取Top N个索引作为最优的待合并索引集合,并进行索引的合并;同时根据索引合并结果进行数据库缓存以及内存中电力数据索引的更新,实现利用电力数据索引进行数据查询。

此外,为实现上述目的,本发明还提供一种用于电力大数据快速组合查询的动态索引系统,所述系统包括:

电力数据获取装置,用于获取电力大数据;

电力数据处理器,用于利用基于排序的内存索引构建方法对电力数据进行内存索引的构建,以及利用基于数据库分片的算法对数据库中所存储的电力数据进行数据库索引的构建;同时利用基于缓存队列的方式将带有数据库索引的电力数据导入数据库缓存中;

电力数据查询装置,用于利用索引相似度算法计算内存索引与数据库索引的相似度,将相似的索引进行合并处理,同时进行数据库缓存以及内存中电力数据索引的更新,实现利用电力数据索引进行数据查询。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有电力数据查询程序指令,所述电力数据查询程序指令可被一个或者多个处理器执行,以实现如上所述的用于电力大数据快速组合查询的动态索引的实现方法的步骤。

相对于现有技术,本发明提出一种用于电力大数据快速组合查询的动态索引方法,该技术具有以下优势:

首先,本发明提出一种基于排序的内存索引构建方法进行内存索引的构建,所述基于排序的内存索引方法即将电力数据依据访问频率以及时序特征,进行冷热数据的划分,将数据的主题hash值作为数据索引,并将热数据存储到内存中;由于传统冷热数据划分仅仅是考虑了数据的访问热度,并没有将时间维度考虑进来,而数据在使用过程中,最近一阶段的访问频率对下一个阶段的影响最大,但随着时间的推移这一影响会不断减弱;因此本发明提出一种结合指数平滑法的电力数据热度访问值计算方法,当对于第n个电力数据的热度值hot

其中:β为衰减系数,表示数据的历史热度在当前热度中的所占的权重大小,因此,在一个计算周期内,当β越大时,当前的热度值权重越大,历史热度值的权重越小,反之亦然;r

同时本发明提出一种基于数据库分片的算法对数据库中所存储的电力数据进行数据库索引的构建,通过将数据库划分为若干数据库存储区域,所划分的每一块存储区域即为数据库分片,并对每个数据库分片进行打分,所述数据库分片的打分公式为:

其中:Q为当前数据库分片的负载值;N

本发明进而使热度高以及数量多且同主题的电力数据具备更为方便查询的数据索引值,即将热度高的数据存储在系统内存中,将分片数较多的数据缓存到数据库缓存中,同时计算内存索引与数据库索引的相似度,将相似的索引进行合并处理,同时进行数据库缓存以及内存中电力数据索引的更新,实现利用电力数据索引进行更为高效的数据查询。

附图说明

图1为本发明一实施例提供的一种用于电力大数据快速组合查询的动态索引方法的流程示意图;

图2为本发明一实施例提供的一种用于电力大数据快速组合查询的动态索引系统的结构示意图;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

通过采取层次化组合索引结构进行组合索引,从而在内存中使用基于排序的索引构建方法进行内存索引的构建,在数据库使用基于数据分片的方式构建完成不同的索引段,利用索引合并算法实现内存索引和数据库索引的合并,进而实现电力大数据的组合快速查询。参照图1所示,为本发明一实施例提供的用于电力大数据快速组合查询的动态索引方法示意图。

在本实施例中,用于电力大数据快速组合查询的动态索引方法包括:

S1、获取电力数据,并将电力数据存储到数据库中;利用基于排序的内存索引构建方法进行内存索引的构建。

首先,本发明获取大量电力数据,所述电力数据包括周期性用户的用电量以及用电设备的用电量等电力数据,并基于电力数据的主题类型,将电力数据存储到数据库中;

进一步地,本发明利用基于排序的内存索引构建方法进行内存索引的构建,所述基于排序的内存索引方法即将电力数据依据访问频率以及时序特征,进行冷热数据的划分,将数据的主题hash值作为数据索引,并将热数据存储到内存中;

由于传统冷热数据划分仅仅是考虑了数据的访问热度,并没有将时间维度考虑进来,而数据在使用过程中,最近一阶段的访问频率对下一个阶段的影响最大,但随着时间的推移这一影响会不断减弱;因此本发明提出一种结合指数平滑法的电力数据热度访问值计算方法,当对于第n个电力数据的热度值hot

其中:

β为衰减系数,表示数据的历史热度在当前热度中的所占的权重大小,因此,在一个计算周期内,当β越大时,当前的热度值权重越大,历史热度值的权重越小,反之亦然;

T

Visit

hot

在索引数据写入初期,缓存大量空间闲置,这时候写入和被访问的索引数据,会被直接写入内存中,这样做的好处是,加快了初期的热数据内存构建过程,减少了频繁计算耗时;

随着内存中热数据的增加,本发明提出两种内存中数据替换的方法,一是根据统计周期计算,系统检测到距离上一次内存数据淘汰达到设定的时限(默认是10分钟,可通过XML配置),就会对内存的索引数据进行重新计算按照计算的hot值进行排序,淘汰hot最低的100个;

但如果在统计周期内,内存中热数据的写入太频繁,导致内存溢出,新的热数据可能一直无法写入,内存中的数据也并不一定就是当前时间段的热点数据,需要第二种热数据淘汰策略,设定阈值(默认为200MB,可通过XML配置),即内存中的热数据量达到200MB时会触发一次内存中热数据淘汰,也是按照新计算的热度值进行排序,淘汰末尾的数据,保证淘汰完之后的内存中热数据量降到阈值的80%,此时就能为新的热点数据保留一定的写入空间,从而解决内存溢出的问题。

S2、利用基于数据库分片的算法对数据库中所存储的电力数据进行数据库索引的构建。

进一步地,本发明利用基于数据库的算法对数据库中所存储的电力数据进行数据库索引的构建,所述基于数据库分片的算法流程为:

1)根据索引的数据大小、索引下某主题类型数据的大小及设置的数据库分片比例系数,确定给不同主题的数据预先分配多少数据库分片进行绑定,所述绑定的数据库分片数的计算公式为:

其中:

Size

N

r表示最小比例系数,设置为0.01;

随着某类主题类型数据量的不断增长,分片数的计算结果也会不断的变大,在结果增加后,相应也会给该主题类型的数据分配更多的分片;所述数据库分片即将数据库划分为若干数据库存储区域;

2)对每个数据库分片进行打分,所述数据库分片的打分公式为:

其中:

Q为当前数据库分片的负载值;

N

Num

Num

3)通过计算不同主题电力数据的总量,从而将数据总量多的主题电力数据存储在得分高的数据分片中;在主题电力数据不断增大的同时,分片数会慢慢增加,当增加一个分片时,单分片绑定就会升级到多分片绑定,系统会为该主题类型数据再分配一个最合适的分片,新增加的数据直接存储到新分配分片中;同时将数据的地址信息hash值作为数据的索引;所述数据的地址信息hash值即为数据库分片的地址。

S3、利用基于缓存队列的方式将带有数据库索引的电力数据导入数据库缓存中。

进一步地,本发明利用基于缓存队列的方式将带有数据库索引的电力数据导入到数据库缓存中,所述基于缓存队列的数据库缓存步骤为:

1)为每个索引建立数据请求缓冲区进行请求数据的收集;

2)当请求缓冲区的数据量达到阈值或者在一定的时间周期后,根据请求数据中需要分词并建立倒排索引的域作为数据的特征域,通过该域利用聚类算法,划分不同的主题类型数据,让特征域相似的数据聚集在一起;

3)然后根据分片绑定元数据信息得到不同主题类型数据的绑定方式及对应的绑定节点,将缓存区中相同主题类型的数据平均分成N份,N为绑定的分片个数;

4)建立N个数据转发队列,每个队列对应于不同的分片节点,将平分好的数据放入到对应的数据转发队列中,并为每个转发队列中的数据通过自定义的id生成算法自动生成docId,使同一队列下的数据根据docId计算出的路由值都为目标分片序号,在进行批量数据转发时,由于每个数据都能计算出正确的路由值,因此在目标节点上不会再次进行数据转发。

本发明所述数据缓存方法虽然牺牲了部分的数据检索实时性,但优化了相同主题类型的数据分布,并将原有的多次转发请求减少为一次数据转发,节约了发送和接收数据请求的开销,减少了集群网络带宽的负载,从而提高了数据的导入速度和数据的检索速度。

S4、利用索引相似度算法计算内存索引与数据库索引的相似度,将相似的索引进行合并处理,同时进行数据库缓存以及内存中电力数据索引的更新,实现利用电力数据索引进行数据查询。

进一步地,本发明利用索引相似度算法计算内存索引与数据库索引的相似度,所述索引相似度的计算方法为:

1)利用Jaccard相似度计算公式计算不同索引值的相似度,并将相似度较高的两个索引作为相似集合:

其中:

A,B分别为内存索引hash值,数据库索引hash值;

2)通过相似度最高的两个索引段的关键词集合取并集得到该相似集合中的总的关键词集合,并让每个索引段的关键词集合与总的关键词集合进行相比从而得到每个索引段的在该集合中的平均相似度系数Sim

其中:

C

C

3)计算得到两种索引之间的相似度S:

其中:

σ为相似集合内索引大小标准差;

4)根据索引相似度得分的高低对索引进行排序,根据用户设置的单次合并的最大索引段数量,去候选的相似集合中选取TopN个索引作为最优的待合并索引集合,并进行索引的合并;同时根据索引合并结果进行数据库缓存以及内存中电力数据索引的更新,实现利用电力数据索引进行数据查询。

下面通过一个算法实验来说明本发明的具体实施方式,并对发明的处理方法进行测试。本发明算法的硬件测试环境为:实验的开发环境为Intel(R)Core(TM)i5-3470S CPU@2.90GHz 2.89GHz和8GB内存的PC机上,系统为windows10系统。对比方法为基于哈希索引的电力数据查询方法、基于倒索引的电力数据查询方法以及无索引的电力数据查询方法。

在本发明所述算法实验中,本实验通过10T的电力数据,分别使用本发明所述方法以及对比方法进行电力数据的检索查询,将数据查询的时间作为电力数据查询方法的评价指标。

根据实验结果,基于哈希索引的电力数据查询方法的数据查询时间为0.16s,基于倒索引的电力数据查询方法的数据查询时间为0.26s,无索引的电力数据查询方法的数据查询时间为0.28s,本发明所述算法的数据检索时间为0.08s,相较于对比算法,本发明所提出的用于电力大数据快速组合查询的动态索引方法能更为高效地完成电力数据的查询。

发明还提供一种用于电力大数据快速组合查询的动态索引系统。参照图2所示,为本发明一实施例提供的用于电力大数据快速组合查询的动态索引系统的内部结构示意图。

在本实施例中,所述用于电力大数据快速组合查询的动态索引系统1至少包括电力数据获取装置11、电力数据处理器12、电力数据查询装置13,通信总线14,以及网络接口15。

其中,电力数据获取装置11可以是PC(Personal Computer,个人电脑),或者是智能手机、平板电脑、便携计算机等终端设备,也可以是一种服务器等。

电力数据处理器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。电力数据处理器12在一些实施例中可以是用于电力大数据快速组合查询的动态索引系统1的内部存储单元,例如该用于电力大数据快速组合查询的动态索引系统1的硬盘。电力数据处理器12在另一些实施例中也可以是用于电力大数据快速组合查询的动态索引系统1的外部存储设备,例如用于电力大数据快速组合查询的动态索引系统1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,电力数据处理器12还可以既包括用于电力大数据快速组合查询的动态索引系统1的内部存储单元也包括外部存储设备。电力数据处理器12不仅可以用于存储安装于用于电力大数据快速组合查询的动态索引系统1的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。

电力数据查询装置13在一些实施例中可以是一中央处理器(Central ProcessingUnit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行电力数据处理器12中存储的程序代码或处理数据,例如电力数据查询程序指令等。

通信总线14用于实现这些组件之间的连接通信。

网络接口15可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该系统1与其他电子设备之间建立通信连接。

可选地,该系统1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在用于电力大数据快速组合查询的动态索引系统1中处理的信息以及用于显示可视化的用户界面。

图2仅示出了具有组件11-15以及用于电力大数据快速组合查询的动态索引系统1,本领域技术人员可以理解的是,图1示出的结构并不构成对用于电力大数据快速组合查询的动态索引系统1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

在图2所示的装置1实施例中,电力数据处理器12中存储有电力数据查询程序指令;电力数据查询装置13执行电力数据处理器12中存储的电力数据查询程序指令的步骤,与用于电力大数据快速组合查询的动态索引方法的实现方法相同,在此不作类述。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有电力数据查询程序指令,所述电力数据查询程序指令可被一个或多个处理器执行,以实现如下操作:

获取电力数据,并将电力数据存储到数据库中,利用基于排序的内存索引构建方法进行内存索引的构建;

利用基于数据库分片的算法对数据库中所存储的电力数据进行数据库索引的构建;

利用基于缓存队列的方式将带有数据库索引的电力数据导入数据库缓存中;

利用索引相似度算法计算内存索引与数据库索引的相似度,将相似的索引进行合并处理,同时进行数据库缓存以及内存中电力数据索引的更新,实现利用电力数据索引进行数据查询。

需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种用于电力大数据快速组合查询的动态索引方法及系统
  • 一种用于电力大数据快速组合查询的动态索引方法
技术分类

06120112518911