一种用于电力大数据高效组合查询的实时索引方法与流程

文档序号:15982260发布日期:2018-11-17 00:28阅读:149来源:国知局

本发明涉及变电设备缺陷趋势分析技术领域,具体涉及一种用于电力大数据高效组合查询的实时索引方法。

背景技术

随着电力系统数字化进程的推进,电力系统积累了大量的发、输、用电数据。目前仅江苏省用电信息系统历年保存下来的全省用电信息数据已达到几十tb,如何利用现有的大数据分析技术,挖掘电力大数据的潜在价值,使得电力企业为客户提供更好的服务,是一个值得研究的课题。而2013年《中国电力大数据发展白皮书》的发布,将中国的电力大数据研究推向了一个新的起点,对中国电力大数据的研究与应用有着划时代的意义。

电力大数据其特征可概括为3“v”和3“e”,3“v”代表体量大(volume),类型多(variety)和速度快(velocity),3“e”代表数据即能量(energy)、数据即交互(exchange)、数据即共情(empathy)。在用电大数据中,这样的概括同样适用。

大数据基础之上创建高效索引虽然非常之难,但显而易见的是,大数据对索引的需求相比传统数据库更加迫切:传统数据库在几十万、几百万数据量的情况下需要使用索引才能提供满足要求的查询性能,那么专注于处理动辄几百亿、几千亿数据量的大数据技术如果不提供索引又如何能满足性能需求呢?传统数据库的索引其实都是一种单索引结构,虽然很多基于hadoop的大数据产品可以支持复合索引,然而这种复合索引其本质依然是单索引,即一次查询只能用一个索引,所谓复合索引也只是将多个字段简单拼接。单索引的效率可以满足用户单条件的查询,而传统的复合索引由于其拼接的技术过于简单,因此也只能支持单一的查询,如果用户的查询条件更复杂、条件组合更灵活时,它就完全不能满足用户的需求了。

目前比较常见的大数据解决方案为hadoop+hbase,该解决方案通过搭建分布式处理软件框架和分布式存储系统,在进行数据查询时需要对数据块按行检索,但是查询速度远无法满足实时的需求。



技术实现要素:

本发明的目的就是为了解决上述技术问题,而提供一种用于电力大数据高效组合查询的实时索引方法。

本发明包括以下步骤:

s1:利用实时索引图技术,为电力大数据建立立体的索引系统;

s2:利用多条件组合查询方法创建索引;

s3:建立多条件组合查询方法创建索引。

所述步骤s1具体方法为:首先利用第一个域进行排序,建立若干索引起始点,然后使用hash技术将索引分段,构建一个多级立体式的索引分段系统。

所述步骤s2具体方法为:当用户使用条件组合进行数据查询时,数据库引擎会依据自身的独有机制实时使用这些原本独立创建索引提供任意组合的多条件的数据查询。

所述步骤s2中若使用没有创建索引的字段与其它已经创建了索引的字段进行组合查询,系统首先智能地去判断,发现其中的几个字段已有索引,将优先使用这几个字段初步判断与过滤,得到一组中间查询结果;对于并未建立索引的其它字段,需要再对中间结果数据进行逐条扫描。

所述步骤s3具体包括如下步骤:

t1.用户从客户端输入sql命令;

t2.通过jdbc和hbase连接到索引数据库;

t3.解析sql命令,从索引数据库找到对应的索引文件;

t4.对索引文件进行修剪,形成针对具体查询命令的实时索引图;

t5.通过实时索引图,得到需要查询的hfile的rowkey;

t6.hbase根据rowkey从hdfs取数据;

t7.将查询结果返回用户。

所述步骤t2具体方法为:当hbase读入新增数据时,所有数据同步被送到指定的查询加速服务器,按指定关键字和日期对某个字段进行数值的统计,并建立查询索引;当用户向hbase发出查询请求时,该请求被即时送到特制的查询引擎,根据查询条件返回对应的索引地址,通过索引地址找到原始数据,并返回结果。

本发明具有以下优点:采用实时索引图技术,实现多条件列索引的建立和高效组合查询,通过建立索引图为每个查询专门1创建复合索引,避免了进行全表逐行扫描,大大提升了电力大数据组合查询的速度。

