一種用于電力大數(shù)據(jù)快速查詢方法
【專利摘要】本發(fā)明公開了一種用于電力大數(shù)據(jù)快速查詢方法,其特征在于,所述方法具體包括如下步驟:SS1利用動態(tài)索引圖技術,為電力大數(shù)據(jù)建立一套立體的索引系統(tǒng);SS2利用多條件組合查詢方法創(chuàng)建索引;SS3建立電力大數(shù)據(jù)快速組合查詢方案。本發(fā)明所達到的有益效果:采用動態(tài)索引圖技術,實現(xiàn)多條件列索引的建立和快速組合查詢,通過建立索引圖為每個查詢專門創(chuàng)建復合索引,避免了進行全表逐行掃描,大大提升了電力大數(shù)據(jù)組合查詢的速度。
【專利說明】
一種用于電力大數(shù)據(jù)快速查詢方法
技術領域
[0001]本發(fā)明涉及一種用于電力大數(shù)據(jù)快速查詢方法,屬于電力信息化技術領域。
【背景技術】
[0002]隨著電力系統(tǒng)數(shù)字化進程的推進,電力系統(tǒng)積累了大量的發(fā)、輸、用電數(shù)據(jù)。目前僅江蘇省用電信息系統(tǒng)歷年保存下來的全省用電信息數(shù)據(jù)已達到幾十TB,如何利用現(xiàn)有的大數(shù)據(jù)分析技術,挖掘電力大數(shù)據(jù)的潛在價值,使電力企業(yè)為客戶提供更好的服務,是一個值得研究的課題。而2013年《中國電力大數(shù)據(jù)發(fā)展白皮書》的發(fā)布,將中國的電力大數(shù)據(jù)研究推向了一個新的起點,對中國電力大數(shù)據(jù)的研究與應用有著劃時代的意義。
[0003]電力大數(shù)據(jù)其特征可概括為3“V”和3“E”,3“V”代表體量大(Volume),類型多(Variety)和速度快(Velocity),3“E”代表數(shù)據(jù)即能量(Energy)、數(shù)據(jù)即交互(Exchange)、數(shù)據(jù)即共情(Empathy)。在用電大數(shù)據(jù)中,這樣的概括同樣適用。
[0004]大數(shù)據(jù)基礎之上創(chuàng)建高效索引雖然非常之難,但顯而易見的是,大數(shù)據(jù)對索引的需求相比傳統(tǒng)數(shù)據(jù)庫更加迫切:傳統(tǒng)數(shù)據(jù)庫在幾十萬、幾百萬數(shù)據(jù)量的情況下需要使用索引才能提供滿足要求的查詢性能,那么專注于處理動輒幾百億、幾千億數(shù)據(jù)量的大數(shù)據(jù)技術如果不提供索引又如何能滿足性能需求呢?傳統(tǒng)數(shù)據(jù)庫的索引其實都是一種單索引結構,雖然很多基于Hadoop的大數(shù)據(jù)產品可以支持復合索引,然而這種復合索引其本質依然是單索引,即一次查詢只能用一個索引,所謂復合索引也只是將多個字段簡單拼接。單索引的效率可以滿足用戶單條件的查詢,而傳統(tǒng)的復合索引由于其拼接的技術過于簡單,因此也只能支持單一的查詢,如果用戶的查詢條件更復雜、條件組合更靈活時,它就完全不能滿足用戶的需求了。
[0005]目前比較常見的大數(shù)據(jù)解決方案為Hadoop+ HBase,該解決方案通過搭建分布式處理軟件框架和分布式存儲系統(tǒng),實現(xiàn)大數(shù)據(jù)的分布式存儲和查詢。HBase是按Rowkey進行排序和存儲的,在進行數(shù)據(jù)查詢時需要對數(shù)據(jù)塊按行檢索,但是查詢速度遠無法滿足實時的需求。
【發(fā)明內容】
[0006]為克服現(xiàn)有技術存在的缺陷,解決上述技術問題,本發(fā)明一種用于電力大數(shù)據(jù)快速查詢方法。
[0007]本發(fā)明采用如下技術方案:一種用于電力大數(shù)據(jù)快速查詢方法,其特征在于,所述方法具體包括如下步驟:
SSl利用動態(tài)索引圖技術,為電力大數(shù)據(jù)建立一套立體的索引系統(tǒng);
SS2利用多條件組合查詢方法創(chuàng)建索引;
SS3建立電力大數(shù)據(jù)快速組合查詢方案。
[0008]優(yōu)選地,步驟SSl包括:首先利用第一個域進行排序,建立若干索引起始點,然后使用hash技術將索引分段,構建一個多級立體式的索引分段系統(tǒng)。
[0009]優(yōu)選地,步驟SS2包括:當用戶使用條件組合進行數(shù)據(jù)查詢時,數(shù)據(jù)庫引擎會依據(jù)自身的獨有機制動態(tài)使用這些原本獨立創(chuàng)建索引提供任意組合的多條件的數(shù)據(jù)查詢;
優(yōu)選地,步驟SS2還包括:若使用沒有創(chuàng)建索引的字段與其它已經創(chuàng)建了索引的字段進行組合查詢,系統(tǒng)首先智能地去判斷,發(fā)現(xiàn)其中的幾個字段已有索引,將優(yōu)先使用這幾個字段初步判斷與過濾,得到一組中間查詢結果;對于并未建立索引的其它字段,需要再對中間結果數(shù)據(jù)進行逐條掃描。
[0010]優(yōu)選地,步驟SS3具體包括如下步驟:
1)用戶從客戶端輸入SQL命令;
2)通過JDBC和HBase連接到索引數(shù)據(jù)庫;
3)解析SQL命令,從索引數(shù)據(jù)庫找到對應的索引文件;
4)對索引文件進行修剪,形成針對具體查詢命令的動態(tài)索引圖;
5)通過動態(tài)索引圖,得到需要查詢的HFile的RowKey;
6)HBase根據(jù)RowKey從HDFS取數(shù)據(jù);
7)將查詢結果返回給用戶。
[0011]優(yōu)選地,步驟SS3中的步驟2)包括:當HBase讀入新增數(shù)據(jù)時,所有數(shù)據(jù)同步被送到指定的查詢加速服務器,按指定關鍵字和日期對某個字段進行數(shù)值的統(tǒng)計,并建立查詢索引;當用戶向HBase發(fā)出查詢請求時,該請求被即時送到特制的查詢引擎,根據(jù)查詢條件返回對應的索引地址,通過索引地址找到原始數(shù)據(jù),并返回結果。
[0012]上述術語的含義:DIG(dynamic index graph)即動態(tài)索引圖技術。
[0013]Hash,一般翻譯做“散列”,就是把任意長度的輸入(又叫做預映射,pre-1mage),通過散列算法,變換成固定長度的輸出,該輸出就是散列值。
[0014]SQL (Structured Query Language)即結構化查詢語言,是一種數(shù)據(jù)庫查詢和程序設計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關系數(shù)據(jù)庫系統(tǒng);同時也是數(shù)據(jù)庫腳本文件的擴展名。
[0015]HBase即Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng)。
[0016]JDBC(Java Data Base Connectivity)即java數(shù)據(jù)庫連接,是一種用于執(zhí)行SQL語句的Java API,可以為多種關系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。
[00? 7] RowKey相當于mysql數(shù)據(jù)庫中的primary key,它就是那幾個主鍵列的組合,列的順序與primary key中定義的順序一致。
[0018]HDFS 即Hadoop Distributed File System,是一個分布式文件系統(tǒng)。
[0019]本發(fā)明所達到的有益效果:采用動態(tài)索引圖技術,實現(xiàn)多條件列索引的建立和快速組合查詢,通過建立索弓I圖為每個查詢專門創(chuàng)建復合索引,避免了進行全表逐行掃描,大大提升了電力大數(shù)據(jù)組合查詢的速度。
【附圖說明】
[0020]圖1是本發(fā)明的動態(tài)索引圖的一個索引實施例的示意圖。
[0021]圖2是本發(fā)明的電力大數(shù)據(jù)組合查詢的流程示意圖。
【具體實施方式】
[0022]下面結合附圖對本發(fā)明作進一步描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術方案,而不能以此來限制本發(fā)明的保護范圍。
[0023]為了解決大數(shù)據(jù)查詢的效率問題,同時避免傳統(tǒng)復合索引技術的帶來的局限性,本發(fā)明提出了一種適用于用電大數(shù)據(jù)的復合索引技術一一動態(tài)索引圖技術(dynamicindex graph, DIG)ο
[0024]DIG技術是一種基于分布式存儲,分布式計算的索引架構,它對數(shù)據(jù)建立了一套立體的索引系統(tǒng)。這套索引系統(tǒng)首先利用第一個域進行排序,建立若干索引起始點,使用hash技術將索引分段,由第一個域的這些起始點指向下一個域的分段,以此類推,構建一個多級立體式的索引分段系統(tǒng)。當某一分段較疏松時,適當合并減少分段數(shù),當某一分段較密集時,適當分離多建立分段,以達到分段的存儲讀取效率與查詢效率之間的平衡。當一個查詢開始時,由一個或多個起始點開始,根據(jù)約束條件進行遞歸查詢。最終確定終結點的查詢內容。
[0025]DIG充分利用了云設備的緩存調度,多核計算,將孤立創(chuàng)建的索引連接成索引系統(tǒng),如圖1所示的是本發(fā)明的動態(tài)索引圖的一個索引實施例的示意圖。當用戶執(zhí)行查詢任務時,系統(tǒng)將智能的甄別查詢類型,查詢規(guī)模,自動選取最優(yōu)的查詢算法。在立體的索引系統(tǒng)中,利用選擇的最優(yōu)算法規(guī)避逐條搜索,充分使用系統(tǒng)預處理產生的多級索引及索引間的關聯(lián)索引,索引內預判預讀,多線程并行處理。最終達到大幅提高查詢速度的效果。
[0026]由于在普通規(guī)模數(shù)據(jù)系統(tǒng)中的大多數(shù)查詢是能夠在秒級時間單位中完成,而這些操作對于海量數(shù)據(jù)往往就會上升成為分鐘級,小時級的操作,DIG技術將查詢海量數(shù)據(jù)時的大量應用從耗時若干分鐘,加速至只需若干秒,從而把系統(tǒng)的響應時間壓縮到用戶等待的心理承受范圍之內。
[0027]以四臺設備,40億條數(shù)據(jù)為例,假設每條數(shù)據(jù)有五個字段,每個字段10個字節(jié)定長。其全表內容約為200GB,每臺設備處理50GB數(shù)據(jù),以每分鐘處理3GB的硬盤上限處理能力計算,一次查詢需要15分鐘以上。首頁查詢較優(yōu)條件下也在5分鐘以上。而使用DIG技術后首頁查詢時間會縮短至10-20秒,從而使查詢時間落入用戶等待的心理承受范圍內。
[0028]索引對于傳統(tǒng)數(shù)據(jù)庫只是一個輔助手段,若用戶使用了一個查詢組合,但是這個查詢組合并未建立索引,臨時采用全表掃描技術進行查詢也是可接受的一個解決方案。
[0029]但當分配到每臺普通計算機的數(shù)據(jù)量大到一定程度時,逐行掃描技術已經完全無法滿足系統(tǒng)的性能需求時,大數(shù)據(jù)下的高效索引則不僅僅是查詢加速的輔助,而是查詢的必要條件。因此,大數(shù)據(jù)快速組合查詢的設計必須滿足速度和通用性兩個要求。
[0030]為滿足快速組合查詢的速度要求,從以下兩個方面進行查詢效率提升:
(1)從最底層的數(shù)據(jù)存儲層上,利用大數(shù)據(jù)虛擬文件系統(tǒng)實現(xiàn)高性能大數(shù)據(jù)存儲,為大數(shù)據(jù)快速查詢提供了良好的基礎;
(2)使用多維數(shù)據(jù)庫為數(shù)據(jù)提供最優(yōu)化的處理方式。
[0031]從通用性的角度來看,由于大數(shù)據(jù)查詢對索引的要求不再僅僅局限于為查詢提供一種加速的輔助功能,而是所有查詢必須要使用的技術,因此,大數(shù)據(jù)技術下的索引技術必須能夠為任意多條件的所有可能組合用的。
[0032]DIG技術創(chuàng)建的索引用戶不必去考慮任意多條件的組合的可能性數(shù)量,只需要對可能用到的查詢條件對應的字段創(chuàng)建索引即可。當用戶使用由這些條件組成的條件組合進行數(shù)據(jù)查詢時,數(shù)據(jù)庫引擎會依據(jù)自身的獨有機制動態(tài)使用這些原本獨立創(chuàng)建索引提供任意組合的多條件的數(shù)據(jù)查詢。
[0033]若使用沒有創(chuàng)建索引的字段與其它已經創(chuàng)建了索引的字段進行組合查詢,系統(tǒng)首先智能地去判斷,發(fā)現(xiàn)其中的幾個字段已有索引,將優(yōu)先使用這幾個字段初步判斷與過濾,得到一組中間查詢結果;由于另外的一些字段并未建立索引,因此需要再對中間結果數(shù)據(jù)進行逐條掃描。因為已經使用已有索引的幾個字段進行了過濾,因此進行中間結果的逐條比對時,數(shù)據(jù)集的規(guī)模已經得到大幅降低。因此,即使偶爾使用了極少數(shù)沒有提前創(chuàng)建索引的字段進行查詢,在本文的查詢引擎下,也可以提供相當不錯的查詢效率。
[0034]隨著智能電表的普及,電力行業(yè)的數(shù)據(jù)量呈井噴式增長。電力行業(yè)是當前將終端普及到千家萬戶每一個角落的少有的幾個行業(yè)之一(類似的還有水、煤氣等行業(yè))。
[0035]電力數(shù)據(jù)具有格式化、數(shù)據(jù)量大、周期性明顯等特征。以江蘇電力為例,如果每個小時采集一次數(shù)據(jù),則一個小時就會產生三千萬量級的數(shù)據(jù),這個數(shù)據(jù)量還會隨著數(shù)據(jù)采集頻率的提升和用電單位數(shù)量的增長呈指數(shù)增長。
[0036]面對周期性產生的海量數(shù)據(jù),大數(shù)據(jù)領域較為先進的HBase作為大數(shù)據(jù)存儲與處理的基本平臺。HBase雖然也提供了相對不錯的大數(shù)據(jù)處理能力,但它依然不能提供任意多條件查詢的索引技術。
[0037]由于HBase是按列存儲的,并支持列族概念,對一個表做一個固定條件的查詢時效率很高;但一般查詢時往往需要進行多個條件的組合查詢,而HBase并不支持多個條件的組合查詢。因此結合HBase的自身特性,引入DIG技術以提高組合查詢的效率是非常必要的。
[0038]用戶通過JDBC與HBase實現(xiàn)數(shù)據(jù)庫的互通,并實時完成統(tǒng)計預處理和建立查詢索弓丨,當HBase讀入新增數(shù)據(jù)時,所有數(shù)據(jù)同步被送到指定的查詢加速服務器,按指定關鍵字和日期對某個字段進行數(shù)值的統(tǒng)計,并建立查詢索引;當用戶向HBase發(fā)出查詢請求時,該請求被即時送到特制的查詢引擎,根據(jù)查詢條件返回對應的索引地址,通過索引地址找到原始數(shù)據(jù),并返回結果。
[0039]如圖2所示的是本發(fā)明的電力大數(shù)據(jù)組合查詢的流程示意圖。電力大數(shù)據(jù)快速組合查詢方案包括如下步驟:
1)用戶從客戶端輸入SQL命令;
2)通過JDBC和HBase連接到索引數(shù)據(jù)庫;
3)解析SQL命令,從索引數(shù)據(jù)庫找到對應的索引文件;
4)對索引文件進行修剪,形成針對具體查詢命令的動態(tài)索引圖;
5)通過動態(tài)索引圖,得到需要查詢的HFile的RowKey;
6)HBase根據(jù)RowKey從HDFS取數(shù)據(jù);
7)將查詢結果返回給用戶。
[0040]基于DIG技術的查詢,無論數(shù)據(jù)總量多少,查詢的速度要求少于5秒。通過本方案實現(xiàn)了無需改變HBase的任何配置,同時無需任何編程,即可在海量大數(shù)據(jù)的壓力下實現(xiàn)統(tǒng)計和查詢的秒級響應。
[0041]以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明技術原理的前提下,還可以做出若干改進和變形,這些改進和變形也應視為本發(fā)明的保護范圍。
【主權項】
1.一種用于電力大數(shù)據(jù)快速查詢方法,其特征在于,所述方法具體包括如下步驟: SSl利用動態(tài)索引圖技術,為電力大數(shù)據(jù)建立一套立體的索引系統(tǒng); SS2利用多條件組合查詢方法創(chuàng)建索引; SS3建立電力大數(shù)據(jù)快速組合查詢方案。2.根據(jù)權利要求1所述的一種用于電力大數(shù)據(jù)快速查詢方法,其特征在于,所述步驟SSl包括:首先利用第一個域進行排序,建立若干索引起始點,然后使用hash技術將索引分段,構建一個多級立體式的索引分段系統(tǒng)。3.根據(jù)權利要求1所述的一種用于電力大數(shù)據(jù)快速查詢方法,其特征在于,所述步驟SS2包括:當用戶使用條件組合進行數(shù)據(jù)查詢時,數(shù)據(jù)庫引擎會依據(jù)自身的獨有機制動態(tài)使用這些原本獨立創(chuàng)建索引提供任意組合的多條件的數(shù)據(jù)查詢。4.根據(jù)權利要求3所述的一種用于電力大數(shù)據(jù)快速查詢方法,其特征在于,步驟SS2還包括:若使用沒有創(chuàng)建索引的字段與其它已經創(chuàng)建了索引的字段進行組合查詢,系統(tǒng)首先智能地去判斷,發(fā)現(xiàn)其中的幾個字段已有索引,將優(yōu)先使用這幾個字段初步判斷與過濾,得到一組中間查詢結果;對于并未建立索引的其它字段,需要再對中間結果數(shù)據(jù)進行逐條掃描。5.根據(jù)權利要求1所述的一種用于電力大數(shù)據(jù)快速查詢方法,其特征在于,所述步驟SS3具體包括如下步驟: 1)用戶從客戶端輸入SQL命令; 2)通過JDBC和HBase連接到索引數(shù)據(jù)庫; 3)解析SQL命令,從索引數(shù)據(jù)庫找到對應的索引文件; 4)對索引文件進行修剪,形成針對具體查詢命令的動態(tài)索引圖; 5)通過動態(tài)索引圖,得到需要查詢的HFile的RowKey; 6 )HBase根據(jù)RowKey從HDFS取數(shù)據(jù); 7)將查詢結果返回給用戶。6.根據(jù)權利要求5所述的一種用于電力大數(shù)據(jù)快速查詢方法,其特征在于,所述步驟SS3中的步驟2)包括:當HBase讀入新增數(shù)據(jù)時,所有數(shù)據(jù)同步被送到指定的查詢加速服務器,按指定關鍵字和日期對某個字段進行數(shù)值的統(tǒng)計,并建立查詢索引;當用戶向HBase發(fā)出查詢請求時,該請求被即時送到特制的查詢引擎,根據(jù)查詢條件返回對應的索引地址,通過索弓I地址找到原始數(shù)據(jù),并返回結果。
【文檔編號】G06F17/30GK105975585SQ201610293643
【公開日】2016年9月28日
【申請日】2016年5月5日
【發(fā)明人】于欣
【申請人】云神科技投資股份有限公司