智能交通領(lǐng)域中海量數(shù)據(jù)檢索的查詢規(guī)劃方法
【專利摘要】本發(fā)明提供一種智能交通領(lǐng)域中海量數(shù)據(jù)檢索的查詢規(guī)劃方法,包括下述步驟:利用詞法分析器對SQL語句進行分詞操作,得到SQL詞法結(jié)構(gòu);利用語法分析器,對SQL詞法結(jié)構(gòu)進行解析,生成的操作體按如下順序組織:where操作、select操作、group操作和order操作,其中where操作中的檢索條件用二叉樹表示;將where操作體中的檢索條件二叉樹反轉(zhuǎn);對上一步中得到的where操作中檢索條件的二叉樹反轉(zhuǎn)進行拓?fù)渑判?,以確定不同檢索條件的執(zhí)行順序;將修改后的where操作、select操作、group操作和order操作按順序組裝成流水線,然后進行多任務(wù)優(yōu)化;交由執(zhí)行器執(zhí)行。本發(fā)明實現(xiàn)了高效容錯的數(shù)據(jù)查詢規(guī)劃方法。
【專利說明】智能交通領(lǐng)域中海量數(shù)據(jù)檢索的查詢規(guī)劃方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種查詢規(guī)劃方法,尤其是一種智能交通領(lǐng)域中海量數(shù)據(jù)檢索的查詢規(guī)劃方法。
【背景技術(shù)】
[0002]海量數(shù)據(jù)檢索引擎是指大數(shù)據(jù)時代下專門針對海量數(shù)據(jù)優(yōu)化的高可擴展性、低成本、低功耗、高效、基于分布式系統(tǒng)的數(shù)據(jù)檢索引擎。海量數(shù)據(jù)檢索引擎屬于新興技術(shù),主要基于分布式系統(tǒng),且存在數(shù)據(jù)一致性和容錯性等實際需求,尤其是數(shù)據(jù)檢索方面效率和容錯性便成為重點和難點。
[0003]智能交通基于現(xiàn)代電子信息技術(shù)、數(shù)據(jù)通訊傳輸技術(shù)、電子控制技術(shù)、計算機處理技術(shù)等,突出特點是以信息的收集、處理、發(fā)布、交換、分析、利用為主線,為交通參與者提供多樣性的信息化、智能化、社會化服務(wù)。借助智能交通,管理人員對道路、車輛的行蹤將掌握得一清二楚,對擁堵路段及時預(yù)警、分流,實現(xiàn)交通運輸?shù)募s式發(fā)展。智能交通領(lǐng)域中的數(shù)據(jù)主要包括:浮動車的GPS定時上報信息、各路段的視頻監(jiān)控信息和流量采集信息、各路段的定時上報信息、以及重點路段的實時信息等,突出特點為:時空信息連續(xù)(同一車輛的GPS信息按時間順序總是相鄰)、相鄰路段的流量和基本守恒、重點路段相對固定容易形成數(shù)據(jù)熱點、數(shù)據(jù)量大且無更新需求等。
[0004]對單個表的幾個索引進行檢索,通常會有一個明顯最佳的算法選擇。但對于更大更復(fù)雜的查詢,比如包括多路join、多個索引和嵌套子查詢等,則可能有數(shù)百或上千種合理算法。查詢規(guī)劃的作用就是從多個角度出發(fā)選出其中的最佳查詢計劃。目前的海量數(shù)據(jù)檢索領(lǐng)域并沒有一種統(tǒng)一成熟的方案,只能根據(jù)不同的應(yīng)用領(lǐng)域做專門的定制優(yōu)化。而智能交通領(lǐng)域中,因為數(shù)據(jù)的量級和分布規(guī)律等與當(dāng)前主流的互聯(lián)網(wǎng)數(shù)據(jù)均有著較大的差異,所以當(dāng)前已有的流行的互聯(lián)網(wǎng)數(shù)據(jù)管理方案尤其是檢索過程中的查詢優(yōu)化等在智能交通領(lǐng)域都存在諸多缺陷。
[0005](I)無法根據(jù)智能交通領(lǐng)域中數(shù)據(jù)的時空特點優(yōu)化。
[0006](2)無法克服智能交通領(lǐng)域中的數(shù)據(jù)的熱點問題。
【發(fā)明內(nèi)容】
[0007]本發(fā)明針對智能交通領(lǐng)域中數(shù)據(jù)存儲和檢索的主要需求和現(xiàn)有開源海量數(shù)據(jù)管理系統(tǒng)的上述缺陷,提出了一種智能交通領(lǐng)域中海量數(shù)據(jù)檢索的查詢規(guī)劃方法,該方法良好地結(jié)合了智能交通領(lǐng)域中的數(shù)據(jù)特點,實現(xiàn)了高效容錯的數(shù)據(jù)查詢規(guī)劃方法。本發(fā)明采用的技術(shù)方案是:
一種智能交通領(lǐng)域中海量數(shù)據(jù)檢索的查詢規(guī)劃方法,包括下述步驟:
步驟一.利用詞法分析器對SQL語句進行分詞操作,得到SQL詞法結(jié)構(gòu);
步驟二.利用語法分析器,結(jié)合數(shù)據(jù)檢索系統(tǒng)的表結(jié)構(gòu)信息,對SQL詞法結(jié)構(gòu)進行解析,生成的操作體按如下順序組織:where操作、select操作、group操作和order操作,其中where操作中的檢索條件用二叉樹表示;
步驟三.將where操作體中的檢索條件二叉樹反轉(zhuǎn);
步驟四.對上一步中得到的where操作中檢索條件的二叉樹反轉(zhuǎn)進行拓?fù)渑判?,以確定不同檢索條件的執(zhí)行順序;
步驟五.將修改后的where操作、select操作、group操作和order操作按順序組裝成流水線,然后進行多任務(wù)優(yōu)化;
步驟六.比較待執(zhí)行的多個任務(wù)的流水線,判斷是否存在公共前綴,若存在則合并相應(yīng)的流水線以減少重復(fù)操作。
[0008]步驟七.將查詢?nèi)蝿?wù)流水線交由執(zhí)行器執(zhí)行。
[0009]進一步地,步驟四中,排序依據(jù)是檢索字段的時空屬性和熱點特性,并采用熱點數(shù)據(jù)優(yōu)先、相似時空屬性的相鄰的原則。
[0010]本發(fā)明的優(yōu)點在于:本發(fā)明提出的方法結(jié)合了智能交通領(lǐng)域中數(shù)據(jù)空間分布相對固定、時間分布連續(xù)的特點,可用于智能交通領(lǐng)域中的大數(shù)據(jù)檢索的查詢優(yōu)化;適用于分布式系統(tǒng)中。
【專利附圖】
【附圖說明】
[0011]圖1為本發(fā)明的檢索引擎結(jié)構(gòu)示意圖。
[0012]圖2為本發(fā)明的SQL查詢語句的主要結(jié)構(gòu)示意圖。
[0013]圖3a和圖3b為本發(fā)明的檢索條件二叉樹示例圖。
[0014]圖4為本發(fā)明的多任務(wù)優(yōu)化示例圖。
[0015]圖5為本發(fā)明的流程圖。
【具體實施方式】
[0016]下面結(jié)合具體附圖和實施例對本發(fā)明作進一步說明。
[0017]檢索引擎的基本架構(gòu)如圖1所示,可以看出查詢規(guī)劃在整個檢索過程中處于核心地位。
[0018]檢索引擎的查詢規(guī)劃主要包括三方面的內(nèi)容,一是查詢請求的解析,二是查詢子任務(wù)的生成,三是查詢子任務(wù)的規(guī)劃。傳統(tǒng)的檢索引擎中,表的存放位置、數(shù)據(jù)特點等元數(shù)據(jù)信息并不參與到查詢規(guī)劃當(dāng)中,使得查詢規(guī)劃無法充分利用數(shù)據(jù)特點做到細(xì)粒度的優(yōu)化。
[0019]SQL的查詢語句的主要結(jié)構(gòu)如圖2所示。
[0020]根據(jù)圖2可以看出一個查詢主要包括:select子句、where子句、group by及having子句、order by子句等。查詢解析的任務(wù)主要就是配合數(shù)據(jù)檢索系統(tǒng)的表結(jié)構(gòu)等元數(shù)據(jù)解析出相應(yīng)的子句對應(yīng)的操作體。
[0021]本發(fā)明所提出的查詢規(guī)劃方法,主要步驟如下:
1.利用詞法分析器對SQL語句進行分詞操作,得到SQL詞法結(jié)構(gòu);
2.利用語法分析器,結(jié)合數(shù)據(jù)檢索系統(tǒng)的表結(jié)構(gòu)信息,對SQL詞法結(jié)構(gòu)進行解析。生成的操作體按如下順序組織:where操作、select操作、group操作和order操作。其中where操作中的檢索條件用二叉樹表示,示例如圖3a和圖3b所示。[0022]3.將where操作體中的檢索條件二叉樹反轉(zhuǎn),比如((A and B) or C)反轉(zhuǎn)后表示:對數(shù)據(jù)分別按照A條件、B條件和C條件分別檢索,然后先將A條件和B條件得到的結(jié)果集求交集,再與C條件的結(jié)果集做并集。
[0023]4.對上一步中得到的where操作中檢索條件的二叉樹反轉(zhuǎn)進行拓?fù)渑判?,以確定不同檢索條件的執(zhí)行順序。排序依據(jù)是檢索字段的時空屬性和熱點特性,并采用熱點數(shù)據(jù)優(yōu)先、相似時空屬性的相鄰的原則。
[0024]5.將修改后的where操作、select操作、group操作和order操作按順序組裝成“流水線”。然后進行多任務(wù)優(yōu)化。
[0025]6.比較待執(zhí)行的多個任務(wù)的“流水線”,看是否存在公共前綴,若存在則合并相應(yīng)的流水線以減少重復(fù)操作。示例如圖4。
[0026]7.將查詢?nèi)蝿?wù)流水線交由執(zhí)行器執(zhí)行。
[0027]本發(fā)明所涉及的術(shù)語如下:
SQL是Structured Query Language (結(jié)構(gòu)化查詢語言)的縮寫。
【權(quán)利要求】
1.一種智能交通領(lǐng)域中海量數(shù)據(jù)檢索的查詢規(guī)劃方法,其特征在于,包括下述步驟: 步驟一.利用詞法分析器對SQL語句進行分詞操作,得到SQL詞法結(jié)構(gòu); 步驟二.利用語法分析器,結(jié)合數(shù)據(jù)檢索系統(tǒng)的表結(jié)構(gòu)信息,對SQL詞法結(jié)構(gòu)進行解析,生成的操作體按如下順序組織:where操作、select操作、group操作和order操作,其中where操作中的檢索條件用二叉樹表示; 步驟三.將where操作體中的檢索條件二叉樹反轉(zhuǎn); 步驟四.對上一步中得到的where操作中檢索條件的二叉樹反轉(zhuǎn)進行拓?fù)渑判?,以確定不同檢索條件的執(zhí)行順序; 步驟五.將修改后的where操作、select操作、group操作和order操作按順序組裝成流水線,然后進行多任務(wù)優(yōu)化; 步驟七.將查詢?nèi)蝿?wù)流水線交由執(zhí)行器執(zhí)行。
2.如權(quán)利要求1所述的智能交通領(lǐng)域中海量數(shù)據(jù)檢索的查詢規(guī)劃方法,其特征在于: 步驟四中,排序依據(jù)是檢索字段的時空屬性和熱點特性,并采用熱點數(shù)據(jù)優(yōu)先、相似時空屬性的相鄰的原則。
3.如權(quán)利要求1或2所述的智能交通領(lǐng)域中海量數(shù)據(jù)檢索的查詢規(guī)劃方法,其特征在于:步驟五之后,還包括 步驟六.比較待執(zhí)行的多個任務(wù)的流水線,判斷是否存在公共前綴,若存在則合并相應(yīng)的流水線以減少重復(fù)操作。
【文檔編號】G06F17/30GK103942294SQ201410147197
【公開日】2014年7月23日 申請日期:2014年4月11日 優(yōu)先權(quán)日:2014年4月11日
【發(fā)明者】安豐春, 臺憲青, 王艷軍, 趙旦譜, 圖博 申請人:江蘇物聯(lián)網(wǎng)研究發(fā)展中心