附图说明

图1是本发明的实时索引图的一个索引实施例的示意图。

图2是本发明的电力大数据组合查询的流程示意图。

具体实施方式

下面结合附图对本发明做进一步说明。

如图1、2所示,本发明包括以下步骤:

s1:利用实时索引图技术,为电力大数据建立立体的索引系统;

s2:利用多条件组合查询方法创建索引;

s3:建立多条件组合查询方法创建索引。

所述步骤s1具体方法为:首先利用第一个域进行排序,建立若干索引起始点,然后使用hash技术将索引分段,构建一个多级立体式的索引分段系统。

所述步骤s2具体方法为:当用户使用条件组合进行数据查询时,数据库引擎会依据自身的独有机制实时使用这些原本独立创建索引提供任意组合的多条件的数据查询。

所述步骤s2中若使用没有创建索引的字段与其它已经创建了索引的字段进行组合查询,系统首先智能地去判断,发现其中的几个字段已有索引,将优先使用这几个字段初步判断与过滤,得到一组中间查询结果;对于并未建立索引的其它字段,需要再对中间结果数据进行逐条扫描。

所述步骤s3具体包括如下步骤:

t1.用户从客户端输入sql命令;

t2.通过jdbc和hbase连接到索引数据库;

t3.解析sql命令,从索引数据库找到对应的索引文件;

t4.对索引文件进行修剪,形成针对具体查询命令的实时索引图;

t5.通过实时索引图,得到需要查询的hfile的rowkey;

t6.hbase根据rowkey从hdfs取数据;

t7.将查询结果返回用户。

所述步骤t2具体方法为:当hbase读入新增数据时,所有数据同步被送到指定的查询加速服务器,按指定关键字和日期对某个字段进行数值的统计,并建立查询索引;当用户向hbase发出查询请求时,该请求被即时送到特制的查询引擎,根据查询条件返回对应的索引地址,通过索引地址找到原始数据,并返回结果。

上述术语的含义:dig(dynamicindexgraph)即实时索引图技术。

hash,一般翻译做“散列”,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。

sql(structuredquerylanguage)即结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

hbase即hadoopdatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。

jdbc(javadatabaseconnectivity)即java数据库连接,是一种用于执行sql语句的javaapi,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。

rowkey相当于mysql数据库中的primarykey,它就是那几个主键列的组合,列的顺序与primarykey中定义的顺序一致。

hdfs即hadoopdistributedfilesystem,是一个分布式文件系统。

工作原理:dig技术是一种基于分布式存储,分布式计算的索引构架,它对数据建立了一套立体的索引系统。这套索引系统首先利用第一个域进行排序,建立若干索引起始点,使用hash技术将索引分段,由第一个域的这些起始点指向下一个域的分段,以此类推,构建一个多级立体式的索引分段系统。当某一分段较疏松时,适用合并减少分段,当某一分段较密集时,适当分离多建立分段,以达到分段的存储读取效率与查询效率之间的平衡。当一个查询开始时,由一个或多个起始点开始,根据约束条件进行递归查询。最终确定终结点的查询内容。

dig充分利用了云设备的缓存调度,多核计算,将孤立创建的索引连接成索引系统,如图1所示的是本发明的实时索引图的一个索引实施例的示意图。当用户执行查询任务时,系统将智能的甄别查询类型,查询规模,自动选取最优的查询算法。在立体的索引系统中,利用选择的最优算法规避逐条搜索,充分使用系统预处理产生的多级索引及索引间的关联索引,索引,索引内预判预读,多线程并行处理。最终达到大幅提高查询速度的效果。

由于在普通规模数据系统中的大多数查询时能够在秒级时间单位中完成,而这些操作对于海量数据往往就会上升成为分钟级,小时级的操作,dig技术将查询海量数据时的大量应用从耗时若干分钟,加速至只需若干秒,从而把系统的响应时间压缩到用户等待的心理承受范围之内。

