數(shù)據(jù)庫中的數(shù)據(jù)處理方法、數(shù)據(jù)查詢方法和相應裝置制造方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)庫中的數(shù)據(jù)處理方法,對于數(shù)據(jù)庫中數(shù)據(jù)記錄的查詢請求包括指示源IP地址和目的IP地址的信息,源IP地址包括N個段,目的IP地址包括M個段,該方法包括:確定數(shù)據(jù)庫的索引的編碼方式,該索引為一維索引且包括N+M段,該編碼方式包括規(guī)定所述索引的各段發(fā)生變化的先后順序,根據(jù)索引,對于任意可能的查詢請求,能夠得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,所述可能的查詢請求包括的信息所指示的源IP地址和目的IP地址中的至少一個包括至少一個含有通配符的段;根據(jù)所述編碼方式,對所述數(shù)據(jù)記錄建立索引。本發(fā)明還公開了數(shù)據(jù)查詢方法以及相應的裝置。根據(jù)本發(fā)明提供的技術方案可以提供易擴展且查詢快捷的數(shù)據(jù)庫。
【專利說明】數(shù)據(jù)庫中的數(shù)據(jù)處理方法、數(shù)據(jù)查詢方法和相應裝置
【技術領域】
[0001]本發(fā)明涉及數(shù)據(jù)庫【技術領域】,更具體地,涉及一種數(shù)據(jù)庫中的數(shù)據(jù)處理方法、一種數(shù)據(jù)查詢方法以及相應的裝置。
【背景技術】
[0002]隨著現(xiàn)代社會的不斷發(fā)展,網絡的應用越來越廣泛,相應的通過網絡傳輸?shù)臄?shù)據(jù)也越來越多。為了對這些數(shù)據(jù)進行處理、加以利用,通常會將數(shù)據(jù)保存在數(shù)據(jù)庫中。例如,為了分析用戶行為、為了網絡的測量和優(yōu)化、為了進行審計都可能會將網絡數(shù)據(jù)保存在數(shù)據(jù)庫中。
[0003]可以看到,由于網絡數(shù)據(jù)的數(shù)據(jù)量大,并且變化可能也較多,因此需要一個大容量易擴展的數(shù)據(jù)庫進行存儲。同時,對于各種需要對數(shù)據(jù)庫進行查詢的應用而言,對于大容量數(shù)據(jù)庫的快速查詢也是非常重要的。
[0004]現(xiàn)有技術中關系型數(shù)據(jù)庫的查詢方便快捷,但是擴展性較差,特別是對于容量較大數(shù)據(jù)庫?,F(xiàn)有技術中還有NoSQL數(shù)據(jù)庫,這是一種非關系型數(shù)據(jù)庫,其具有易于擴展的特性,但是由于僅有簡單一維索引,對于多維查詢,特別是多維的范圍查詢,處理較差,查詢結果反饋較慢。然而對于多數(shù)的應用,存在著針對源IP地址和目的IP地址的二維查詢,并且很多情況下是二維的范圍查詢,現(xiàn)有技術很難滿足這種需求。
【發(fā)明內容】
[0005]為了能夠提供易擴展、查詢的數(shù)據(jù)庫方案,本發(fā)明提供了一種數(shù)據(jù)庫中的數(shù)據(jù)處理方法、一種數(shù)據(jù)查詢方法以及相應的裝置。
[0006]根據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)庫中的數(shù)據(jù)處理方法,其中,對于所述數(shù)據(jù)庫中數(shù)據(jù)記錄的查詢請求包括指示源IP地址和目的IP地址的信息,所述源IP地址包括N個段,所述目的IP地址包括M個段,所述M和N均為正整數(shù),所述方法包括:確定所述數(shù)據(jù)庫的索引的編碼方式,其中所述索引為一維索引且包括N+M段,所述編碼方式包括規(guī)定所述索引的各段發(fā)生變化的先后順序;根據(jù)所述編碼方式,對所述數(shù)據(jù)記錄建立索引,其中根據(jù)所述索引,對于任意可能的查詢請求,能夠得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,所述可能的查詢請求包括的信息所指示的源IP地址和目的IP地址中的至少一個包括至少一個含有通配符的段,所述通配符表示在允許的取值范圍內的任意值。
[0007]根據(jù)本發(fā)明的另一個方面,提供了一種數(shù)據(jù)查詢方法,所述方法包括:
[0008]接收查詢請求,所述查詢請求包括指示源IP地址和目的IP地址的信息,所述源IP地址和所述目的IP地址中的至少一個包括至少一個含有通配符的段,所述通配符表示在允許的取值范圍內的任意值;將所述源IP地址和所述目的IP地址進行線性化;根據(jù)線性化后的IP地址,在具有一維索引的數(shù)據(jù)庫中進行查找,得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,其中所述數(shù)據(jù)庫中的數(shù)據(jù)記錄按照如上所述的數(shù)據(jù)處理方法進行索引。
[0009]根據(jù)本發(fā)明的再一個方面,提供了 一種用于在數(shù)據(jù)庫中處理數(shù)據(jù)的裝置,其中,對于所述數(shù)據(jù)庫中數(shù)據(jù)記錄的查詢請求包括指示源IP地址和目的IP地址的信息,所述源IP地址包括N個段,所述目的IP地址包括M個段,所述M和N均為正整數(shù),所述裝置包括:編碼模塊,被配置為確定所述數(shù)據(jù)庫的索引的編碼方式,其中所述索引為一維索引且包括N+M段,所述編碼方式包括規(guī)定所述索引的各段發(fā)生變化的先后順序;索引模塊,被配置為根據(jù)所述編碼方式,對所述數(shù)據(jù)記錄建立索引,其中根據(jù)所述索引,對于任意可能的查詢請求,能夠得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,所述可能的查詢請求包括的信息所指示源IP地址和目的IP地址中的至少一個包括至少一個含有通配符的段,所述通配符表示在允許的取值范圍內的任意值。
[0010]根據(jù)本發(fā)明的又一個方面,提供了一種用于數(shù)據(jù)查詢的裝置,所述裝置包括:接收模塊,被配置為接收查詢請求,所述查詢請求包括指示源IP地址和目的IP地址的信息,所述源IP地址和所述目的IP地址中的至少一個包括至少一個含有通配符的段,所述通配符表示在允許的取值范圍內的任意值;線性化模塊,被配置為將所述源IP地址和所述目的IP地址進行線性化;查找模塊,被配置為根據(jù)線性化后的IP地址,在具有一維索引的數(shù)據(jù)庫中進行查找,得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,其中所述數(shù)據(jù)庫中的數(shù)據(jù)記錄按照如上所述的數(shù)據(jù)處理方法進行索引。
[0011]本發(fā)明所提供的技術方案可以實現(xiàn)一個同時具有易擴展和易查詢特點的數(shù)據(jù)庫,為網絡數(shù)據(jù)的存儲、開發(fā)和利用帶來了方便。
【專利附圖】
【附圖說明】
[0012]通過結合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號通常代表相同部件。
[0013]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算系統(tǒng)100的框圖;
[0014]圖2示出了本發(fā)明實施例中一種數(shù)據(jù)庫中的數(shù)據(jù)處理方法的流程示意圖;
[0015]圖3示出了本發(fā)明實施例中一種矩陣的示例;
[0016]圖4示出了本發(fā)明實施例中另一種矩陣的示例;
[0017]圖5示出了本發(fā)明實施例中一種數(shù)據(jù)查詢的方法的流程示意圖;
[0018]圖6示出了本發(fā)明實施例中一種用于在數(shù)據(jù)庫中處理數(shù)據(jù)的裝置的結構示意圖;
[0019]圖7示出了本發(fā)明實施例中一種用于數(shù)據(jù)查詢的裝置的結構示意圖;
[0020]圖8示出了本發(fā)明實施例中一種索引方式的示例。
【具體實施方式】
[0021]下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應該理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
[0022]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算系統(tǒng)100的框圖。如圖1所示,計算機系統(tǒng)100可以包括:CPU(中央處理單元)101、RAM(隨機存取存儲器)102、ROM(只讀存儲器)103、系統(tǒng)總線104、硬盤控制器105、鍵盤控制器106、串行接口控制器107、并行接口控制器108、顯示控制器109、硬盤110、鍵盤111、串行外部設備112、并行外部設備113和顯示器114。在這些設備中,與系統(tǒng)總線104耦合的有CPU 101、RAM 102、ROM103、硬盤控制器105、鍵盤控制器106、串行控制器107、并行控制器108和顯示控制器109。硬盤110與硬盤控制器105耦合,鍵盤111與鍵盤控制器106耦合,串行外部設備112與串行接口控制器107耦合,并行外部設備113與并行接口控制器108耦合,以及顯示器114與顯示控制器109耦合。應當理解,圖1所述的結構框圖僅僅是為了示例的目的,而不是對本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況增加或減少某些設備。
[0023]所屬【技術領域】的技術人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產品。因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質中的計算機程序產品的形式,該計算機可讀介質中包含計算機可讀的程序代碼。
[0024]可以采用一個或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。
[0025]計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用的程序。
[0026]計算機可讀介質上包含的程序代碼可以用任何適當?shù)慕橘|傳輸,包括——但不限于——無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0027]可以以一種或多種程序設計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言-諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設計語言-諸如“C”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡——包括局域網(LAN)或廣域網(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。
[0028]下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產品的流程圖和/或框圖描述本發(fā)明。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序占領可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產出一種機器,這些計算機程序指令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0029]也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機可讀介質中,這樣,存儲在計算機可讀介質中的指令就產生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0030]也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設備上執(zhí)行一系列操作步驟,以產生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0031]現(xiàn)在參看圖2,圖2示出了本發(fā)明實施例提供的一種數(shù)據(jù)庫中的數(shù)據(jù)處理方法。該方法包括以下步驟:步驟210,確定數(shù)據(jù)庫的索引的編碼方式;步驟220,根據(jù)編碼方式,對數(shù)據(jù)庫中的數(shù)據(jù)記錄建立索引。
[0032]本實施例中,對于該數(shù)據(jù)庫中數(shù)據(jù)記錄的查詢請求會包括指示源IP地址和目的IP地址的信息,也即為二維的查詢請求。其中指示源IP地址和目的IP地址的信息例如為特定的符號,該符號表示了一個源IP地址和目的IP地址的范圍。為了描述方便,本實施例和下述各實施例中均以查詢請求直接包括源IP地址和目的IP地址本身為例進行說明。其中,源IP地址包括N個段,目的IP地址包括M個段,M和N均為正整數(shù)。例如,對于IPv6的IP地址,源IP地址和目的IP地址都包括8個段,而對于IPv4的IP地址,源IP地址和目的IP地址都包括4個段。在本實施例和下述各實施例中,為了描述方便,以源IP地址和目的IP地址均為IPv4地址為例進行說明。本實施例中,可能的查詢請求中的源IP地址和目的IP地址中的至少一個包括至少一個含有通配符的段,該通配符表示在允許的取值范圍內的任意值。仍以IPv4為例,通配符*表示在O至255的任意值。
[0033]步驟210中,該索引為一維索引,包括N+M段,且編碼方式包括規(guī)定索引的各段發(fā)生變化的先后順序。例如,索引包括8個段A、B、C、D、a、b、C、d,則編碼方式可以規(guī)定從最后一段到第一段依次發(fā)生變化,或者其它的變化順序。本實施例中并不限制數(shù)據(jù)庫僅具有一維索引,對于具有多維索引的數(shù)據(jù)庫,本實施例提供的方法也適用,也即該索引為多維索弓I中的其中一維,并根據(jù)該一維索引進行查找。本實施例中的索引的數(shù)據(jù)結構可以是各種樹結構,也可以是哈希表結構,具體實現(xiàn)方式可以是指針式或者數(shù)據(jù)的直接復制。
[0034]步驟220中,由于每個數(shù)據(jù)記錄或者是包括源IP地址和目的IP地址,或者是與源IP地址和目的IP地址相對應,因此,根據(jù)索引中各個段和數(shù)據(jù)記錄相應的源IP地址和目的IP地址的對應關系,對數(shù)據(jù)記錄建立索引。例如,如圖8所示的索引方式示例,索引A_B_C_D_a_b_c_d包括8個段,其中A、B、C、D分別對應源IP地址從第一段到第四段,a、b、c、d分別對應目的IP地址從第一段到第四段。編碼方式為索引的各段按照D段先變化,接著d、c、b、a、C、B、A段依次變化的順序發(fā)生變化。按照這種編碼方式建立索引,對應著源IP地址為0.0.0.0、目的IP地址為0.0.0.0的數(shù)據(jù)記錄與對應著源IP為0.0.0.1、目的IP地址為0.0.0.0的數(shù)據(jù)記錄為連續(xù)的數(shù)據(jù)記錄;對應著源IP地址為0.0.0.255,目的地址為
0.0.0.0的數(shù)據(jù)記錄與對應著源IP地址為0.0.0.0,目的地址為0.0.0.1的數(shù)據(jù)記錄為連續(xù)的數(shù)據(jù)記錄。在本實施例和其他各實施例中為了描述方便,將編碼方式描述為從后到前依次變化的M+N個段。例如,對于上述例子,編碼方式可以寫為ABCabcdD。
[0035]本實施例中,通過確定編碼方式且按照該編碼方式建立索引后,根據(jù)索引,任意可能的查詢請求都能夠得到連續(xù)的數(shù)據(jù)記錄作為查詢結果。由于該索引是一維的,所以相應的數(shù)據(jù)庫易于擴展。并且由于對于任意可能的查詢請求可以得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,因此相應的數(shù)據(jù)庫查詢響應較快,不用得到多個數(shù)據(jù)塊后再從多個數(shù)據(jù)塊中分別找到相應的數(shù)據(jù)記錄。
[0036]另一實施例中,步驟210確定的編碼方式例如能夠覆蓋所有可能的查詢請求。如果一個查詢請求中的源IP地址和目標IP地址一共包括W個含有通配符的段,而按照編碼方式I進行編碼的索引最先變化的W個段分別對應著該W個含有通配符的段,則該編碼方式I覆蓋該查詢請求。例如,查詢請求中的源IP為A.B.*.*,目標IP為a.b.C.*,若編碼方式為ABabcdCD,則按照該編碼方式編碼的索引最先變化的3個段為DCd,分別對應著源IP中含有通配符的兩個段和目的IP中含有通配符的一個段,那么編碼方式ABabcd⑶能夠覆蓋該查詢請求。如果源IP地址和目的IP地址均為最多可以包括4個含有通配符的段,那么abcdABCD、ABabcdCD、AabcdBCD、ABCabcdD和ABCDabcd這5種編碼方式可以覆蓋所有的查詢請求。本實施例以及其他各實施例中,為了描述方便,若可能的查詢請求的范圍為查詢請求的源IP地址和目的IP地址均可以包括最多4個含有通配符的段,則將該范圍稱為范圍I。
[0037]另一實施例中,步驟210例如包括:將所有可能的查詢請求進行分類;確定最大的互斥集所包含的所述可能的查詢請求的類的數(shù)量;確定X種編碼方式,X為所述最大的互斥集所包含的所有可能的查詢請求的類的數(shù)量。
[0038]對于可能的查詢請求進行分類時可以按照該查詢請求的源IP地址和目的IP地址中含有通配符的段進行分類,也即對于同一類查詢請求,一個查詢請求中的源IP地址和目的IP地址一共包括Y個含有通配符的段,則其他查詢請求中的源IP地址和目的IP地址的相應的Y個段含有通配符。例如,源IP地址中沒有含有通配符的段且目的IP地址的最后一段含有通配符的所有查詢請求屬于同一類查詢請求。例如查詢請求I中的源IP地址為1.2.101.目的地址為205.*.*.查詢請求2中的源IP地址為100.2.5.目的地址為
1.*.*.*,則查詢請求I和2屬于同一類查詢請求,可以用A.B.C.*a.*.*.*來表示這一類查詢請求。
[0039]互斥集由至少兩類查詢請求構成且任意一種編碼方式都不能同時覆蓋同一互斥集中的任意兩類查詢請求。舉例而言,A.B.C.D*.*.*.*表示的這類查詢請求和A.B.C.*a.*.*.*表示的這類查詢請求就屬于同一互斥集,無法找到一種編碼方式能夠同時覆蓋這兩類查詢請求。例如,可能的查詢請求的范圍為范圍1,那么最大的互斥集包括5類查詢請求,分別為 *.*.*.*a.b.c.d、A.*.*.*a.b.c.*、A.B.*.*a.b.*.*、A.B.C.*a.*.*.*、A.B.C.D*.*.*.*。相應的,只需要確定5種編碼方式就可以覆蓋所有可能的查詢請求。
[0040]通過對查詢請求進行分類,并確定最大的互斥集包含的查詢請求的類的數(shù)量可以很容易的確定需要多少種編碼方式才能覆蓋所有的查詢請求,并得到這些編碼方式,從而按照這些編碼方式進行索引編碼。這樣對于所有的查詢請求根據(jù)編碼得到的索引都能夠得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,而不用從多個數(shù)據(jù)塊中尋找數(shù)據(jù)記錄,大幅度的提高了查詢的速度。當然,本領域技術人員可以理解,還可以采用其它方式確定所需的編碼方式。[0041]另一實施例中可以通過窮舉得到最大的互斥集。在這個實施例中,確定X種編碼方式包括:從編碼方式集合中選擇X種編碼方式,該編碼方式集合包括所有可能的編碼方式;若選擇的X中編碼方式能夠覆蓋所有可能的查詢請求,就將這X種編碼方式作為最后確定的編碼方式。其中X為最大的互斥集包含的查詢請求的類的數(shù)量。通過窮舉可以得到所有可能的編碼方式,而從這些編碼方式中可以隨機或者按照一定規(guī)律的選擇出X種編碼方式,并驗證這X種編碼法方式是否可以覆蓋所有可能的查詢請求。
[0042]為了使得到最大的互斥集更加簡單易行,本發(fā)明實施例提供了一種根據(jù)矩陣得到最大的互斥集的方法。該方法需要建立一個(P+1)X(Q+1)的矩陣,其中P表示任意可能的查詢請求中源IP地址能夠含有通配符的段的最大數(shù)量,Q表示任意可能的查詢請求中目標IP地址能夠含有通配符的段的最大的數(shù)量,也可以將P與Q表示的對象互換。若所有的可能的請求一共分為S類,則在這個(P+1) X (Q+1)的矩陣中的S個元素中每一個元素表示一類查詢請求。并且該矩陣中元素的排列為,與元素對應的查詢請求中的源IP地址和目標IP地址滿足以下規(guī)律之一:1)從左到右源IP地址中含有通配符的段逐漸減少,且從上到下目的IP地址中含有通配符的段逐漸增加;2)從左到右源IP地址中含有通配符的段逐漸增力口,且從上到下目的IP地址中含有通配符的段逐漸增加;3)從左到右源IP地址中含有通配符的段逐漸減少,且從上到下目的IP地址中含有通配符的段逐漸減少;4)從左到右源IP地址中含有通配符的段逐漸增加,且從上到下目的IP地址中含有通配符的段逐漸減少;5)從左到右目的IP地址中含有通配符的段逐漸減少,且從上到下源IP地址中含有通配符的段逐漸增加;6)從左到右目的IP地址中含有通配符的段逐漸增加,且從上到下源IP地址中含有通配符的段逐漸增加;7)從左到右目的IP地址中含有通配符的段逐漸減少,且從上到下源IP地址中含有通配符的段逐漸減少;8)從左到右目的IP地址中含有通配符的段逐漸增加,且從上到下源IP地址中含有通配符的段逐漸減少。
[0043]為了描述方便,以Ku表示矩陣中的元素,其中i表示該元素位于第i行,j表示該元素位于第j列,i和j均從I開始。
[0044]舉例而言,若所有可能的查詢請求的范圍為范圍1,那么所有可能的請求一共有24類,則該矩陣可以為如圖3所示的矩陣。其中最右上角的元素表示源IP地址和目的IP地址都不包括含有通配符的段的一類查詢請求,這類查詢請求雖然不屬于可能的查詢請求的范圍,但也可以適用本實施例所提供的方法。除了最右上角的元素,其余24個元素分別與一類可能的查詢請求對應,且元素的排列符合上述第I)種規(guī)律。
[0045]根據(jù)上述矩陣中元素的位置,可以確定最大的互斥集所包含的所有可能的查詢請求的類的數(shù)量。下面舉個詳細的例子進行說明。根據(jù)矩陣,確定元素E和F之間的相對位置關系。兩個元素之間的相對位置關系包括:一個元素位于另一個元素的正上方、正下方、正左方、正右方、左上方、左下方、右上方、右下方中的一個。對于該矩陣中的任意兀素,若一元素與該元素的相對位置關系滿足元素E和元素F的相對位置關系,則這兩個元素屬于同一互斥集。按照這樣的規(guī)律,就可以找到最大的互斥集,并進而確定該最大互斥集中包含的可能的查詢請求的類的數(shù)量。其中,元素E表示的查詢請求中的源IP地址中含有通配符的段最多且目的IP地址中含有通配符的段最少;元素F表示的查詢請求中的目的IP地址中含有通配符的段最多且源IP地址中含有通配符的段最少。對于圖3所示的矩陣,元素E為最左上角的元素K11,元素F為最右下角的元素K55,元素E與F之間的相對位置關系為元素E位于元素F的左上方,或者元素F位于元素E的右下方。那么,例如對于元素K45若一個元素位于其左上方或者右下方,則該元素與元素K45表示的查詢請求屬于同一互斥集??梢钥粗罥J,元素K45的右下方沒有任何元素了,而元素K34位于其左上方,那么元素K45和K34表示的查詢請求屬于同一互斥集。并且,元素K23位于元素K34和K45的左上方,所以這三個元素表示的查詢請求屬于同一互斥集。由此可以找到最大的互斥集。對于圖3所示的矩陣,從元素E到元素F的對角線上的5個元素所表示的查詢請求構成最大的互斥集。該最大的互斥集中包含的可能的查詢請求的類的數(shù)量為5??梢钥吹?,通過將查詢請求分類并構建矩陣,以及確定互斥集中查詢請求所對應的元素在矩陣中的位置關系就可以非常簡單、有效的找到最大的互斥集,而不必進行窮舉,減少了計算量,并且該方法非常有利于計算機實施。
[0046]在一實施例中,若P與Q的取值相同,且從元素E到元素F的對角線上的元素表示的查詢請求均屬于可能的查詢請求,則最大的互斥集為從元素E到元素F的對角線上所有的元素表示的查詢請求構成最大的互斥集。
[0047]利用上述矩陣不但可以簡單的找到最大的互斥集,確定其包含的所有可能的查詢請求的類的數(shù)量,還可以確定X種編碼方式。具體地,根據(jù)矩陣中元素構成的路徑,可以確定X種編碼方式。為了更好的理解如何使用矩陣中元素構成的路徑找到編碼方式,本實施例提供兩種具體的示例方法,本領域技術人員還可以根據(jù)矩陣采用其他方式得到合適的編碼方式。以下具體的示例中以最大的互斥集包括的可能的查詢請求的類的數(shù)量為5進行描述。
[0048]第一種示例方法如下:在矩陣中沿著第一方向和第二方向從元素G開始到元素H和元素I中的任一個為止的每一條路徑表示一種編碼方式,找到所有的路徑后得到相應的編碼方式,從所有的編碼方式中選出5種,這5種編碼方式能夠覆蓋所有可能的查詢請求。具體的,第一方向為查詢請求中的源IP地址的含有通配符的段不變且目的IP地址的含有通配符的段減少一個;第二方向為查詢請求中的源IP地址的含有通配符的段減少一個且目的IP地址的含有通配符的段不變。元素G表示的查詢請求中的源IP地址和目的IP地址均包括最多的含有通配符的段;元素H表示的查詢請求中的源IP地址僅包括一個含有通配符的段且目的IP地址不包括含有通配符的段;元素I表示的查詢請求中的源IP地址不包括含有通配符的段且目的IP地址僅包括一個含有通配符的段。路徑與編碼方式的對應方法為:若到達的為元素H則相應的編碼方式最先變化的段為D,若到達的元素為I則相應的編碼方式最先變化的段為d,此外從元素G開始,路徑上的下一個元素與上一個元素相t匕,依次找到不同的段,按照最后找到的段最先變化,最先找到的段最后變化的順序依次發(fā)生變化。如圖3所示的矩陣,元素G為元素K51,元素H為元素K14,元素I為元素K25。第一方向為向上一個,第二方向為向右一個。從兀素G開始一直向上到達兀素K11后一直向右到達元素H構成一條符合上述要求的路徑。該路徑相應的編碼方式為,由于到達的元素為H,所以最先變化的段為D,此外元素G與路徑上的下一個元素K41相比,不同的段為a,這樣依次找到不同的段分別為b、c、d、A、B、C,按照最后找到的段最先變化,最先找到的段最后變化的依次變化順序,該編碼方式為abcdABCD。以圖3中灰色標注的路徑為例,由于最后達到的為元素I,所以相應的編碼方式最先變化的段為d,其余的段按照D、c、C、b、B、a、A依次先后變化,所以相應的編碼方式應該為AaBbCcDd。本領域技術人員可以理解,這種尋找路徑的方法可以擴展為找到從元素G到元素J的沿著第一方向和第二方向行進的所有路徑,其中元素J表示的查詢請求中的源IP地址和目的IP地址都不包括含有通配符的段??梢钥吹饺绻窂窖氐谝环较蚝偷诙较蜓由斓脑?,到達元素J的路徑一定會經過元素H或者元素I。根據(jù)上述方式,對于圖3所示的矩陣可以找到70條路徑,從這70條路徑中任意選出5條路徑,判斷這5條路徑相應的編碼方式是否能夠覆蓋所有的查詢請求,若可以,則將這5種編碼方式作為最終的編碼方式。可以理解5種編碼方式的挑選結果并非唯一。
[0049]第二種示例方法如下:在矩陣中沿著第一方向和第二方向從元素G開始到元素H和元素I中的任一個為止的每一條路徑表示一種編碼方式,找到5條路徑,其中每條路徑分別經過最大的互斥集中查詢請求所對應的元素中的一個,且這5條路徑的總和經過所有可能的查詢請求所對應的元素,這5條路徑對應的編碼方式能夠覆蓋所有可能的查詢請求。其中元素G、元素H、元素I和第一方向以及第二方向的含義以及路徑與編碼方式的對應與第一種具體的示例中的相同。仍以圖3所示的矩陣為例,最大的互斥集中查詢請求所對應的元素分別為元素Kn、K22、K33、K44、K55。那么符合上述要求的5條路徑可以分別為:1)經過K51、K41、K31、K21、Kn,K12, Κ13、K14 的第一路徑;2)經過 Κ51、Κ52、K42, K32> K22, Κ23、K24, K25 的第二路徑;3)經過 Κ51、K52, Κ53、Κ43、Κ33、Κ34、Κ35、K25 的第三路徑;4)經過 Κ51、Κ52、Κ53、K54, K44, Κ34、Κ24、Κ14的第四路徑;5)經過K51、K52、K53、K54、K55、K45、K35、K25的第五路徑。相應的,這5條路徑對應的編碼方式為abcdABCD、AabcBCDcU ABabCDccU ABCabcdD, ABCDabcd。本領域技術人員可以理解滿足經過最大互斥集中查詢請求對應的元素且總和能夠經過所有可能的查詢請求對應的元素的5條路徑并不唯一,并且有多種方法可以確定滿足上述條件的5條路徑。下面給出一種示例。I)找到最大的互斥集中剩下的最左上的元素,確定從當前矩陣最左下角的元素開始穿過該最左上的元素,到達當前矩陣最右上角元素的最外圍的路徑,在行進中只能向上或者向右;2)去掉該路徑經過的所有元素,剩下的元素構成當前矩陣;3)重復I)和2)直到剩下元素K55 ;4)將上述得到的路徑補充完整,補充時,將路徑的最左下的元素與K51相連,連接時方向為向左向下,并將路徑最右上的元素與K15相連,連接時方向為向右向上,并最后去掉路徑中的K15得`到5條路徑。K55為元素F,K51為元素G,K15表示的查詢請求中的源IP地址和目的IP地址都不包括含有通配符的段。最后也可以不去掉K15。
[0050]本實施例中,為了更加靈活的提供數(shù)據(jù)處理的方法,還可以接收指令,該指令用于指示可能的查詢請求的范圍。該指令可以是用戶發(fā)出的,也可以是應用發(fā)出的。指令中可以包括P和/或Q的數(shù)值。另一實施例中,指令可以包括不會存在的查詢請求的類型等。例如,發(fā)出的指令指示 Α.*.*.*a.b.c.*、A.B.*.*a.b.*.*、A.B.*.*a.*.*.*、A.B.C.Da.*.*.*這四類查詢請求不會存在。如圖4所示,標為灰色的元素表示的查詢請求不會存在。根據(jù)該矩陣Kn、K23、K34和K55表示的查詢請求構成一個最大的互斥集。根據(jù)第二種具體示例給出的方法,找到4條路徑,分別為:經過Κ51、Κ41、Κ31、Κ21、Κη、Κ12、Κ13、Κ14的第一條路徑經;經過1(51、K52> K42, K32> K22, K23、K24, K25 的第二條路徑;經過 K51、K52、K53、K54, K44, Κ34、Κ35、K25 的第三條路徑j^lK51、K52、K53、K54、K55、K45、K35、K25的第四條路徑。獲得相應的編碼方式為:abcdABCD、AabcB⑶d、ABCabDcd和AB⑶abed。通過允許客戶或者應用指示可能的查詢請求的范圍,可以一定程度上的減少所需的編碼方式,相應的也就減少了索引,節(jié)省了存儲空間,并且使得方案更加的靈活。
[0051 ] 通過本實施例上述描述可以看出,本實施例提供的數(shù)據(jù)庫中的數(shù)據(jù)處理方法通過使用一維索引的數(shù)據(jù)庫使得對于大容量的數(shù)據(jù)庫而言擴展容易,同時采用了特定的索引的編碼方式使得查詢結果為連續(xù)的數(shù)據(jù)記錄,從而避免了得到多個數(shù)據(jù)塊并從多個數(shù)據(jù)塊中查找最終的查詢結果帶來的時間和計算成本,提高了查詢速度。并且,本實施例提供的數(shù)據(jù)處理方法將確定最大互斥集轉換為矩陣中元素的位置關系,還可以將確定X種編碼方式轉換為矩陣中元素構成的路徑的尋找,使得編碼方式的確定更加容易,同時也可以利用多種路徑處理的技術來確定符合要求的路徑,實施更加靈活。
[0052]如圖5所示,本發(fā)明實施例提供了一種數(shù)據(jù)查詢的方法。該方法包括:步驟510,接收查詢請求;步驟520,將該查詢請求所包括的信息指示的源IP地址和目的IP地址進行線性化;步驟530,根據(jù)線性化后的IP地址,在具有一維索引的數(shù)據(jù)庫中進行查找,得到連續(xù)的數(shù)據(jù)記錄作為查詢結果。
[0053]本實施例中,待查詢的數(shù)據(jù)庫按照圖2所示的實施例中的方法進行索引。具體實現(xiàn)可以參照圖2所示的實施例。
[0054]本實施例中,步驟510接收的查詢請求包括指示源IP地址和目的IP地址的信息,該源IP地址和目的IP地址中的至少一個包括至少一個含有通配符的段,更具體的實施方式和示例可以參照圖2所示的實施例。
[0055]本實施例中,由于待查詢的數(shù)據(jù)庫的索引是一維的,所以需要對源IP地址和目的IP地址進行線性化,使其成為一維的。步驟520中,對源IP地址和目的IP地址進行線性化具體可以是按照數(shù)據(jù)庫的索引的編碼方式中的每一種對源IP地址和目的IP地址進行線性化。步驟520具體還可以實施為,確定能夠覆蓋查詢請求的數(shù)據(jù)庫的索引的編碼方式,按照該編碼方式對源IP地址和目的IP地址進行線性化??梢钥吹剑绻麑υ碔P地址和目的IP地址按照編碼方式中的每一種進行線性化,就可以同時按照各種編碼方式編碼的索引進行查找,若編碼方式能夠覆蓋該查詢請求,則按照相應的索引查詢會較快得到查詢的結果,并將該結果最為最終的查詢結果。如果是先確定能夠覆蓋請求的編碼方式,并按照該編碼方式對源IP地址和目的IP地址進行線性化,可以按照該編碼方式相應的索引進行查詢,并得到查詢結果。舉例而言,以圖4所示的矩陣為例,數(shù)據(jù)庫采用abcdAB⑶、AabcB⑶d、ABCabDcd和AB⑶abed這四種編碼方式編碼索引。用戶發(fā)出查詢請求,該查詢請求中的源IP地址為10.*.*.*,目的IP地址為20.102.*.*。如果采用線性化的第一種實施方式,則線性化的結果分別為:20.102.*.*.10.*.*.*>10.20.102.*.*.*.*.*>10.*.*.20.102.*.*.*、
10.*.*.*.20.102.*.*??梢钥吹桨凑盏?種編碼方式線性化的IP地址可以按照第2種編碼方式對應的索引查詢得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,因此能夠較快的反饋查詢結果。如果采用線性化的第二種實施方式,可以判斷A.*.*.*a.b.*.*類的查詢請求能夠被第二種編碼方式所覆蓋,因此按照第二種編碼方式直接對源IP地址和目的IP地址進行線性化,并且按照第二種編碼方式對應的索引進行查詢,得到連續(xù)的數(shù)據(jù)記錄作為查詢結果??梢钥吹?,兩種實現(xiàn)方式各自具有相應的優(yōu)點,具體實施時可以根據(jù)實際需求應用不同的實現(xiàn)方式。采用本實施例提供的數(shù)據(jù)查詢的方法可以提高查詢的速度,增強用戶滿意度。
[0056]本領域技術人員可以理解,上述各方法實施例之間可以彼此結合,得到更多的技術方案。
[0057]如圖6所示,本發(fā)明實施例提供了 一種用于在數(shù)據(jù)庫中處理數(shù)據(jù)的裝置600。該裝置600包括:編碼模塊610和索引模塊620。編碼模塊610被配置為確定數(shù)據(jù)庫的索引的編碼方式,其中索引為一維索引且包括N+M段,編碼方式包括規(guī)定所述索引的各段發(fā)生變化的先后順序;索引模塊620,被配置為根據(jù)確定的編碼方式,對所述數(shù)據(jù)記錄建立索引,其中根據(jù)該索引,對于任意可能的查詢請求,能夠得到連續(xù)的數(shù)據(jù)記錄作為查詢結果。其中可能的查詢請求與圖2所示實施例中可能的查詢請求相同。本實施例中,具體的實施細節(jié)和解釋等可以參照上述方法實施例,此處不再贅述。
[0058]在另一實施例中,編碼模塊610確定的編碼方式能夠覆蓋所有所述可能的查詢請求。對于覆蓋的具體描述可以參照方法實施例,此處不再贅述。
[0059]在另一實施例中,編碼模塊610可以包括分類子模塊611、互斥子模塊612和確定子模塊613。分類子模塊611被配置為將所有所述可能的查詢請求進行分類;互斥子模塊612被配置為確定最大的互斥集所包含的所述可能的查詢請求的類的數(shù)量;確定子模塊613被配置為確定X種編碼方式。其中查詢請求的分類,互斥集的定義以及X的定義可以參照方法實施例,此處不再贅述。
[0060]在另一實施例中,編碼模塊610進一步可以包括矩陣子模塊614。矩陣子模塊614被配置為得到一個(P+1)X(Q+1)的矩陣。其中矩陣具體的構造方法以及其中元素的定義可以參照方法實施例,此處不再贅述。相應的,互斥子模塊612具體被配置為,根據(jù)所述矩陣,確定最大的互斥集所包含的所有可能的查詢請求的類的數(shù)量。進一步的,確定子模塊613具體被配置為,根據(jù)所述矩陣,確定X種編碼方式。
[0061]在另一實施例中,互斥子模塊612具體被配置為,根據(jù)所述矩陣中元素的位置關系,確定最大的互斥集所包含的所述可能的查詢請求的類的數(shù)量。
[0062]在另一實施例中,確定子模塊613具體被配置為,根據(jù)所述矩陣中元素構成的路徑,確定X種編碼方式。
[0063]例如,互斥子模塊612包括:位置次模塊,被配置為確定元素E與元素F之間的相對位置關系,相對位置可以參照方法實施例;數(shù)量次模塊,被配置為根據(jù)元素E與元素F的相對位置關系,確定最大的互斥集所包含的所有可能的查詢請求的類的數(shù)量。具體的確定相對位置關系以及得到最大的互斥集的方法可以參照方法實施例,此處不再贅述。
[0064]例如,確定子模塊613包括:第一路徑次模塊,被配置為根據(jù)所述矩陣中的路徑,確定所有編碼方式;選擇次模塊,被配置為從所有的編碼方式中任選出X種編碼方式,X種編碼方式能夠覆蓋所有可能的查詢。具體的如何根據(jù)路徑確定編碼方式,如何找到路徑以及如何選擇X種編碼方式等都可以參照方法實施例,此處不再贅述。
[0065]例如,確定子模塊613包括:第二路徑次模塊,被配置為在矩陣中找到X條路徑;獲得次模塊,被配置為根據(jù)所述X條路徑得到對應的X種編碼方式。具體如何找到X條路徑等可以參照方法實施例,此處不再贅述。
[0066]在另一實施例中,裝置600進一步包括接收模塊630,被配置為接收指令,所述指令用于指示可能的查詢請求的范圍。具體的指令如何指示可能的查詢請求的范圍可以參照方法實施例,此處不再贅述。
[0067]通過上述實施例提供的裝置,可以比較容易的對大容量數(shù)據(jù)庫進行擴展,并且查詢相應也較快,避免了從多個數(shù)據(jù)塊中尋找多個數(shù)據(jù)記錄作為查詢結果,而是直接得到連續(xù)的數(shù)據(jù)記錄作為查詢結果。進一步的,該裝置通過將查詢請求分類并矩陣化,將確定編碼方式簡化為對于矩陣中路徑的處理,或者對于元素的確定,大幅度的簡化了計算。
[0068]本領域技術人員可以理解,上述各裝置實施例之間可以相互結合得到更多的技術方案。
[0069]如圖7所示,本發(fā)明實施例還提供了 一種用于數(shù)據(jù)查詢的裝置700。該裝置700包括:接收模塊710,被配置為接收查詢請求;線性化模塊720,被配置為將源IP地址和目的IP地址進行線性化;查找模塊730,被配置為根據(jù)線性化后的IP地址,在具有一維索引的數(shù)據(jù)庫中進行查找,得到連續(xù)的數(shù)據(jù)記錄作為查詢結果。本實施例中,該數(shù)據(jù)庫按照上述方法實施例提供的數(shù)據(jù)處理方法建立索引。查詢請求等可以參照方法實施例,此處不再贅述。
[0070]在另一實施例中,該裝置700包括如圖6所示的裝置600以對數(shù)據(jù)庫建立索引。
[0071]在另一實施例中,線性化模塊720被配置為按照數(shù)據(jù)庫的索引的編碼方式中的每一種對所述源IP地址和所述目的IP地址進行線性化。
[0072]在另一實施例中,線性化模塊720被配置為確定能夠覆蓋所述查詢請求的所述數(shù)據(jù)庫的索引的編碼方式,并按照該編碼方式對所述源IP地址和所述目的IP地址進行線性化。
[0073]圖7所示的上述實施例可以彼此結合得到更多的技術方案。圖7所示實施例提供的裝置可以提高查詢響應速度。
[0074]圖7和圖6所示實施例中的細節(jié)可以參照相應的方法實施例。
[0075]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產品的可能實現(xiàn)的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框實際上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
[0076]以上已經描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本【技術領域】的普通技術人員來說許多修改和變更都是顯而易見的。本文中所用術語的選擇,旨在最好地解釋各實施例的原理、實際應用或對市場中的技術的技術改進,或者使本【技術領域】的其它普通技術人員能理解本文披露的各實施例。
【權利要求】
1.一種數(shù)據(jù)庫中的數(shù)據(jù)處理方法,其中,對于所述數(shù)據(jù)庫中數(shù)據(jù)記錄的查詢請求包括指示源IP地址和目的IP地址的信息,所述源IP地址包括N個段,所述目的IP地址包括M個段,所述M和N均為正整數(shù),所述方法包括: 確定所述數(shù)據(jù)庫的索引的編碼方式,其中所述索引為一維索引且包括N+M段,所述編碼方式包括規(guī)定所述索引的各段發(fā)生變化的先后順序,根據(jù)所述索引,對于任意可能的查詢請求,能夠得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,所述可能的查詢請求包括的信息所指示的源IP地址和目的IP地址中的至少一個包括至少一個含有通配符的段,所述通配符表示在允許的取值范圍內的任意值; 根據(jù)所述編碼方式,對所述數(shù)據(jù)記錄建立索引。
2.根據(jù)權利要求1所述的方法,其中,所述編碼方式能夠覆蓋所有所述可能的查詢請求,其中,若一個查詢請求包括的信息所指示的源IP地址和目的IP地址一共包括A個含有通配符的段,且按照一個編碼方式進行編碼的索引最先變化的A個段分別對應著所述A個含有通配符的段,則該編碼方式覆蓋該查詢請求。
3.根據(jù)權利要求2所述的方法,其中,所述確定所述數(shù)據(jù)庫的索引的編碼方式,包括: 將所有所述可能的查詢請求進行分類,其中,對于同一類查詢請求,其中一個查詢請求包括的信息所指示的源IP地址和目的IP地址一共包括B個含有通配符的段,則該類中其他查詢請求包括的信息所指示的源IP地址和目的IP地址的相應的B個段含有通配符;確定最大的互斥集所包含的所述可能的查詢請求的類的數(shù)量,其中,對于所述互斥集中任意兩類查詢請求,任一種編碼方式都不能同時覆蓋該兩類查詢請求; 確定X種編碼方式,其中X為所述最大的互斥集所包含的所有可能的查詢請求的類的數(shù)量。
4.根據(jù)權利要求3所述`的方法,其中所述確定X種編碼方式,包括: 從編碼方式集合中選擇X種編碼方式,所述編碼方式集合包括所有可能的編碼方式;若選擇的X種編碼方式能夠覆蓋所有可能的查詢請求,則將該X種編碼方式作為最后確定的編碼方式。
5.根據(jù)權利要求3所述的方法,其中, 在所述將所有所述可能的查詢請求進行分類之后,所述方法進一步包括:得到一個(P+1) X (Q+1)的矩陣,若所有所述可能的請求為S類,所述矩陣中的S個元素中每一個元素表示一類查詢請求,其中,P和Q中的一個為任意所述可能的查詢請求包括的信息所指示的源IP地址中能夠含有通配符的段的最大數(shù)量,P和Q中的另一個為任意所述可能的查詢請求包括的信息所指示的目的IP地址中能夠含有通配符的段的最大數(shù)量; 所述確定最大的互斥集所包含的所述可能的查詢請求的類的數(shù)量,包括:根據(jù)所述矩陣,確定最大的互斥集所包含的所述可能的查詢請求的類的數(shù)量; 其中,所述矩陣中元素表示的查詢請求包含的信息所指示的源IP地址和目的IP地址滿足以下條件中的一個: 從左到右所述源IP地址中含有通配符的段逐漸減少,且從上到下所述目的IP地址中含有通配符的段逐漸增加; 從左到右所述源IP地址中含有通配符的段逐漸增加,且從上到下所述目的IP地址中含有通配符的段逐漸增加;從左到右所述源IP地址中含有通配符的段逐漸減少,且從上到下所述目的IP地址中含有通配符的段逐漸減少; 從左到右所述源IP地址中含有通配符的段逐漸增加,且從上到下所述目的IP地址中含有通配符的段逐漸減少; 從左到右所述目的IP地址中含有通配符的段逐漸減少,且從上到下所述源IP地址中含有通配符的段逐漸增加; 從左到右所述目的IP地址中含有通配符的段逐漸增加,且從上到下所述源IP地址中含有通配符的段逐漸增加; 從左到右所述目的IP地址中含有通配符的段逐漸減少,且從上到下所述源IP地址中含有通配符的段逐漸減少; 從左到右所述目的IP地址中含有通配符的段逐漸增加,且從上到下所述源IP地址中含有通配符的段逐漸減少。
6.根據(jù)權利要求5所述的方法,其中,所述確定X種編碼方式,包括:根據(jù)所述矩陣確定X種編碼方式。
7.根據(jù)權利要求5所述的方法,其中,所述根據(jù)所述矩陣,確定最大的互斥集所包含的所述可能的查詢請求的類的數(shù)量,包括: 根據(jù)所述矩陣中元素的位置關系,確定最大的互斥集所包含的所述可能的查詢請求的類的數(shù)量。
8.根據(jù)權利要求6所述的方法,其中,所述根據(jù)所述矩陣確定X種編碼方式,包括: 根據(jù)所述矩陣中元素構成的路 徑,確定所述X種編碼方式。
9.根據(jù)權利要求1所述的方法,其中,所述方法進一步包括:接收指令,所述指令用于指示所述可能的查詢請求的范圍。
10.一種數(shù)據(jù)查詢方法,所述方法包括: 接收查詢請求,所述查詢請求包括指示源IP地址和目的IP地址的信息,所述源IP地址和所述目的IP地址中的至少一個包括至少一個含有通配符的段,所述通配符表示在允許的取值范圍內的任意值; 將所述源IP地址和所述目的IP地址進行線性化; 根據(jù)線性化后的IP地址,在具有一維索引的數(shù)據(jù)庫中進行查找,得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,其中所述數(shù)據(jù)庫中的數(shù)據(jù)記錄按照權利要求1-9中任一項所述的方法進行索引。
11.根據(jù)權利要求10所述的方法,所述將所述源IP地址和所述目的IP地址進行線性化,包括:按照所述數(shù)據(jù)庫的索引的編碼方式中的每一種對所述源IP地址和所述目的IP地址進行線性化。
12.根據(jù)權利要求10所述的方法,所述將所述源IP地址和所述目的IP地址進行線性化,包括:確定能夠覆蓋所述查詢請求的所述數(shù)據(jù)庫的索引的編碼方式,按照該編碼方式對所述源IP地址和所述目的IP地址進行線性化。
13.一種用于在數(shù)據(jù)庫中處理數(shù)據(jù)的裝置,其中,對于所述數(shù)據(jù)庫中數(shù)據(jù)記錄的查詢請求包括指示源IP地址和目的IP地址的信息,所述源IP地址包括N個段,所述目的IP地址包括M個段,所述M和N均為正整數(shù),所述裝置包括:編碼模塊,被配置為確定所述數(shù)據(jù)庫的索引的編碼方式,其中所述索引為一維索引且包括N+M段,所述編碼方式包括規(guī)定所述索引的各段發(fā)生變化的先后順序,根據(jù)所述索引,對于任意可能的查詢請求,能夠得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,所述可能的查詢請求包括的信息所指示源IP地址和目的IP地址中的至少一個包括至少一個含有通配符的段,所述通配符表示在允許的取值范圍內的任意值; 索引模塊,被配置為根據(jù)所述編碼方式,對所述數(shù)據(jù)記錄建立索引。
14.根據(jù)權利要求13所述的裝置,其中,所述編碼方式能夠覆蓋所有所述可能的查詢請求,其中,若一個查詢請求包括的信息所指示的源IP地址和目的IP地址一共包括A個含有通配符的段,且按照一個編碼方式進行編碼的索引最先變化的A個段分別對應著所述A個含有通配符的段,則該編碼方式覆蓋該查詢請求。
15.根據(jù)權利要求14所述的裝置,其中,所述編碼模塊包括: 分類子模塊,被配置為將所有所述可能的查詢請求進行分類,其中,對于同一類查詢請求,其中一個查詢請求包括的信息所指示的源IP地址和目的IP地址一共包括B個含有通配符的段,則該類中其他查詢請求包括的信息所指示的源IP地址和目的IP地址的相應的B個段含有通配符; 互斥子模塊,被配置為確定最大的互斥集所包含的所述可能的查詢請求的類的數(shù)量,其中,對于所述互斥集中任意兩類查詢請求,任一種編碼方式都不能同時覆蓋該兩類查詢請求; 確定子模塊,被配置為確定X種編碼方式,其中X為所述最大的互斥集所包含的所有可能的查詢請求的類的數(shù)量。
16.根據(jù)權利要求15所述的裝置,其中, 所述編碼模塊進一步包括:矩陣子模塊,被配置為得到一個(P+1) X (Q+1)的矩陣,若所有所述可能的請求為S類,所述矩陣中的S個元素中每一個元素表示一類查詢請求,其中,P和Q中的一個為任意所述可能的查詢請求包括的信息所指示的源IP地址中能夠含有通配符的段的最大數(shù)量,P和Q中的另一個為任意所述可能的查詢請求包括的信息所指示的目的IP地址中能夠含有通配符的段的最大數(shù)量; 所述互斥子模塊具體被配置為,根據(jù)所述矩陣,確定最大的互斥集所包含的所述可能的查詢請求的類的數(shù)量; 所述確定子模塊具體被配置為,根據(jù)所述矩陣,確定X種編碼方式。 其中,所述矩陣中元素表示的查詢請求包含的信息所指示的源IP地址和目的IP地址滿足以下條件中的一個: 從左到右所述源IP地址中含有通配符的段逐漸減少,且從上到下所述目的IP地址中含有通配符的段逐漸增加; 從左到右所述源IP地址中含有通配符的段逐漸增加,且從上到下所述目的IP地址中含有通配符的段逐漸增加; 從左到右所述源IP地址中含有通配符的段逐漸減少,且從上到下所述目的IP地址中含有通配符的段逐漸減少; 從左到右所述源IP地址中含有通配 符的段逐漸增加,且從上到下所述目的IP地址中含有通配符的段逐漸減少;從左到右所述目的IP地址中含有通配符的段逐漸減少,且從上到下所述源IP地址中含有通配符的段逐漸增加; 從左到右所述目的IP地址中含有通配符的段逐漸增加,且從上到下所述源IP地址中含有通配符的段逐漸增加; 從左到右所述目的IP地址中含有通配符的段逐漸減少,且從上到下所述源IP地址中含有通配符的段逐漸減少; 從左到右所述目的IP地址中含有通配符的段逐漸增加,且從上到下所述源IP地址中含有通配符的段逐漸減少。
17.根據(jù)權利要求16所述的裝置,其中, 所述互斥子模塊具體被配置為,根據(jù)所述矩陣中元素的位置關系,確定最大的互斥集所包含的所述可能的查詢請求的類的數(shù)量; 所述確定子模塊具體被配置為,根據(jù)所述矩陣中元素構成的路徑,確定X種編碼方式。
18.根據(jù)權利要求13所述的裝置,其中,所述裝置進一步包括: 接收模塊,被配置為接收指令,所述指令用于指示所述可能的查詢請求的范圍。
19.一種用于數(shù)據(jù)查詢的裝置,所述裝置包括: 接收模塊,被配置為接收查詢請求,所述查詢請求包括指示源IP地址和目的IP地址的信息,所述源IP地址和所述目的IP地址中的至少一個包括至少一個含有通配符的段,所述通配符表示在允許的取值范圍內的任意值;` 線性化模塊,被配置為將所述源IP地址和所述目的IP地址進行線性化; 查找模塊,被配置為根據(jù)線性化后的IP地址,在具有一維索引的數(shù)據(jù)庫中進行查找,得到連續(xù)的數(shù)據(jù)記錄作為查詢結果,其中所述數(shù)據(jù)庫中的數(shù)據(jù)記錄按照權利要求1-9中任一項所述的方法進行索引。
【文檔編號】G06F17/30GK103514224SQ201210224193
【公開日】2014年1月15日 申請日期:2012年6月29日 優(yōu)先權日:2012年6月29日
【發(fā)明者】鄒嘉, 王鯤, 袁昱, 張躍, 汪天一 申請人:國際商業(yè)機器公司