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

文档序号:6634522阅读:686来源:国知局
一种用于电力大数据快速组合查询的动态索引方法
【专利摘要】本发明公开了一种用于电力大数据快速组合查询的动态索引方法,其特征在于,所述方法具体包括如下步骤:SS1利用动态索引图技术,为电力大数据建立一套立体的索引系统;SS2利用多条件组合查询方法创建索引;SS3建立电力大数据快速组合查询方案。本发明所达到的有益效果:采用动态索引图技术,实现多条件列索引的建立和快速组合查询,通过建立索引图为每个查询专门创建复合索引,避免了进行全表逐行扫描,大大提升了电力大数据组合查询的速度。
【专利说明】一种用于电力大数据快速组合查询的动态索引方法

【技术领域】
[0001]本实用新型涉及一种用于电力大数据快速组合查询的动态索引方法,属于电力信息化【技术领域】。

【背景技术】
[0002]随着电力系统数字化进程的推进,电力系统积累了大量的发、输、用电数据。目前仅江苏省用电信息系统历年保存下来的全省用电信息数据已达到几十TB,如何利用现有的大数据分析技术,挖掘电力大数据的潜在价值,使电力企业为客户提供更好的服务,是一个值得研究的课题。而2013年《中国电力大数据发展白皮书》的发布,将中国的电力大数据研究推向了一个新的起点,对中国电力大数据的研究与应用有着划时代的意义。
[0003]电力大数据其特征可概括为3 “V”和3 “E”,3 “V”代表体量大(Volume),类型多(Variety)和速度快(Velocity), 3“E”代表数据即能量(Energy)、数据即交互(Exchange)、数据即共情(Empathy)。在用电大数据中,这样的概括同样适用。
[0004]大数据基础之上创建高效索引虽然非常之难,但显而易见的是,大数据对索引的需求相比传统数据库更加迫切:传统数据库在几十万、几百万数据量的情况下需要使用索引才能提供满足要求的查询性能,那么专注于处理动辄几百亿、几千亿数据量的大数据技术如果不提供索引又如何能满足性能需求呢?传统数据库的索引其实都是一种单索引结构,虽然很多基于Hadoop的大数据产品可以支持复合索引,然而这种复合索引其本质依然是单索引,即一次查询只能用一个索引,所谓复合索引也只是将多个字段简单拼接。单索引的效率可以满足用户单条件的查询,而传统的复合索引由于其拼接的技术过于简单,因此也只能支持单一的查询,如果用户的查询条件更复杂、条件组合更灵活时,它就完全不能满足用户的需求了。
[0005]目前比较常见的大数据解决方案为Hadoop+ HBase,该解决方案通过搭建分布式处理软件框架和分布式存储系统,实现大数据的分布式存储和查询。HBase是按Rowkey进行排序和存储的,在进行数据查询时需要对数据块按行检索,但是查询速度远无法满足实时的需求。


【发明内容】

[0006]为克服现有技术存在的缺陷,解决上述技术问题,本发明一种用于电力大数据快速组合查询的动态索引方法。
[0007]本发明采用如下技术方案:一种用于电力大数据快速组合查询的动态索引方法,其特征在于,所述方法具体包括如下步骤:
SSl利用动态索引图技术,为电力大数据建立一套立体的索引系统;
SS2利用多条件组合查询方法创建索引;
SS3建立电力大数据快速组合查询方案。
[0008]优选地,步骤SSl包括:首先利用第一个域进行排序,建立若干索引起始点,然后使用hash技术将索引分段,构建一个多级立体式的索引分段系统。
[0009]优选地,步骤SS2包括:当用户使用条件组合进行数据查询时,数据库引擎会依据自身的独有机制动态使用这些原本独立创建索引提供任意组合的多条件的数据查询;
优选地,步骤SS2还包括:若使用没有创建索引的字段与其它已经创建了索引的字段进行组合查询,系统首先智能地去判断,发现其中的几个字段已有索引,将优先使用这几个字段初步判断与过滤,得到一组中间查询结果;对于并未建立索引的其它字段,需要再对中间结果数据进行逐条扫描。
[0010]优选地,步骤SS3具体包括如下步骤:
1)用户从客户端输入SQL命令;
2)通过JDBC和HBase连接到索引数据库;
3)解析SQL命令,从索引数据库找到对应的索引文件;
4)对索引文件进行修剪,形成针对具体查询命令的动态索引图;
5)通过动态索引图,得到需要查询的HFile的RowKey;
6)HBase根据RowKey从HDFS取数据;
7)将查询结果返回给用户。
[0011]优选地,步骤SS3中的步骤2)包括:当HBase读入新增数据时,所有数据同步被送到指定的查询加速服务器,按指定关键字和日期对某个字段进行数值的统计,并建立查询索引;当用户向HBase发出查询请求时,该请求被即时送到特制的查询引擎,根据查询条件返回对应的索引地址,通过索引地址找到原始数据,并返回结果。
[0012]上述术语的含义:DIG (dynamic index graph)即动态索引图技术。
[0013]Hash, 一般翻译做“散列”,就是把任意长度的输入(又叫做预映射,pre-1mage),通过散列算法,变换成固定长度的输出,该输出就是散列值。
[0014]SQL (Structured Query Language)即结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
[0015]HBase即Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。
[0016]JDBC (Java Data Base Connectivity)即 java 数据库连接,是一种用于执行 SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
[0017]RowKey相当于mysql数据库中的primary key,它就是那几个主键列的组合,列的顺序与primary key中定义的顺序一致。
[0018]HDFS 即 Hadoop Distributed File System,是一个分布式文件系统。
[0019]本发明所达到的有益效果:采用动态索引图技术,实现多条件列索引的建立和快速组合查询,通过建立索引图为每个查询专门创建复合索引,避免了进行全表逐行扫描,大大提升了电力大数据组合查询的速度。

