国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于列存儲(chǔ)的智能雙引擎分析系統(tǒng)及方法

      文檔序號(hào):6620138閱讀:287來源:國知局
      基于列存儲(chǔ)的智能雙引擎分析系統(tǒng)及方法
      【專利摘要】本發(fā)明公開了一種基于列存儲(chǔ)的智能雙引擎分析系統(tǒng)及方法,涉及智慧城市和大數(shù)據(jù)處理領(lǐng)域,該系統(tǒng)包括HBase存儲(chǔ)單元、客戶端和智能SQL路由單元,該系統(tǒng)在用戶側(cè)實(shí)現(xiàn)智能SQL路由單元;該系統(tǒng)采用HBase存儲(chǔ)單元作為底層數(shù)據(jù)的存儲(chǔ)單元,并在HBase存儲(chǔ)單元上建立實(shí)時(shí)查詢引擎和批量分析引擎,該系統(tǒng)針對(duì)的數(shù)據(jù)是結(jié)構(gòu)化的關(guān)系型數(shù)據(jù)。本發(fā)明既能滿足實(shí)時(shí)性的簡(jiǎn)單查詢,又能有效提高分析大規(guī)模數(shù)據(jù)的性能,滿足用戶對(duì)大規(guī)模數(shù)據(jù)的統(tǒng)計(jì)分析要求。
      【專利說明】基于列存儲(chǔ)的智能雙引擎分析系統(tǒng)及方法

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及智慧城市和大數(shù)據(jù)處理領(lǐng)域,具體是涉及一種基于列存儲(chǔ)的智能雙引擎分析系統(tǒng)及方法。

      【背景技術(shù)】
      [0002]隨著移動(dòng)互聯(lián)網(wǎng)、智能終端、物聯(lián)網(wǎng)、云計(jì)算以及智慧城市的普及,人們逐漸的進(jìn)入了 “大數(shù)據(jù)”時(shí)代。大數(shù)據(jù)是規(guī)模非常巨大和復(fù)雜的數(shù)據(jù)集,數(shù)據(jù)量達(dá)到PB、EB或ZB的級(jí)別后,傳統(tǒng)數(shù)據(jù)庫的管理工具處理起來面臨很多問題,例如獲取、存儲(chǔ)、檢索和分析等。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫中,一般采用索引和全表掃描的方式來處理查詢、分析,索引具有快速定位,對(duì)于簡(jiǎn)單查詢高效快速的特點(diǎn),但是對(duì)于一些復(fù)雜的統(tǒng)計(jì)分析,或者數(shù)據(jù)挖掘類的應(yīng)用則一般采取全表掃描的方式。大數(shù)據(jù)引發(fā)了一些問題,如對(duì)數(shù)據(jù)庫高并發(fā)讀寫要求、對(duì)海量數(shù)據(jù)的高效率存儲(chǔ)和訪問需求、對(duì)數(shù)據(jù)庫高可擴(kuò)展性和高可用性的需求,在大數(shù)據(jù)的環(huán)境下,數(shù)據(jù)量是以前傳統(tǒng)關(guān)系數(shù)據(jù)庫的成千上百倍,傳統(tǒng)的關(guān)系數(shù)據(jù)庫的一些技術(shù)顯得力不從心。
      [0003]Hadoop是由Apache Software Foundat1n (阿帕奇軟件基金會(huì))維護(hù)的一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,Hadoop帶來了廉價(jià)的處理大數(shù)據(jù)的能力。Hadoop是一個(gè)龐大的生態(tài)系統(tǒng),為處理大數(shù)據(jù)提供了各種工具和平臺(tái)。
      [0004]HDFS(Hadoop Distributed File System, Hadoop 分布式文件系統(tǒng))被設(shè)計(jì)成適合運(yùn)行在通用服務(wù)器上的分布式文件系統(tǒng)。HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS是hadoop生態(tài)系統(tǒng)的基礎(chǔ)。HBase是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)的服務(wù)器上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。HBase可提供類似結(jié)構(gòu)化的存儲(chǔ),在基于主鍵和范圍的查詢下,性能優(yōu)越。
      [0005]Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的SQL (Structured Query Language,結(jié)構(gòu)化查詢語言)查詢功能,它可以將SQL語句轉(zhuǎn)換為MapReduce (映射化簡(jiǎn))并行任務(wù)進(jìn)行運(yùn)行。其優(yōu)點(diǎn)是學(xué)習(xí)成本低,并可以通過類SQL語句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce并行統(tǒng)計(jì),不必開發(fā)專門的MapReduce并行應(yīng)用,十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析。
      [0006]當(dāng)前,針對(duì)大數(shù)據(jù)的應(yīng)用,Hadoop現(xiàn)在成為大數(shù)據(jù)處理的標(biāo)準(zhǔn)工具,而在Hadoop中,都采用Mapreduce來進(jìn)行數(shù)據(jù)的批量分析,它將SQL的分解為并行任務(wù)在HDFS上進(jìn)行執(zhí)行。當(dāng)數(shù)據(jù)量大時(shí),對(duì)于一些大規(guī)模的統(tǒng)計(jì)分析任務(wù),MapReduce比傳統(tǒng)的關(guān)系數(shù)據(jù)庫有更好的擴(kuò)展性和分析性能。
      [0007]但是,MapReduce不能區(qū)分業(yè)務(wù)場(chǎng)景,無論是多么簡(jiǎn)單的查詢,MapReduce都會(huì)將其轉(zhuǎn)化為掃描全表的并行處理任務(wù),因此在某些定位查找、檢索等場(chǎng)景下,MapReduce就顯得過于笨重,耗時(shí)而且耗費(fèi)資源。由于文件沒有進(jìn)行結(jié)構(gòu)化的組織,而MapReduce本身非常耗時(shí),因此,在Hadoop環(huán)境下,傳統(tǒng)的Hive在性能上仍無法滿足用戶對(duì)大規(guī)模數(shù)據(jù)的查詢和統(tǒng)計(jì)分析需求。


      【發(fā)明內(nèi)容】

      [0008]本發(fā)明的目的是為了克服上述【背景技術(shù)】的不足,提供一種基于列存儲(chǔ)的智能雙引擎分析系統(tǒng)及方法,既能滿足實(shí)時(shí)性的簡(jiǎn)單查詢,又能有效提高分析大規(guī)模數(shù)據(jù)的性能,滿足用戶對(duì)大規(guī)模數(shù)據(jù)的統(tǒng)計(jì)分析要求。
      [0009]本發(fā)明提供一種基于列存儲(chǔ)的智能雙引擎分析系統(tǒng),包括HBase存儲(chǔ)單元、客戶端、智能結(jié)構(gòu)化查詢語言SQL路由單元,該系統(tǒng)在用戶側(cè)實(shí)現(xiàn)智能SQL路由單元;該系統(tǒng)采用HBase存儲(chǔ)單元作為底層數(shù)據(jù)的存儲(chǔ)單元,并在HBase存儲(chǔ)單元上建立實(shí)時(shí)查詢引擎和批量分析引擎,該系統(tǒng)針對(duì)的數(shù)據(jù)是結(jié)構(gòu)化的關(guān)系型數(shù)據(jù);
      [0010]所述HBase存儲(chǔ)單元用于:實(shí)現(xiàn)對(duì)數(shù)據(jù)的底層存儲(chǔ),在存儲(chǔ)數(shù)據(jù)時(shí),將數(shù)據(jù)的主鍵自動(dòng)映射到HBase的主鍵上,如果用戶的數(shù)據(jù)還有其他列帶有索引,那么通過單獨(dú)的HBase表來生成二級(jí)索引表,二級(jí)索引表的主鍵對(duì)應(yīng)用戶表的索引列;
      [0011]所述客戶端用于:接收用戶輸入的SQL語句,然后將用戶輸入的SQL語句發(fā)送給智能SQL路由單元;
      [0012]所述智能SQL路由單元用于:對(duì)用戶輸入的SQL語句進(jìn)行解析,并進(jìn)行分析和判斷,根據(jù)分析的結(jié)果將SQL路由到實(shí)時(shí)查詢引擎或者批量分析引擎,進(jìn)行分析和查詢;
      [0013]所述實(shí)時(shí)查詢引擎用于:將使用索引的簡(jiǎn)單查詢轉(zhuǎn)化為HBase的主鍵查詢操作或范圍查詢操作,通過HBase的主鍵和索引對(duì)數(shù)據(jù)進(jìn)行檢索、查詢和分析;
      [0014]所述批量分析引擎是Hive在HBase存儲(chǔ)單元上的實(shí)現(xiàn),對(duì)于復(fù)雜的統(tǒng)計(jì)和分析,實(shí)時(shí)查詢引擎無法完成,批量分析引擎將復(fù)雜的統(tǒng)計(jì)和分析轉(zhuǎn)化為映射化簡(jiǎn)MapReduce的并行任務(wù),然后由MapReduce任務(wù)在HBase存儲(chǔ)單元的底層存儲(chǔ)文件HFile上直接進(jìn)行并行分析和處理。
      [0015]在上述技術(shù)方案的基礎(chǔ)上,所述批量分析引擎包括編譯器、執(zhí)行器和元數(shù)據(jù)管理模塊,編譯器用于將SQL語句轉(zhuǎn)化為MapReduce任務(wù);執(zhí)行器用于執(zhí)行MapReduce任務(wù),MapReduce任務(wù)直接在HBase的底層存儲(chǔ)文件HFile上進(jìn)行;元數(shù)據(jù)管理模塊用于管理HBase存儲(chǔ)單元存儲(chǔ)的數(shù)據(jù)表,進(jìn)行數(shù)據(jù)表的建立、刪除和修改操作。
      [0016]本發(fā)明還提供一種適用于上述系統(tǒng)的基于列存儲(chǔ)的智能雙引擎分析方法,包括以下步驟:
      [0017]S1、用戶在客戶端輸入SQL語句,客戶端將用戶輸入的SQL語句發(fā)送到智能SQL路由單元,智能SQL路由單元在用戶側(cè)截獲用戶輸入的SQL語句;
      [0018]S2、智能SQL路由單元分析用戶輸入的SQL語句的類型,判斷用戶輸入的SQL語句是數(shù)據(jù)定義語句,還是數(shù)據(jù)操作語句,如果用戶輸入的SQL語句是數(shù)據(jù)定義語句,則轉(zhuǎn)到步驟S3 ;如果用戶輸入的SQL語句是數(shù)據(jù)操作語句,則轉(zhuǎn)到步驟S4 ;
      [0019]S3、如果用戶輸入的SQL語句是數(shù)據(jù)定義語句,智能SQL路由單元將該SQL語句路由到批量分析引擎,批量分析引擎的元數(shù)據(jù)管理模塊根據(jù)數(shù)據(jù)定義語句的要求進(jìn)行表的建立、刪除和修改操作;
      [0020]S4、如果用戶輸入的SQL語句是數(shù)據(jù)操作語句,判斷該SQL語句是否為選擇select語句,如果是select語句,則轉(zhuǎn)到步驟S5 ;如果不是select語句,則轉(zhuǎn)到步驟S7 ;
      [0021]S5、如果select語句的查詢條件是單列或雙列,并且其中任意一列建有索引,則轉(zhuǎn)到步驟S6 ;否則,轉(zhuǎn)到步驟S7 ;
      [0022]S6、智能SQL路由單元將該SQL語句路由到實(shí)時(shí)查詢引擎進(jìn)行查詢:實(shí)時(shí)查詢引擎根據(jù)用戶的SQL語句找出對(duì)應(yīng)的主鍵列或索引列,如果是主鍵列,則直接在HBase存儲(chǔ)單元的表里,用HBase存儲(chǔ)單元的編程接口進(jìn)行快速查找;如果是索引列,則在索引表里利用HBase存儲(chǔ)單元的編程接口進(jìn)行快速查找,找到主鍵位置,然后再從主鍵表中進(jìn)行查找;
      [0023]S7、智能SQL路由單元將該SQL語句路由到批量分析引擎進(jìn)行進(jìn)行并行的查找和分析:批量分析引擎先進(jìn)行一個(gè)刷新操作,將HBase存儲(chǔ)單元緩存在內(nèi)存中的數(shù)據(jù),刷新到磁盤中,HBase存儲(chǔ)單元在磁盤中保存文件的格式是以HFile格式來保存的;然后對(duì)HBase存儲(chǔ)單元的底層存儲(chǔ)文件進(jìn)行分割操作,分割后形成一個(gè)個(gè)的文件塊;再將文件塊作為MapReduce的并行輸入,進(jìn)行并行的查找和分析。
      [0024]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)如下:
      [0025](I)本發(fā)明提出基于列存儲(chǔ)的智能雙引擎分析系統(tǒng),將數(shù)據(jù)存儲(chǔ)在HBase上,并在HBase上實(shí)現(xiàn)實(shí)時(shí)查詢引擎和批量分析引擎,系統(tǒng)根據(jù)用戶SQL的查詢請(qǐng)求類型,智能SQL路由單元在用戶側(cè)對(duì)用戶的SQL語句進(jìn)行截獲、分析和判斷,并根據(jù)SQL的類型自動(dòng)選擇實(shí)時(shí)查詢引擎或批量分析引擎,實(shí)時(shí)查詢引擎用來處理簡(jiǎn)單、快捷的交互式查詢,能夠快速得到查詢結(jié)果,較少耗費(fèi)資源,而無需使用批量分析引擎,節(jié)約時(shí)間和資源;批量分析引擎用來進(jìn)行大數(shù)據(jù)量的統(tǒng)計(jì)分析,實(shí)現(xiàn)高效的統(tǒng)計(jì)和分析。實(shí)驗(yàn)證明該系統(tǒng)既能滿足實(shí)時(shí)性的簡(jiǎn)單查詢,又能有效提高分析大規(guī)模數(shù)據(jù)的性能,滿足用戶對(duì)大規(guī)模數(shù)據(jù)的統(tǒng)計(jì)分析要求。
      [0026](2)與傳統(tǒng)的Hive分析方法不同,本發(fā)明將Hive的MapReduce任務(wù)映射到HFile (HBase的底層存儲(chǔ)文件)上,在HFile上進(jìn)行并行處理,能夠有效提高效率,性能更好。

      【專利附圖】

      【附圖說明】
      [0027]圖1是本發(fā)明實(shí)施例中基于列存儲(chǔ)的智能雙引擎分析系統(tǒng)的結(jié)構(gòu)框圖。
      [0028]圖2是本發(fā)明實(shí)施例中基于列存儲(chǔ)的智能雙引擎分析方法的流程圖。

      【具體實(shí)施方式】
      [0029]下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
      [0030]參見圖1所示,本發(fā)明實(shí)施例提供一種基于列存儲(chǔ)的智能雙引擎分析系統(tǒng),包括HBase存儲(chǔ)單元、客戶端和智能SQL路由單元,該系統(tǒng)在用戶側(cè)實(shí)現(xiàn)智能SQL路由單元;該系統(tǒng)采用HBase存儲(chǔ)單元作為底層數(shù)據(jù)的存儲(chǔ)單元,并在HBase存儲(chǔ)單元上建立實(shí)時(shí)查詢引擎和批量分析引擎,該系統(tǒng)針對(duì)的數(shù)據(jù)是結(jié)構(gòu)化的關(guān)系型數(shù)據(jù)。
      [0031 ] HBase存儲(chǔ)單元用于:實(shí)現(xiàn)對(duì)數(shù)據(jù)的底層存儲(chǔ),在存儲(chǔ)數(shù)據(jù)時(shí),將數(shù)據(jù)的主鍵自動(dòng)映射到HBase的主鍵上,如果用戶的數(shù)據(jù)還有其他列帶有索引,那么通過單獨(dú)的HBase表來生成二級(jí)索引表,二級(jí)索引表的主鍵對(duì)應(yīng)用戶表的索引列。
      [0032]客戶端用于:接收用戶輸入的SQL語句,然后將用戶輸入的SQL語句發(fā)送給智能SQL路由單元。
      [0033]智能SQL路由單元用于:對(duì)用戶輸入的SQL語句進(jìn)行解析,并進(jìn)行分析和判斷,根據(jù)分析的結(jié)果將SQL路由到實(shí)時(shí)查詢引擎或者批量分析引擎,進(jìn)行分析和查詢,以獲得更好的性能。
      [0034]實(shí)時(shí)查詢引擎用于:對(duì)于可以使用索引的較為簡(jiǎn)單的查詢和檢索,實(shí)時(shí)查詢引擎將這些使用索引的簡(jiǎn)單查詢轉(zhuǎn)化為HBase的主鍵查詢操作或范圍查詢操作,通過HBase的主鍵和索引對(duì)數(shù)據(jù)進(jìn)行檢索、查詢和分析,從而能夠快速得到查詢結(jié)果,較少耗費(fèi)資源,而無需使用批量分析引擎,節(jié)約時(shí)間和資源。
      [0035]批量分析引擎是Hive在HBase存儲(chǔ)單元上的實(shí)現(xiàn),對(duì)于復(fù)雜的統(tǒng)計(jì)和分析,實(shí)時(shí)查詢引擎無法完成,批量分析引擎將復(fù)雜的統(tǒng)計(jì)和分析轉(zhuǎn)化為MapReduce的并行任務(wù),然后由MapReduce任務(wù)在HBase的底層存儲(chǔ)文件HFile上直接進(jìn)行并行的分析和處理,從而實(shí)現(xiàn)高效的統(tǒng)計(jì)和分析。
      [0036]批量分析引擎包括編譯器、執(zhí)行器和元數(shù)據(jù)管理模塊,編譯器用于將SQL語句轉(zhuǎn)化為MapReduce任務(wù);執(zhí)行器用于執(zhí)行MapReduce任務(wù),MapReduce任務(wù)是直接在HBase存儲(chǔ)單元的底層存儲(chǔ)文件HFile上進(jìn)行的,這種方式能夠有效提高M(jìn)apReduce執(zhí)行的效率;元數(shù)據(jù)管理模塊用于管理HBase存儲(chǔ)單元存儲(chǔ)的數(shù)據(jù)表,進(jìn)行數(shù)據(jù)表的建立、刪除和修改等操作。
      [0037]本系統(tǒng)采用Hive作為批量查詢引擎,Hive最初是將SQL查詢引擎構(gòu)建在HDFS之上的,Hive將SQL任務(wù)映射為HDFS上的MapReduce任務(wù)。由于本系統(tǒng)采用HBase作為存儲(chǔ)引擎,不能直接用Hive在HBase存儲(chǔ)單元上做分析,因此本系統(tǒng)并沒有將Hive的MapReduce任務(wù)映射在HBase存儲(chǔ)單元的應(yīng)用接口上,為了提高效率,批量分析引擎將Hive的MapReduce任務(wù)映射到HBase存儲(chǔ)單元的底層存儲(chǔ)文件上。批量分析引擎通過Hive中的并行處理機(jī)制MapReduce的方式來對(duì)數(shù)據(jù)進(jìn)行并行的分析和處理。
      [0038]HBase是建立在hadoop文件系統(tǒng)之上的,提供高可靠性、高性能、列存儲(chǔ)、可伸縮、實(shí)時(shí)讀寫的數(shù)據(jù)庫系統(tǒng)。HBase能通過主鍵和主鍵的范圍來檢索數(shù)據(jù),因?yàn)镠Base采用樹形結(jié)構(gòu)來存儲(chǔ)數(shù)據(jù),因此通過主鍵檢索數(shù)據(jù)會(huì)非常高效。但是HBase的缺點(diǎn)是不能提供SQL接口。HBase的目標(biāo)就是快速在主機(jī)內(nèi)數(shù)十億、百億行數(shù)據(jù)中定位所需的數(shù)據(jù)并訪問它,利用HBase技術(shù)可在廉價(jià)服務(wù)器上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。
      [0039]參見圖2所示,本發(fā)明實(shí)施例還提供一種適用于上述系統(tǒng)的基于列存儲(chǔ)的智能雙引擎分析方法,包括以下步驟:
      [0040]S1、用戶在客戶端輸入SQL語句,客戶端將用戶輸入的SQL語句發(fā)送到智能SQL路由單元,智能SQL路由單元在用戶側(cè)截獲用戶輸入的SQL語句;
      [0041 ] S2、智能SQL路由單元分析用戶輸入的SQL語句的類型,判斷用戶輸入的SQL語句是數(shù)據(jù)定義語句,還是數(shù)據(jù)操作語句,如果用戶輸入的SQL語句是數(shù)據(jù)定義語句,則轉(zhuǎn)到步驟S3 ;如果用戶輸入的SQL語句是數(shù)據(jù)操作語句,則轉(zhuǎn)到步驟S4 ;
      [0042]S3、如果用戶輸入的SQL語句是數(shù)據(jù)定義語句,智能SQL路由單元將該SQL語句路由到批量分析引擎,批量分析引擎的元數(shù)據(jù)管理模塊根據(jù)數(shù)據(jù)定義語句的要求進(jìn)行表的建立、刪除和修改操作;
      [0043]S4、如果用戶輸入的SQL語句是數(shù)據(jù)操作語句,判斷該SQL語句是否為選擇(select)語句,如果是select語句,則轉(zhuǎn)到步驟S5 ;如果不是select語句,則轉(zhuǎn)到步驟S7 ;
      [0044]S5、如果select語句的查詢條件是單列或雙列,并且其中任意一列建有索引,則轉(zhuǎn)到步驟S6 ;否則,轉(zhuǎn)到步驟S7 ;
      [0045]S6、智能SQL路由單元將該SQL語句路由到實(shí)時(shí)查詢引擎進(jìn)行查詢:實(shí)時(shí)查詢引擎根據(jù)用戶的SQL語句找出對(duì)應(yīng)的主鍵列或索引列,如果是主鍵列,則直接在HBase存儲(chǔ)單元的表里,用HBase存儲(chǔ)單元的編程接口進(jìn)行快速查找;如果是索引列,則在索引表里利用HBase存儲(chǔ)單元的編程接口進(jìn)行快速查找,找到主鍵位置,然后再從主鍵表中進(jìn)行查找;
      [0046]S7、智能SQL路由單元將該SQL語句路由到批量分析引擎進(jìn)行進(jìn)行并行的查找和分析:批量分析引擎先進(jìn)行一個(gè)刷新操作,將HBase存儲(chǔ)單元緩存在內(nèi)存中的數(shù)據(jù),刷新到磁盤中,HBase存儲(chǔ)單元在磁盤中保存文件的格式是以HFile格式來保存的;然后對(duì)HBase存儲(chǔ)單元的底層存儲(chǔ)文件進(jìn)行分割操作,分割后形成一個(gè)個(gè)的文件塊;再將文件塊作為MapReduce的并行輸入,進(jìn)行并行的查找和分析。
      [0047]本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明實(shí)施例進(jìn)行各種修改和變型,倘若這些修改和變型在本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則這些修改和變型也在本發(fā)明的保護(hù)范圍之內(nèi)。
      [0048]說明書中未詳細(xì)描述的內(nèi)容為本領(lǐng)域技術(shù)人員公知的現(xiàn)有技術(shù)。
      【權(quán)利要求】
      1.一種基于列存儲(chǔ)的智能雙引擎分析系統(tǒng),包括HBase存儲(chǔ)單元、客戶端、智能結(jié)構(gòu)化查詢語言SQL路由單元,該系統(tǒng)在用戶側(cè)實(shí)現(xiàn)智能SQL路由單元;其特征在于:該系統(tǒng)采用HBase存儲(chǔ)單元作為底層數(shù)據(jù)的存儲(chǔ)單元,并在HBase存儲(chǔ)單元上建立實(shí)時(shí)查詢引擎和批量分析引擎,該系統(tǒng)針對(duì)的數(shù)據(jù)是結(jié)構(gòu)化的關(guān)系型數(shù)據(jù); 所述HBase存儲(chǔ)單元用于:實(shí)現(xiàn)對(duì)數(shù)據(jù)的底層存儲(chǔ),在存儲(chǔ)數(shù)據(jù)時(shí),將數(shù)據(jù)的主鍵自動(dòng)映射到HBase的主鍵上,如果用戶的數(shù)據(jù)還有其他列帶有索引,那么通過單獨(dú)的HBase表來生成二級(jí)索引表,二級(jí)索引表的主鍵對(duì)應(yīng)用戶表的索引列; 所述客戶端用于:接收用戶輸入的SQL語句,然后將用戶輸入的SQL語句發(fā)送給智能SQL路由單元; 所述智能SQL路由單元用于:對(duì)用戶輸入的SQL語句進(jìn)行解析,并進(jìn)行分析和判斷,根據(jù)分析的結(jié)果將SQL路由到實(shí)時(shí)查詢引擎或者批量分析引擎,進(jìn)行分析和查詢; 所述實(shí)時(shí)查詢引擎用于:將使用索引的簡(jiǎn)單查詢轉(zhuǎn)化為HBase的主鍵查詢操作或范圍查詢操作,通過HBase的主鍵和索引對(duì)數(shù)據(jù)進(jìn)行檢索、查詢和分析; 所述批量分析引擎是Hive在HBase存儲(chǔ)單元上的實(shí)現(xiàn),對(duì)于復(fù)雜的統(tǒng)計(jì)和分析,實(shí)時(shí)查詢引擎無法完成,批量分析引擎將復(fù)雜的統(tǒng)計(jì)和分析轉(zhuǎn)化為映射化簡(jiǎn)MapReduce的并行任務(wù),然后由MapReduce任務(wù)在HBase存儲(chǔ)單元的底層存儲(chǔ)文件HFile上直接進(jìn)行并行分析和處理。
      2.如權(quán)利要求1所述的基于列存儲(chǔ)的智能雙引擎分析系統(tǒng),其特征在于:所述批量分析引擎包括編譯器、執(zhí)行器和元數(shù)據(jù)管理模塊,編譯器用于將SQL語句轉(zhuǎn)化為MapReduce任務(wù);執(zhí)行器用于執(zhí)行MapReduce任務(wù),MapReduce任務(wù)直接在HBase的底層存儲(chǔ)文件HFile上進(jìn)行;元數(shù)據(jù)管理模塊用于管理HBase存儲(chǔ)單元存儲(chǔ)的數(shù)據(jù)表,進(jìn)行數(shù)據(jù)表的建立、刪除和修改操作。
      3.適用于權(quán)利要求1或2所述系統(tǒng)的基于列存儲(chǔ)的智能雙引擎分析方法,其特征在于,包括以下步驟: S1、用戶在客戶端輸入SQL語句,客戶端將用戶輸入的SQL語句發(fā)送到智能SQL路由單元,智能SQL路由單元在用戶側(cè)截獲用戶輸入的SQL語句; S2、智能SQL路由單元分析用戶輸入的SQL語句的類型,判斷用戶輸入的SQL語句是數(shù)據(jù)定義語句,還是數(shù)據(jù)操作語句,如果用戶輸入的SQL語句是數(shù)據(jù)定義語句,則轉(zhuǎn)到步驟S3 ;如果用戶輸入的SQL語句是數(shù)據(jù)操作語句,則轉(zhuǎn)到步驟S4 ; S3、如果用戶輸入的SQL語句是數(shù)據(jù)定義語句,智能SQL路由單元將該SQL語句路由到批量分析引擎,批量分析引擎的元數(shù)據(jù)管理模塊根據(jù)數(shù)據(jù)定義語句的要求進(jìn)行表的建立、刪除和修改操作; S4、如果用戶輸入的SQL語句是數(shù)據(jù)操作語句,判斷該SQL語句是否為選擇select語句,如果是select語句,則轉(zhuǎn)到步驟S5 ;如果不是select語句,則轉(zhuǎn)到步驟S7 ;S5、如果select語句的查詢條件是單列或雙列,并且其中任意一列建有索引,則轉(zhuǎn)到步驟S6 ;否則,轉(zhuǎn)到步驟S7 ; S6、智能SQL路由單元將該SQL語句路由到實(shí)時(shí)查詢引擎進(jìn)行查詢:實(shí)時(shí)查詢引擎根據(jù)用戶的SQL語句找出對(duì)應(yīng)的主鍵列或索引列,如果是主鍵列,則直接在HBase存儲(chǔ)單元的表里,用HBase存儲(chǔ)單元的編程接口進(jìn)行快速查找;如果是索引列,則在索引表里利用HBase存儲(chǔ)單元的編程接口進(jìn)行快速查找,找到主鍵位置,然后再從主鍵表中進(jìn)行查找; S7、智能SQL路由單元將該SQL語句路由到批量分析引擎進(jìn)行進(jìn)行并行的查找和分析:批量分析引擎先進(jìn)行一個(gè)刷新操作,將HBase存儲(chǔ)單元緩存在內(nèi)存中的數(shù)據(jù),刷新到磁盤中,HBase存儲(chǔ)單元在磁盤中保存文件的格式是以HFile格式來保存的;然后對(duì)HBase存儲(chǔ)單元的底層存儲(chǔ)文件進(jìn)行分割操作,分割后形成一個(gè)個(gè)的文件塊;再將文件塊作為MapReduce的并行輸入,進(jìn)行并行的查找和分析。
      【文檔編號(hào)】G06F17/30GK104133858SQ201410335740
      【公開日】2014年11月5日 申請(qǐng)日期:2014年7月15日 優(yōu)先權(quán)日:2014年7月15日
      【發(fā)明者】郝俊瑞, 向智宇, 許德瑋, 高漢松, 郭嘉 申請(qǐng)人:武漢郵電科學(xué)研究院
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1