以四台设备,40亿条数据为例,假设每条数据有五个字段,每个字段10个字节定长。其全表内容约为200gb。每台设备处理50gb数据,以每分钟处理3gb的硬盘上限处理能力计算,一次查询需要15分钟以上。首页查询较优条件下也在5分钟以上。而使用dig技术后首页查询时间会缩短至10—20秒,从而使查询时间落入用户等待的心理承受范围内。

索引对于传统数据库只是一个辅助手段,若用户使用了一个查询组合,但是这个查询组合并未建立索引,临时采用全表扫描技术进行查询也是可接受的一个解决方案。

但当分配到每台普通计算机的数据量大到一定程度时,逐行扫描技术已经完全无法满足系统的性能需求时,大数据下的高效索引则不仅仅是查询加速的辅助,而是查询的必要条件。因此,大数据高效组合查询的设计必须满足速度和通用性两个要求。

为满足高效查询的速度要求,从以下两个方面进行查询效率提升:

(1)从最底层的数据存储层上,利用大数据虚拟文件系统实现高性能大数据存储,为大数据高效查询提供了良好的基础;

(2)使用多维数据库为数据提供最优化的处理方式。

从通用性的角度来看,由于大数据查询对索引的要求不再仅仅局限于为查询提供一种加速的辅助功能,而是所有查询必须要使用的技术,因此,大数据技术下的索引技术必须能够为任意多条件的所有可能组合用的。

dig技术创建的索引用户不必去考虑任意多条件的组合的可能性数量,只需要对可能用到的查询条件对应的字段创建索引即可。当用户使用这些条件组成的条件组合进行数据查询时,数据库引擎会依据自身的独有机制实时使用这些原本独立创建索引提供任何组合的多条件的数据查询。

若使用没有创建索引的字段与其它已经创建了索引的字段进行组合拆线呢,系统首先智能地去判断,发现其中的几个字段已有索引,将优先使用这几个字段初步判断与过滤,得到一组中间查询结果;由于另外的一些字段并未建立索引,因此需要再对中间结果的逐条对比时数据集的规模已经得到大幅降低。因此即使偶尔使用了极少数没有提前创建索引的字段进行查询,在文本的查询引擎下,也可以提供相当不错的查询效率。

随着智能电表的普及,电力行业的数据量呈井喷式增长。电力行业是当前将终端普及到千家万户每一个角落的少有的几个行业之一(类似的还有水、煤气等行业)。

电力数据具有格式化、数据量大、周期性明显等特征。以江苏电力为例。如果每个小时采集一次数据,则一个小时就会产生三千万量级的数据,这个数据量还会随着数据采集频率的提升和用电单位数量的增长呈指数增长。

面对周期性产生的海量数据。大数据领域较为先进的hbase作为大数据存储与处理的基本平台。hbase虽然也提供了相当不错的大数据处理能力,但它依然不能提供任意多条件查询的索引技术。

由于hbase是按列存储的,并支持列族概念,对一个表做一个固定条件的查询时效率很高;但一般查询时往往需要进行多个条件的组合查询,而hbase并不支持多个条件的组合查询。因此结合hbase的自身特性,引入dig技术以提高组合查询的效率是非常必要的。

用户通过jdbc与hbase实现数据库的互通,并实时完成统计预处理和建立查询索引,当hbase读入新数据时,所有数据同步被送到指定的查询加速服务器,按指定关键字和日期对某个字段进行数值的统计,并建立查询索引;当用户向hbase发送查询请求时,该请求被即时送到特制的查询引擎,根据查询条件返回对应的索引地址,通过索引地址找到原始数据,并返回结果。

如图2所示的是本发明的电力大数据组合查询的流程示意图。电力大数据高效组合查询方案包括如下步骤:

1.用户从客户端输入sql命令;

2.通过jdbc和hbase连接到索引数据库;

3.解析sql命令,从索引数据库找到对应的索引文件;

4.对索引文件进行修剪,形成针对具体查询命令的实时索引图;

5.通过实时索引图,得到需要查询的hfile的rowkey;

6.hbase根据rowkey从hdfs取数据;

7.将查询结果返回用户。

基于dig技术的查询,无论数据总量多少,查询的速度要求少于5秒。通过本方案实现了无需改变hbase的任何配置,同时无需任何编程,即可在海量大数据的压力下实现统计和查询的秒级响应。

以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1