【专利附图】

【附图说明】
[0020]图1是本发明的动态索引图的一个索引实施例的示意图。
[0021]图2是本发明的电力大数据组合查询的流程示意图。

【具体实施方式】
[0022]下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0023]为了解决大数据查询的效率问题,同时避免传统复合索引技术的带来的局限性,本发明提出了一种适用于用电大数据的复合索引技术——动态索引图技术(dynamicindex graph, DIG)。
[0024]DIG技术是一种基于分布式存储,分布式计算的索引架构,它对数据建立了一套立体的索引系统。这套索引系统首先利用第一个域进行排序,建立若干索引起始点,使用hash技术将索引分段,由第一个域的这些起始点指向下一个域的分段,以此类推,构建一个多级立体式的索引分段系统。当某一分段较疏松时,适当合并减少分段数,当某一分段较密集时,适当分离多建立分段,以达到分段的存储读取效率与查询效率之间的平衡。当一个查询开始时,由一个或多个起始点开始,根据约束条件进行递归查询。最终确定终结点的查询内容。
[0025]DIG充分利用了云设备的缓存调度,多核计算,将孤立创建的索引连接成索引系统,如图1所示的是本发明的动态索引图的一个索引实施例的示意图。当用户执行查询任务时,系统将智能的甄别查询类型,查询规模,自动选取最优的查询算法。在立体的索引系统中,利用选择的最优算法规避逐条搜索,充分使用系统预处理产生的多级索引及索引间的关联索引,索引内预判预读,多线程并行处理。最终达到大幅提高查询速度的效果。
[0026]由于在普通规模数据系统中的大多数查询是能够在秒级时间单位中完成,而这些操作对于海量数据往往就会上升成为分钟级,小时级的操作,DIG技术将查询海量数据时的大量应用从耗时若干分钟,加速至只需若干秒,从而把系统的响应时间压缩到用户等待的心理承受范围之内。
[0027]以四台设备,40亿条数据为例,假设每条数据有五个字段,每个字段10个字节定长。其全表内容约为200GB,每台设备处理50GB数据,以每分钟处理3GB的硬盘上限处理能力计算,一次查询需要15分钟以上。首页查询较优条件下也在5分钟以上。而使用DIG技术后首页查询时间会缩短至10-20秒,从而使查询时间落入用户等待的心理承受范围内。
[0028]索引对于传统数据库只是一个辅助手段,若用户使用了一个查询组合,但是这个查询组合并未建立索引,临时采用全表扫描技术进行查询也是可接受的一个解决方案。
[0029]但当分配到每台普通计算机的数据量大到一定程度时,逐行扫描技术已经完全无法满足系统的性能需求时,大数据下的高效索引则不仅仅是查询加速的辅助,而是查询的必要条件。因此,大数据快速组合查询的设计必须满足速度和通用性两个要求。
[0030]为满足快速组合查询的速度要求,从以下两个方面进行查询效率提升:
(1)从最底层的数据存储层上,利用大数据虚拟文件系统实现高性能大数据存储,为大数据快速查询提供了良好的基础;
(2)使用多维数据库为数据提供最优化的处理方式。
[0031]从通用性的角度来看,由于大数据查询对索引的要求不再仅仅局限于为查询提供一种加速的辅助功能,而是所有查询必须要使用的技术,因此,大数据技术下的索引技术必须能够为任意多条件的所有可能组合用的。
[0032]DIG技术创建的索引用户不必去考虑任意多条件的组合的可能性数量,只需要对可能用到的查询条件对应的字段创建索引即可。当用户使用由这些条件组成的条件组合进行数据查询时,数据库引擎会依据自身的独有机制动态使用这些原本独立创建索引提供任意组合的多条件的数据查询。
[0033]若使用没有创建索引的字段与其它已经创建了索引的字段进行组合查询,系统首先智能地去判断,发现其中的几个字段已有索引,将优先使用这几个字段初步判断与过滤,得到一组中间查询结果;由于另外的一些字段并未建立索引,因此需要再对中间结果数据进行逐条扫描。因为已经使用已有索引的几个字段进行了过滤,因此进行中间结果的逐条比对时,数据集的规模已经得到大幅降低。因此,即使偶尔使用了极少数没有提前创建索引的字段进行查询,在本文的查询引擎下,也可以提供相当不错的查询效率。
[0034]随着智能电表的普及,电力行业的数据量呈井喷式增长。电力行业是当前将终端普及到千家万户每一个角落的少有的几个行业之一(类似的还有水、煤气等行业)。
[0035]电力数据具有格式化、数据量大、周期性明显等特征。以江苏电力为例,如果每个小时采集一次数据,则一个小时就会产生三千万量级的数据,这个数据量还会随着数据采集频率的提升和用电单位数量的增长呈指数增长。
[0036]面对周期性产生的海量数据,大数据领域较为先进的HBase作为大数据存储与处理的基本平台。HBase虽然也提供了相对不错的大数据处理能力,但它依然不能提供任意多条件查询的索引技术。
[0037]由于HBase是按列存储的,并支持列族概念,对一个表做一个固定条件的查询时效率很高;但一般查询时往往需要进行多个条件的组合查询,而HBase并不支持多个条件的组合查询。因此结合HBase的自身特性,引入DIG技术以提高组合查询的效率是非常必要的。
[0038]用户通过JDBC与HBase实现数据库的互通,并实时完成统计预处理和建立查询索弓丨,当HBase读入新增数据时,所有数据同步被送到指定的查询加速服务器,按指定关键字和日期对某个字段进行数值的统计,并建立查询索引;当用户向HBase发出查询请求时,该请求被即时送到特制的查询引擎,根据查询条件返回对应的索引地址,通过索引地址找到原始数据,并返回结果。
[0039]如图2所示的是本发明的电力大数据组合查询的流程示意图。电力大数据快速组合查询方案包括如下步骤:
1)用户从客户端输入SQL命令;
2)通过JDBC和HBase连接到索引数据库;
3)解析SQL命令,从索引数据库找到对应的索引文件;
4)对索引文件进行修剪,形成针对具体查询命令的动态索引图;
5)通过动态索引图,得到需要查询的HFile的RowKey;
6)HBase根据RowKey从HDFS取数据;
7)将查询结果返回给用户。
[0040]基于DIG技术的查询,无论数据总量多少,查询的速度要求少于5秒。通过本方案实现了无需改变HBase的任何配置,同时无需任何编程,即可在海量大数据的压力下实现统计和查询的秒级响应。
[0041]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
【权利要求】
1.一种用于电力大数据快速组合查询的动态索引方法,其特征在于,所述方法具体包括如下步骤: SSl利用动态索引图技术,为电力大数据建立一套立体的索引系统; SS2利用多条件组合查询方法创建索引; SS3建立电力大数据快速组合查询方案。
2.根据权利要求1所述的一种用于电力大数据快速组合查询的动态索引方法,其特征在于,所述步骤SSl包括:首先利用第一个域进行排序,建立若干索引起始点,然后使用hash技术将索引分段,构建一个多级立体式的索引分段系统。
3.根据权利要求1所述的一种用于电力大数据快速组合查询的动态索引方法,其特征在于,所述步骤SS2包括:当用户使用条件组合进行数据查询时,数据库引擎会依据自身的独有机制动态使用这些原本独立创建索引提供任意组合的多条件的数据查询。
4.根据权利要求3所述的一种用于电力大数据快速组合查询的动态索引方法,其特征在于,步骤SS2还包括:若使用没有创建索引的字段与其它已经创建了索引的字段进行组合查询,系统首先智能地去判断,发现其中的几个字段已有索引,将优先使用这几个字段初步判断与过滤,得到一组中间查询结果;对于并未建立索引的其它字段,需要再对中间结果数据进行逐条扫描。
5.根据权利要求1所述的一种用于电力大数据快速组合查询的动态索引方法,其特征在于,所述步骤SS3具体包括如下步骤: 1)用户从客户端输入SQL命令; 2)通过JDBC和HBase连接到索引数据库; 3)解析SQL命令,从索引数据库找到对应的索引文件; 4)对索引文件进行修剪,形成针对具体查询命令的动态索引图; 5)通过动态索引图,得到需要查询的HFile的RowKey; 6)HBase根据RowKey从HDFS取数据; 7)将查询结果返回给用户。
6.根据权利要求5所述的一种用于电力大数据快速组合查询的动态索引方法,其特征在于,所述步骤SS3中的步骤2)包括:当HBase读入新增数据时,所有数据同步被送到指定的查询加速服务器,按指定关键字和日期对某个字段进行数值的统计,并建立查询索引;当用户向HBase发出查询请求时,该请求被即时送到特制的查询引擎,根据查询条件返回对应的索引地址,通过索引地址找到原始数据,并返回结果。
【文档编号】G06F17/30GK104317966SQ201410654100
【公开日】2015年1月28日 申请日期:2014年11月18日 优先权日:2014年11月18日
【发明者】郑海雁, 金农, 顾国栋, 丁晓, 吴钢, 王红星, 徐金玲, 金璐, 熊政, 丁陈, 方超, 仲春林, 李昆明, 李新家, 尹飞, 孟嘉, 季聪 申请人:国家电网公司, 江苏省电力公司, 江苏方天电力技术有限公司, 江苏省电力公司南京供电公司, 上海晟淘大数据科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1