CN103514224A - 数据库中的数据处理方法、数据查询方法和相应装置 - Google Patents
数据库中的数据处理方法、数据查询方法和相应装置 Download PDFInfo
- Publication number
- CN103514224A CN103514224A CN201210224193.XA CN201210224193A CN103514224A CN 103514224 A CN103514224 A CN 103514224A CN 201210224193 A CN201210224193 A CN 201210224193A CN 103514224 A CN103514224 A CN 103514224A
- Authority
- CN
- China
- Prior art keywords
- address
- section
- inquiry request
- asterisk wildcard
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据库中的数据处理方法,对于数据库中数据记录的查询请求包括指示源IP地址和目的IP地址的信息,源IP地址包括N个段,目的IP地址包括M个段,该方法包括:确定数据库的索引的编码方式,该索引为一维索引且包括N+M段,该编码方式包括规定所述索引的各段发生变化的先后顺序,根据索引,对于任意可能的查询请求,能够得到连续的数据记录作为查询结果,所述可能的查询请求包括的信息所指示的源IP地址和目的IP地址中的至少一个包括至少一个含有通配符的段;根据所述编码方式,对所述数据记录建立索引。本发明还公开了数据查询方法以及相应的装置。根据本发明提供的技术方案可以提供易扩展且查询快捷的数据库。
Description
技术领域
本发明涉及数据库技术领域,更具体地,涉及一种数据库中的数据处理方法、一种数据查询方法以及相应的装置。
背景技术
随着现代社会的不断发展,网络的应用越来越广泛,相应的通过网络传输的数据也越来越多。为了对这些数据进行处理、加以利用,通常会将数据保存在数据库中。例如,为了分析用户行为、为了网络的测量和优化、为了进行审计都可能会将网络数据保存在数据库中。
可以看到,由于网络数据的数据量大,并且变化可能也较多,因此需要一个大容量易扩展的数据库进行存储。同时,对于各种需要对数据库进行查询的应用而言,对于大容量数据库的快速查询也是非常重要的。
现有技术中关系型数据库的查询方便快捷,但是扩展性较差,特别是对于容量较大数据库。现有技术中还有NoSQL数据库,这是一种非关系型数据库,其具有易于扩展的特性,但是由于仅有简单一维索引,对于多维查询,特别是多维的范围查询,处理较差,查询结果反馈较慢。然而对于多数的应用,存在着针对源IP地址和目的IP地址的二维查询,并且很多情况下是二维的范围查询,现有技术很难满足这种需求。
发明内容
为了能够提供易扩展、查询的数据库方案,本发明提供了一种数据库中的数据处理方法、一种数据查询方法以及相应的装置。
根据本发明的一个方面,提供了一种数据库中的数据处理方法,其中,对于所述数据库中数据记录的查询请求包括指示源IP地址和目的IP地址的信息,所述源IP地址包括N个段,所述目的IP地址包括M个段,所述M和N均为正整数,所述方法包括:确定所述数据库的索引的编码方式,其中所述索引为一维索引且包括N+M段,所述编码方式包括规定所述索引的各段发生变化的先后顺序;根据所述编码方式,对所述数据记录建立索引,其中根据所述索引,对于任意可能的查询请求,能够得到连续的数据记录作为查询结果,所述可能的查询请求包括的信息所指示的源IP地址和目的IP地址中的至少一个包括至少一个含有通配符的段,所述通配符表示在允许的取值范围内的任意值。
根据本发明的另一个方面,提供了一种数据查询方法,所述方法包括:
接收查询请求,所述查询请求包括指示源IP地址和目的IP地址的信息,所述源IP地址和所述目的IP地址中的至少一个包括至少一个含有通配符的段,所述通配符表示在允许的取值范围内的任意值;将所述源IP地址和所述目的IP地址进行线性化;根据线性化后的IP地址,在具有一维索引的数据库中进行查找,得到连续的数据记录作为查询结果,其中所述数据库中的数据记录按照如上所述的数据处理方法进行索引。
根据本发明的再一个方面,提供了一种用于在数据库中处理数据的装置,其中,对于所述数据库中数据记录的查询请求包括指示源IP地址和目的IP地址的信息,所述源IP地址包括N个段,所述目的IP地址包括M个段,所述M和N均为正整数,所述装置包括:编码模块,被配置为确定所述数据库的索引的编码方式,其中所述索引为一维索引且包括N+M段,所述编码方式包括规定所述索引的各段发生变化的先后顺序;索引模块,被配置为根据所述编码方式,对所述数据记录建立索引,其中根据所述索引,对于任意可能的查询请求,能够得到连续的数据记录作为查询结果,所述可能的查询请求包括的信息所指示源IP地址和目的IP地址中的至少一个包括至少一个含有通配符的段,所述通配符表示在允许的取值范围内的任意值。
根据本发明的又一个方面,提供了一种用于数据查询的装置,所述装置包括:接收模块,被配置为接收查询请求,所述查询请求包括指示源IP地址和目的IP地址的信息,所述源IP地址和所述目的IP地址中的至少一个包括至少一个含有通配符的段,所述通配符表示在允许的取值范围内的任意值;线性化模块,被配置为将所述源IP地址和所述目的IP地址进行线性化;查找模块,被配置为根据线性化后的IP地址,在具有一维索引的数据库中进行查找,得到连续的数据记录作为查询结果,其中所述数据库中的数据记录按照如上所述的数据处理方法进行索引。
本发明所提供的技术方案可以实现一个同时具有易扩展和易查询特点的数据库,为网络数据的存储、开发和利用带来了方便。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算***100的框图;
图2示出了本发明实施例中一种数据库中的数据处理方法的流程示意图;
图3示出了本发明实施例中一种矩阵的示例;
图4示出了本发明实施例中另一种矩阵的示例;
图5示出了本发明实施例中一种数据查询的方法的流程示意图;
图6示出了本发明实施例中一种用于在数据库中处理数据的装置的结构示意图;
图7示出了本发明实施例中一种用于数据查询的装置的结构示意图;
图8示出了本发明实施例中一种索引方式的示例。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算***100的框图。如图1所示,计算机***100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、***总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与***总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
所属技术领域的技术人员知道,本发明可以实现为***、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“***”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序占领可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
现在参看图2,图2示出了本发明实施例提供的一种数据库中的数据处理方法。该方法包括以下步骤:步骤210,确定数据库的索引的编码方式;步骤220,根据编码方式,对数据库中的数据记录建立索引。
本实施例中,对于该数据库中数据记录的查询请求会包括指示源IP地址和目的IP地址的信息,也即为二维的查询请求。其中指示源IP地址和目的IP地址的信息例如为特定的符号,该符号表示了一个源IP地址和目的IP地址的范围。为了描述方便,本实施例和下述各实施例中均以查询请求直接包括源IP地址和目的IP地址本身为例进行说明。其中,源IP地址包括N个段,目的IP地址包括M个段,M和N均为正整数。例如,对于IPv6的IP地址,源IP地址和目的IP地址都包括8个段,而对于IPv4的IP地址,源IP地址和目的IP地址都包括4个段。在本实施例和下述各实施例中,为了描述方便,以源IP地址和目的IP地址均为IPv4地址为例进行说明。本实施例中,可能的查询请求中的源IP地址和目的IP地址中的至少一个包括至少一个含有通配符的段,该通配符表示在允许的取值范围内的任意值。仍以IPv4为例,通配符*表示在0至255的任意值。
步骤210中,该索引为一维索引,包括N+M段,且编码方式包括规定索引的各段发生变化的先后顺序。例如,索引包括8个段A、B、C、D、a、b、c、d,则编码方式可以规定从最后一段到第一段依次发生变化,或者其它的变化顺序。本实施例中并不限制数据库仅具有一维索引,对于具有多维索引的数据库,本实施例提供的方法也适用,也即该索引为多维索引中的其中一维,并根据该一维索引进行查找。本实施例中的索引的数据结构可以是各种树结构,也可以是哈希表结构,具体实现方式可以是指针式或者数据的直接复制。
步骤220中,由于每个数据记录或者是包括源IP地址和目的IP地址,或者是与源IP地址和目的IP地址相对应,因此,根据索引中各个段和数据记录相应的源IP地址和目的IP地址的对应关系,对数据记录建立索引。例如,如图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段依次变化的顺序发生变化。按照这种编码方式建立索引,对应着源IP地址为0.0.0.0、目的IP地址为0.0.0.0的数据记录与对应着源IP为0.0.0.1、目的IP地址为0.0.0.0的数据记录为连续的数据记录;对应着源IP地址为0.0.0.255,目的地址为0.0.0.0的数据记录与对应着源IP地址为0.0.0.0,目的地址为0.0.0.1的数据记录为连续的数据记录。在本实施例和其他各实施例中为了描述方便,将编码方式描述为从后到前依次变化的M+N个段。例如,对于上述例子,编码方式可以写为ABCabcdD。
本实施例中,通过确定编码方式且按照该编码方式建立索引后,根据索引,任意可能的查询请求都能够得到连续的数据记录作为查询结果。由于该索引是一维的,所以相应的数据库易于扩展。并且由于对于任意可能的查询请求可以得到连续的数据记录作为查询结果,因此相应的数据库查询响应较快,不用得到多个数据块后再从多个数据块中分别找到相应的数据记录。
另一实施例中,步骤210确定的编码方式例如能够覆盖所有可能的查询请求。如果一个查询请求中的源IP地址和目标IP地址一共包括W个含有通配符的段,而按照编码方式1进行编码的索引最先变化的W个段分别对应着该W个含有通配符的段,则该编码方式1覆盖该查询请求。例如,查询请求中的源IP为A.B.*.*,目标IP为a.b.c.*,若编码方式为ABabcdCD,则按照该编码方式编码的索引最先变化的3个段为DCd,分别对应着源IP中含有通配符的两个段和目的IP中含有通配符的一个段,那么编码方式ABabcdCD能够覆盖该查询请求。如果源IP地址和目的IP地址均为最多可以包括4个含有通配符的段,那么abcdABCD、ABabcdCD、AabcdBCD、ABCabcdD和ABCDabcd这5种编码方式可以覆盖所有的查询请求。本实施例以及其他各实施例中,为了描述方便,若可能的查询请求的范围为查询请求的源IP地址和目的IP地址均可以包括最多4个含有通配符的段,则将该范围称为范围1。
另一实施例中,步骤210例如包括:将所有可能的查询请求进行分类;确定最大的互斥集所包含的所述可能的查询请求的类的数量;确定X种编码方式,X为所述最大的互斥集所包含的所有可能的查询请求的类的数量。
对于可能的查询请求进行分类时可以按照该查询请求的源IP地址和目的IP地址中含有通配符的段进行分类,也即对于同一类查询请求,一个查询请求中的源IP地址和目的IP地址一共包括Y个含有通配符的段,则其他查询请求中的源IP地址和目的IP地址的相应的Y个段含有通配符。例如,源IP地址中没有含有通配符的段且目的IP地址的最后一段含有通配符的所有查询请求属于同一类查询请求。例如查询请求1中的源IP地址为1.2.101.*,目的地址为205.*.*.*,查询请求2中的源IP地址为100.2.5.*,目的地址为1.*.*.*,则查询请求1和2属于同一类查询请求,可以用A.B.C.*a.*.*.*来表示这一类查询请求。
互斥集由至少两类查询请求构成且任意一种编码方式都不能同时覆盖同一互斥集中的任意两类查询请求。举例而言,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种编码方式就可以覆盖所有可能的查询请求。
通过对查询请求进行分类,并确定最大的互斥集包含的查询请求的类的数量可以很容易的确定需要多少种编码方式才能覆盖所有的查询请求,并得到这些编码方式,从而按照这些编码方式进行索引编码。这样对于所有的查询请求根据编码得到的索引都能够得到连续的数据记录作为查询结果,而不用从多个数据块中寻找数据记录,大幅度的提高了查询的速度。当然,本领域技术人员可以理解,还可以采用其它方式确定所需的编码方式。
另一实施例中可以通过穷举得到最大的互斥集。在这个实施例中,确定X种编码方式包括:从编码方式集合中选择X种编码方式,该编码方式集合包括所有可能的编码方式;若选择的X中编码方式能够覆盖所有可能的查询请求,就将这X种编码方式作为最后确定的编码方式。其中X为最大的互斥集包含的查询请求的类的数量。通过穷举可以得到所有可能的编码方式,而从这些编码方式中可以随机或者按照一定规律的选择出X种编码方式,并验证这X种编码法方式是否可以覆盖所有可能的查询请求。
为了使得到最大的互斥集更加简单易行,本发明实施例提供了一种根据矩阵得到最大的互斥集的方法。该方法需要建立一个(P+1)×(Q+1)的矩阵,其中P表示任意可能的查询请求中源IP地址能够含有通配符的段的最大数量,Q表示任意可能的查询请求中目标IP地址能够含有通配符的段的最大的数量,也可以将P与Q表示的对象互换。若所有的可能的请求一共分为S类,则在这个(P+1)×(Q+1)的矩阵中的S个元素中每一个元素表示一类查询请求。并且该矩阵中元素的排列为,与元素对应的查询请求中的源IP地址和目标IP地址满足以下规律之一:1)从左到右源IP地址中含有通配符的段逐渐减少,且从上到下目的IP地址中含有通配符的段逐渐增加;2)从左到右源IP地址中含有通配符的段逐渐增加,且从上到下目的IP地址中含有通配符的段逐渐增加;3)从左到右源IP地址中含有通配符的段逐渐减少,且从上到下目的IP地址中含有通配符的段逐渐减少;4)从左到右源IP地址中含有通配符的段逐渐增加,且从上到下目的IP地址中含有通配符的段逐渐减少;5)从左到右目的IP地址中含有通配符的段逐渐减少,且从上到下源IP地址中含有通配符的段逐渐增加;6)从左到右目的IP地址中含有通配符的段逐渐增加,且从上到下源IP地址中含有通配符的段逐渐增加;7)从左到右目的IP地址中含有通配符的段逐渐减少,且从上到下源IP地址中含有通配符的段逐渐减少;8)从左到右目的IP地址中含有通配符的段逐渐增加,且从上到下源IP地址中含有通配符的段逐渐减少。
为了描述方便,以Kij表示矩阵中的元素,其中i表示该元素位于第i行,j表示该元素位于第j列,i和j均从1开始。
举例而言,若所有可能的查询请求的范围为范围1,那么所有可能的请求一共有24类,则该矩阵可以为如图3所示的矩阵。其中最右上角的元素表示源IP地址和目的IP地址都不包括含有通配符的段的一类查询请求,这类查询请求虽然不属于可能的查询请求的范围,但也可以适用本实施例所提供的方法。除了最右上角的元素,其余24个元素分别与一类可能的查询请求对应,且元素的排列符合上述第1)种规律。
根据上述矩阵中元素的位置,可以确定最大的互斥集所包含的所有可能的查询请求的类的数量。下面举个详细的例子进行说明。根据矩阵,确定元素E和F之间的相对位置关系。两个元素之间的相对位置关系包括:一个元素位于另一个元素的正上方、正下方、正左方、正右方、左上方、左下方、右上方、右下方中的一个。对于该矩阵中的任意元素,若一元素与该元素的相对位置关系满足元素E和元素F的相对位置关系,则这两个元素属于同一互斥集。按照这样的规律,就可以找到最大的互斥集,并进而确定该最大互斥集中包含的可能的查询请求的类的数量。其中,元素E表示的查询请求中的源IP地址中含有通配符的段最多且目的IP地址中含有通配符的段最少;元素F表示的查询请求中的目的IP地址中含有通配符的段最多且源IP地址中含有通配符的段最少。对于图3所示的矩阵,元素E为最左上角的元素K11,元素F为最右下角的元素K55,元素E与F之间的相对位置关系为元素E位于元素F的左上方,或者元素F位于元素E的右下方。那么,例如对于元素K45若一个元素位于其左上方或者右下方,则该元素与元素K45表示的查询请求属于同一互斥集。可以看到,元素K45的右下方没有任何元素了,而元素K34位于其左上方,那么元素K45和K34表示的查询请求属于同一互斥集。并且,元素K23位于元素K34和K45的左上方,所以这三个元素表示的查询请求属于同一互斥集。由此可以找到最大的互斥集。对于图3所示的矩阵,从元素E到元素F的对角线上的5个元素所表示的查询请求构成最大的互斥集。该最大的互斥集中包含的可能的查询请求的类的数量为5。可以看到,通过将查询请求分类并构建矩阵,以及确定互斥集中查询请求所对应的元素在矩阵中的位置关系就可以非常简单、有效的找到最大的互斥集,而不必进行穷举,减少了计算量,并且该方法非常有利于计算机实施。
在一实施例中,若P与Q的取值相同,且从元素E到元素F的对角线上的元素表示的查询请求均属于可能的查询请求,则最大的互斥集为从元素E到元素F的对角线上所有的元素表示的查询请求构成最大的互斥集。
利用上述矩阵不但可以简单的找到最大的互斥集,确定其包含的所有可能的查询请求的类的数量,还可以确定X种编码方式。具体地,根据矩阵中元素构成的路径,可以确定X种编码方式。为了更好的理解如何使用矩阵中元素构成的路径找到编码方式,本实施例提供两种具体的示例方法,本领域技术人员还可以根据矩阵采用其他方式得到合适的编码方式。以下具体的示例中以最大的互斥集包括的可能的查询请求的类的数量为5进行描述。
第一种示例方法如下:在矩阵中沿着第一方向和第二方向从元素G开始到元素H和元素I中的任一个为止的每一条路径表示一种编码方式,找到所有的路径后得到相应的编码方式,从所有的编码方式中选出5种,这5种编码方式能够覆盖所有可能的查询请求。具体的,第一方向为查询请求中的源IP地址的含有通配符的段不变且目的IP地址的含有通配符的段减少一个;第二方向为查询请求中的源IP地址的含有通配符的段减少一个且目的IP地址的含有通配符的段不变。元素G表示的查询请求中的源IP地址和目的IP地址均包括最多的含有通配符的段;元素H表示的查询请求中的源IP地址仅包括一个含有通配符的段且目的IP地址不包括含有通配符的段;元素I表示的查询请求中的源IP地址不包括含有通配符的段且目的IP地址仅包括一个含有通配符的段。路径与编码方式的对应方法为:若到达的为元素H则相应的编码方式最先变化的段为D,若到达的元素为I则相应的编码方式最先变化的段为d,此外从元素G开始,路径上的下一个元素与上一个元素相比,依次找到不同的段,按照最后找到的段最先变化,最先找到的段最后变化的顺序依次发生变化。如图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。根据上述方式,对于图3所示的矩阵可以找到70条路径,从这70条路径中任意选出5条路径,判断这5条路径相应的编码方式是否能够覆盖所有的查询请求,若可以,则将这5种编码方式作为最终的编码方式。可以理解5种编码方式的挑选结果并非唯一。
第二种示例方法如下:在矩阵中沿着第一方向和第二方向从元素G开始到元素H和元素I中的任一个为止的每一条路径表示一种编码方式,找到5条路径,其中每条路径分别经过最大的互斥集中查询请求所对应的元素中的一个,且这5条路径的总和经过所有可能的查询请求所对应的元素,这5条路径对应的编码方式能够覆盖所有可能的查询请求。其中元素G、元素H、元素I和第一方向以及第二方向的含义以及路径与编码方式的对应与第一种具体的示例中的相同。仍以图3所示的矩阵为例,最大的互斥集中查询请求所对应的元素分别为元素K11、K22、K33、K44、K55。那么符合上述要求的5条路径可以分别为:1)经过K51、K41、K31、K21、K11,K12、K13、K14的第一路径;2)经过K51、K52、K42、K32、K22、K23、K24、K25的第二路径;3)经过K51、K52、K53、K43、K33、K34、K35、K25的第三路径;4)经过K51、K52、K53、K54、K44、K34、K24、K14的第四路径;5)经过K51、K52、K53、K54、K55、K45、K35、K25的第五路径。相应的,这5条路径对应的编码方式为abcdABCD、AabcBCDd、ABabCDcd、ABCabcdD、ABCDabcd。本领域技术人员可以理解满足经过最大互斥集中查询请求对应的元素且总和能够经过所有可能的查询请求对应的元素的5条路径并不唯一,并且有多种方法可以确定满足上述条件的5条路径。下面给出一种示例。1)找到最大的互斥集中剩下的最左上的元素,确定从当前矩阵最左下角的元素开始穿过该最左上的元素,到达当前矩阵最右上角元素的最***的路径,在行进中只能向上或者向右;2)去掉该路径经过的所有元素,剩下的元素构成当前矩阵;3)重复1)和2)直到剩下元素K55;4)将上述得到的路径补充完整,补充时,将路径的最左下的元素与K51相连,连接时方向为向左向下,并将路径最右上的元素与K15相连,连接时方向为向右向上,并最后去掉路径中的K15得到5条路径。K55为元素F,K51为元素G,K15表示的查询请求中的源IP地址和目的IP地址都不包括含有通配符的段。最后也可以不去掉K15。
本实施例中,为了更加灵活的提供数据处理的方法,还可以接收指令,该指令用于指示可能的查询请求的范围。该指令可以是用户发出的,也可以是应用发出的。指令中可以包括P和/或Q的数值。另一实施例中,指令可以包括不会存在的查询请求的类型等。例如,发出的指令指示A.*.*.*a.b.c.*、A.B.*.*a.b.*.*、A.B.*.*a.*.*.*、A.B.C.Da.*.*.*这四类查询请求不会存在。如图4所示,标为灰色的元素表示的查询请求不会存在。根据该矩阵K11、K23、K34和K55表示的查询请求构成一个最大的互斥集。根据第二种具体示例给出的方法,找到4条路径,分别为:经过K51、K41、K31、K21、K11、K12、K13、K14的第一条路径经;经过K51、K52、K42、K32、K22、K23、K24、K25的第二条路径;经过K51、K52、K53、K54、K44、K34、K35、K25的第三条路径;经过K51、K52、K53、K54、K55、K45、K35、K25的第四条路径。获得相应的编码方式为:abcdABCD、AabcBCDd、ABCabDcd和ABCDabcd。通过允许客户或者应用指示可能的查询请求的范围,可以一定程度上的减少所需的编码方式,相应的也就减少了索引,节省了存储空间,并且使得方案更加的灵活。
通过本实施例上述描述可以看出,本实施例提供的数据库中的数据处理方法通过使用一维索引的数据库使得对于大容量的数据库而言扩展容易,同时采用了特定的索引的编码方式使得查询结果为连续的数据记录,从而避免了得到多个数据块并从多个数据块中查找最终的查询结果带来的时间和计算成本,提高了查询速度。并且,本实施例提供的数据处理方法将确定最大互斥集转换为矩阵中元素的位置关系,还可以将确定X种编码方式转换为矩阵中元素构成的路径的寻找,使得编码方式的确定更加容易,同时也可以利用多种路径处理的技术来确定符合要求的路径,实施更加灵活。
如图5所示,本发明实施例提供了一种数据查询的方法。该方法包括:步骤510,接收查询请求;步骤520,将该查询请求所包括的信息指示的源IP地址和目的IP地址进行线性化;步骤530,根据线性化后的IP地址,在具有一维索引的数据库中进行查找,得到连续的数据记录作为查询结果。
本实施例中,待查询的数据库按照图2所示的实施例中的方法进行索引。具体实现可以参照图2所示的实施例。
本实施例中,步骤510接收的查询请求包括指示源IP地址和目的IP地址的信息,该源IP地址和目的IP地址中的至少一个包括至少一个含有通配符的段,更具体的实施方式和示例可以参照图2所示的实施例。
本实施例中,由于待查询的数据库的索引是一维的,所以需要对源IP地址和目的IP地址进行线性化,使其成为一维的。步骤520中,对源IP地址和目的IP地址进行线性化具体可以是按照数据库的索引的编码方式中的每一种对源IP地址和目的IP地址进行线性化。步骤520具体还可以实施为,确定能够覆盖查询请求的数据库的索引的编码方式,按照该编码方式对源IP地址和目的IP地址进行线性化。可以看到,如果对源IP地址和目的IP地址按照编码方式中的每一种进行线性化,就可以同时按照各种编码方式编码的索引进行查找,若编码方式能够覆盖该查询请求,则按照相应的索引查询会较快得到查询的结果,并将该结果最为最终的查询结果。如果是先确定能够覆盖请求的编码方式,并按照该编码方式对源IP地址和目的IP地址进行线性化,可以按照该编码方式相应的索引进行查询,并得到查询结果。举例而言,以图4所示的矩阵为例,数据库采用abcdABCD、AabcBCDd、ABCabDcd和ABCDabcd这四种编码方式编码索引。用户发出查询请求,该查询请求中的源IP地址为10.*.*.*,目的IP地址为20.102.*.*。如果采用线性化的第一种实施方式,则线性化的结果分别为:20.102.*.*.10.*.*.*、10.20.102.*.*.*.*.*、10.*.*.20.102.*.*.*、10.*.*.*.20.102.*.*。可以看到按照第2种编码方式线性化的IP地址可以按照第2种编码方式对应的索引查询得到连续的数据记录作为查询结果,因此能够较快的反馈查询结果。如果采用线性化的第二种实施方式,可以判断A.*.*.*a.b.*.*类的查询请求能够被第二种编码方式所覆盖,因此按照第二种编码方式直接对源IP地址和目的IP地址进行线性化,并且按照第二种编码方式对应的索引进行查询,得到连续的数据记录作为查询结果。可以看到,两种实现方式各自具有相应的优点,具体实施时可以根据实际需求应用不同的实现方式。采用本实施例提供的数据查询的方法可以提高查询的速度,增强用户满意度。
本领域技术人员可以理解,上述各方法实施例之间可以彼此结合,得到更多的技术方案。
如图6所示,本发明实施例提供了一种用于在数据库中处理数据的装置600。该装置600包括:编码模块610和索引模块620。编码模块610被配置为确定数据库的索引的编码方式,其中索引为一维索引且包括N+M段,编码方式包括规定所述索引的各段发生变化的先后顺序;索引模块620,被配置为根据确定的编码方式,对所述数据记录建立索引,其中根据该索引,对于任意可能的查询请求,能够得到连续的数据记录作为查询结果。其中可能的查询请求与图2所示实施例中可能的查询请求相同。本实施例中,具体的实施细节和解释等可以参照上述方法实施例,此处不再赘述。
在另一实施例中,编码模块610确定的编码方式能够覆盖所有所述可能的查询请求。对于覆盖的具体描述可以参照方法实施例,此处不再赘述。
在另一实施例中,编码模块610可以包括分类子模块611、互斥子模块612和确定子模块613。分类子模块611被配置为将所有所述可能的查询请求进行分类;互斥子模块612被配置为确定最大的互斥集所包含的所述可能的查询请求的类的数量;确定子模块613被配置为确定X种编码方式。其中查询请求的分类,互斥集的定义以及X的定义可以参照方法实施例,此处不再赘述。
在另一实施例中,编码模块610进一步可以包括矩阵子模块614。矩阵子模块614被配置为得到一个(P+1)×(Q+1)的矩阵。其中矩阵具体的构造方法以及其中元素的定义可以参照方法实施例,此处不再赘述。相应的,互斥子模块612具体被配置为,根据所述矩阵,确定最大的互斥集所包含的所有可能的查询请求的类的数量。进一步的,确定子模块613具体被配置为,根据所述矩阵,确定X种编码方式。
在另一实施例中,互斥子模块612具体被配置为,根据所述矩阵中元素的位置关系,确定最大的互斥集所包含的所述可能的查询请求的类的数量。
在另一实施例中,确定子模块613具体被配置为,根据所述矩阵中元素构成的路径,确定X种编码方式。
例如,互斥子模块612包括:位置次模块,被配置为确定元素E与元素F之间的相对位置关系,相对位置可以参照方法实施例;数量次模块,被配置为根据元素E与元素F的相对位置关系,确定最大的互斥集所包含的所有可能的查询请求的类的数量。具体的确定相对位置关系以及得到最大的互斥集的方法可以参照方法实施例,此处不再赘述。
例如,确定子模块613包括:第一路径次模块,被配置为根据所述矩阵中的路径,确定所有编码方式;选择次模块,被配置为从所有的编码方式中任选出X种编码方式,X种编码方式能够覆盖所有可能的查询。具体的如何根据路径确定编码方式,如何找到路径以及如何选择X种编码方式等都可以参照方法实施例,此处不再赘述。
例如,确定子模块613包括:第二路径次模块,被配置为在矩阵中找到X条路径;获得次模块,被配置为根据所述X条路径得到对应的X种编码方式。具体如何找到X条路径等可以参照方法实施例,此处不再赘述。
在另一实施例中,装置600进一步包括接收模块630,被配置为接收指令,所述指令用于指示可能的查询请求的范围。具体的指令如何指示可能的查询请求的范围可以参照方法实施例,此处不再赘述。
通过上述实施例提供的装置,可以比较容易的对大容量数据库进行扩展,并且查询相应也较快,避免了从多个数据块中寻找多个数据记录作为查询结果,而是直接得到连续的数据记录作为查询结果。进一步的,该装置通过将查询请求分类并矩阵化,将确定编码方式简化为对于矩阵中路径的处理,或者对于元素的确定,大幅度的简化了计算。
本领域技术人员可以理解,上述各装置实施例之间可以相互结合得到更多的技术方案。
如图7所示,本发明实施例还提供了一种用于数据查询的装置700。该装置700包括:接收模块710,被配置为接收查询请求;线性化模块720,被配置为将源IP地址和目的IP地址进行线性化;查找模块730,被配置为根据线性化后的IP地址,在具有一维索引的数据库中进行查找,得到连续的数据记录作为查询结果。本实施例中,该数据库按照上述方法实施例提供的数据处理方法建立索引。查询请求等可以参照方法实施例,此处不再赘述。
在另一实施例中,该装置700包括如图6所示的装置600以对数据库建立索引。
在另一实施例中,线性化模块720被配置为按照数据库的索引的编码方式中的每一种对所述源IP地址和所述目的IP地址进行线性化。
在另一实施例中,线性化模块720被配置为确定能够覆盖所述查询请求的所述数据库的索引的编码方式,并按照该编码方式对所述源IP地址和所述目的IP地址进行线性化。
图7所示的上述实施例可以彼此结合得到更多的技术方案。图7所示实施例提供的装置可以提高查询响应速度。
图7和图6所示实施例中的细节可以参照相应的方法实施例。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (19)
1.一种数据库中的数据处理方法,其中,对于所述数据库中数据记录的查询请求包括指示源IP地址和目的IP地址的信息,所述源IP地址包括N个段,所述目的IP地址包括M个段,所述M和N均为正整数,所述方法包括:
确定所述数据库的索引的编码方式,其中所述索引为一维索引且包括N+M段,所述编码方式包括规定所述索引的各段发生变化的先后顺序,根据所述索引,对于任意可能的查询请求,能够得到连续的数据记录作为查询结果,所述可能的查询请求包括的信息所指示的源IP地址和目的IP地址中的至少一个包括至少一个含有通配符的段,所述通配符表示在允许的取值范围内的任意值;
根据所述编码方式,对所述数据记录建立索引。
2.根据权利要求1所述的方法,其中,所述编码方式能够覆盖所有所述可能的查询请求,其中,若一个查询请求包括的信息所指示的源IP地址和目的IP地址一共包括A个含有通配符的段,且按照一个编码方式进行编码的索引最先变化的A个段分别对应着所述A个含有通配符的段,则该编码方式覆盖该查询请求。
3.根据权利要求2所述的方法,其中,所述确定所述数据库的索引的编码方式,包括:
将所有所述可能的查询请求进行分类,其中,对于同一类查询请求,其中一个查询请求包括的信息所指示的源IP地址和目的IP地址一共包括B个含有通配符的段,则该类中其他查询请求包括的信息所指示的源IP地址和目的IP地址的相应的B个段含有通配符;
确定最大的互斥集所包含的所述可能的查询请求的类的数量,其中,对于所述互斥集中任意两类查询请求,任一种编码方式都不能同时覆盖该两类查询请求;
确定X种编码方式,其中X为所述最大的互斥集所包含的所有可能的查询请求的类的数量。
4.根据权利要求3所述的方法,其中所述确定X种编码方式,包括:
从编码方式集合中选择X种编码方式,所述编码方式集合包括所有可能的编码方式;
若选择的X种编码方式能够覆盖所有可能的查询请求,则将该X种编码方式作为最后确定的编码方式。
5.根据权利要求3所述的方法,其中,
在所述将所有所述可能的查询请求进行分类之后,所述方法进一步包括:得到一个(P+1)×(Q+1)的矩阵,若所有所述可能的请求为S类,所述矩阵中的S个元素中每一个元素表示一类查询请求,其中,P和Q中的一个为任意所述可能的查询请求包括的信息所指示的源IP地址中能够含有通配符的段的最大数量,P和Q中的另一个为任意所述可能的查询请求包括的信息所指示的目的IP地址中能够含有通配符的段的最大数量;
所述确定最大的互斥集所包含的所述可能的查询请求的类的数量,包括:根据所述矩阵,确定最大的互斥集所包含的所述可能的查询请求的类的数量;
其中,所述矩阵中元素表示的查询请求包含的信息所指示的源IP地址和目的IP地址满足以下条件中的一个:
从左到右所述源IP地址中含有通配符的段逐渐减少,且从上到下所述目的IP地址中含有通配符的段逐渐增加;
从左到右所述源IP地址中含有通配符的段逐渐增加,且从上到下所述目的IP地址中含有通配符的段逐渐增加;
从左到右所述源IP地址中含有通配符的段逐渐减少,且从上到下所述目的IP地址中含有通配符的段逐渐减少;
从左到右所述源IP地址中含有通配符的段逐渐增加,且从上到下所述目的IP地址中含有通配符的段逐渐减少;
从左到右所述目的IP地址中含有通配符的段逐渐减少,且从上到下所述源IP地址中含有通配符的段逐渐增加;
从左到右所述目的IP地址中含有通配符的段逐渐增加,且从上到下所述源IP地址中含有通配符的段逐渐增加;
从左到右所述目的IP地址中含有通配符的段逐渐减少,且从上到下所述源IP地址中含有通配符的段逐渐减少;
从左到右所述目的IP地址中含有通配符的段逐渐增加,且从上到下所述源IP地址中含有通配符的段逐渐减少。
6.根据权利要求5所述的方法,其中,所述确定X种编码方式,包括:根据所述矩阵确定X种编码方式。
7.根据权利要求5所述的方法,其中,所述根据所述矩阵,确定最大的互斥集所包含的所述可能的查询请求的类的数量,包括:
根据所述矩阵中元素的位置关系,确定最大的互斥集所包含的所述可能的查询请求的类的数量。
8.根据权利要求6所述的方法,其中,所述根据所述矩阵确定X种编码方式,包括:
根据所述矩阵中元素构成的路径,确定所述X种编码方式。
9.根据权利要求1所述的方法,其中,所述方法进一步包括:接收指令,所述指令用于指示所述可能的查询请求的范围。
10.一种数据查询方法,所述方法包括:
接收查询请求,所述查询请求包括指示源IP地址和目的IP地址的信息,所述源IP地址和所述目的IP地址中的至少一个包括至少一个含有通配符的段,所述通配符表示在允许的取值范围内的任意值;
将所述源IP地址和所述目的IP地址进行线性化;
根据线性化后的IP地址,在具有一维索引的数据库中进行查找,得到连续的数据记录作为查询结果,其中所述数据库中的数据记录按照权利要求1-9中任一项所述的方法进行索引。
11.根据权利要求10所述的方法,所述将所述源IP地址和所述目的IP地址进行线性化,包括:按照所述数据库的索引的编码方式中的每一种对所述源IP地址和所述目的IP地址进行线性化。
12.根据权利要求10所述的方法,所述将所述源IP地址和所述目的IP地址进行线性化,包括:确定能够覆盖所述查询请求的所述数据库的索引的编码方式,按照该编码方式对所述源IP地址和所述目的IP地址进行线性化。
13.一种用于在数据库中处理数据的装置,其中,对于所述数据库中数据记录的查询请求包括指示源IP地址和目的IP地址的信息,所述源IP地址包括N个段,所述目的IP地址包括M个段,所述M和N均为正整数,所述装置包括:
编码模块,被配置为确定所述数据库的索引的编码方式,其中所述索引为一维索引且包括N+M段,所述编码方式包括规定所述索引的各段发生变化的先后顺序,根据所述索引,对于任意可能的查询请求,能够得到连续的数据记录作为查询结果,所述可能的查询请求包括的信息所指示源IP地址和目的IP地址中的至少一个包括至少一个含有通配符的段,所述通配符表示在允许的取值范围内的任意值;
索引模块,被配置为根据所述编码方式,对所述数据记录建立索引。
14.根据权利要求13所述的装置,其中,所述编码方式能够覆盖所有所述可能的查询请求,其中,若一个查询请求包括的信息所指示的源IP地址和目的IP地址一共包括A个含有通配符的段,且按照一个编码方式进行编码的索引最先变化的A个段分别对应着所述A个含有通配符的段,则该编码方式覆盖该查询请求。
15.根据权利要求14所述的装置,其中,所述编码模块包括:
分类子模块,被配置为将所有所述可能的查询请求进行分类,其中,对于同一类查询请求,其中一个查询请求包括的信息所指示的源IP地址和目的IP地址一共包括B个含有通配符的段,则该类中其他查询请求包括的信息所指示的源IP地址和目的IP地址的相应的B个段含有通配符;
互斥子模块,被配置为确定最大的互斥集所包含的所述可能的查询请求的类的数量,其中,对于所述互斥集中任意两类查询请求,任一种编码方式都不能同时覆盖该两类查询请求;
确定子模块,被配置为确定X种编码方式,其中X为所述最大的互斥集所包含的所有可能的查询请求的类的数量。
16.根据权利要求15所述的装置,其中,
所述编码模块进一步包括:矩阵子模块,被配置为得到一个(P+1)×(Q+1)的矩阵,若所有所述可能的请求为S类,所述矩阵中的S个元素中每一个元素表示一类查询请求,其中,P和Q中的一个为任意所述可能的查询请求包括的信息所指示的源IP地址中能够含有通配符的段的最大数量,P和Q中的另一个为任意所述可能的查询请求包括的信息所指示的目的IP地址中能够含有通配符的段的最大数量;
所述互斥子模块具体被配置为,根据所述矩阵,确定最大的互斥集所包含的所述可能的查询请求的类的数量;
所述确定子模块具体被配置为,根据所述矩阵,确定X种编码方式。
其中,所述矩阵中元素表示的查询请求包含的信息所指示的源IP地址和目的IP地址满足以下条件中的一个:
从左到右所述源IP地址中含有通配符的段逐渐减少,且从上到下所述目的IP地址中含有通配符的段逐渐增加;
从左到右所述源IP地址中含有通配符的段逐渐增加,且从上到下所述目的IP地址中含有通配符的段逐渐增加;
从左到右所述源IP地址中含有通配符的段逐渐减少,且从上到下所述目的IP地址中含有通配符的段逐渐减少;
从左到右所述源IP地址中含有通配符的段逐渐增加,且从上到下所述目的IP地址中含有通配符的段逐渐减少;
从左到右所述目的IP地址中含有通配符的段逐渐减少,且从上到下所述源IP地址中含有通配符的段逐渐增加;
从左到右所述目的IP地址中含有通配符的段逐渐增加,且从上到下所述源IP地址中含有通配符的段逐渐增加;
从左到右所述目的IP地址中含有通配符的段逐渐减少,且从上到下所述源IP地址中含有通配符的段逐渐减少;
从左到右所述目的IP地址中含有通配符的段逐渐增加,且从上到下所述源IP地址中含有通配符的段逐渐减少。
17.根据权利要求16所述的装置,其中,
所述互斥子模块具体被配置为,根据所述矩阵中元素的位置关系,确定最大的互斥集所包含的所述可能的查询请求的类的数量;
所述确定子模块具体被配置为,根据所述矩阵中元素构成的路径,确定X种编码方式。
18.根据权利要求13所述的装置,其中,所述装置进一步包括:
接收模块,被配置为接收指令,所述指令用于指示所述可能的查询请求的范围。
19.一种用于数据查询的装置,所述装置包括:
接收模块,被配置为接收查询请求,所述查询请求包括指示源IP地址和目的IP地址的信息,所述源IP地址和所述目的IP地址中的至少一个包括至少一个含有通配符的段,所述通配符表示在允许的取值范围内的任意值;
线性化模块,被配置为将所述源IP地址和所述目的IP地址进行线性化;
查找模块,被配置为根据线性化后的IP地址,在具有一维索引的数据库中进行查找,得到连续的数据记录作为查询结果,其中所述数据库中的数据记录按照权利要求1-9中任一项所述的方法进行索引。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210224193.XA CN103514224B (zh) | 2012-06-29 | 2012-06-29 | 数据库中的数据处理方法、数据查询方法和相应装置 |
JP2013084770A JP6008785B2 (ja) | 2012-06-29 | 2013-04-15 | データベースにおけるデータ処理方法、データ・クエリ方法ならびに対応するデバイスおよびデータ・クエリ・デバイス |
DE102013210914.8A DE102013210914B4 (de) | 2012-06-29 | 2013-06-12 | Datenverarbeitungsverfahren, Datenabfrageverfahren in Datenbank und entsprechende Einheit |
US13/928,537 US9471612B2 (en) | 2012-06-29 | 2013-06-27 | Data processing method, data query method in a database, and corresponding device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210224193.XA CN103514224B (zh) | 2012-06-29 | 2012-06-29 | 数据库中的数据处理方法、数据查询方法和相应装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103514224A true CN103514224A (zh) | 2014-01-15 |
CN103514224B CN103514224B (zh) | 2017-08-25 |
Family
ID=49754306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210224193.XA Expired - Fee Related CN103514224B (zh) | 2012-06-29 | 2012-06-29 | 数据库中的数据处理方法、数据查询方法和相应装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9471612B2 (zh) |
JP (1) | JP6008785B2 (zh) |
CN (1) | CN103514224B (zh) |
DE (1) | DE102013210914B4 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224534A (zh) * | 2014-05-29 | 2016-01-06 | 腾讯科技(深圳)有限公司 | 一种请求响应的方法及装置 |
CN107368527B (zh) * | 2017-06-09 | 2020-06-30 | 东南大学 | 基于数据流的多属性索引方法 |
CN112527951B (zh) * | 2021-02-09 | 2021-05-11 | 北京微步在线科技有限公司 | 整数数据的存储方法、装置及存储介质 |
US20240126761A1 (en) * | 2022-10-14 | 2024-04-18 | Jpmorgan Chase Bank, N.A. | System and methods for processing data queries in hybrid data mesh architectures |
CN116150212B (zh) * | 2023-04-24 | 2023-07-07 | 苏州映赛智能科技有限公司 | 数据处理方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441579A (zh) * | 2003-03-28 | 2003-09-10 | 清华大学 | 支持多nexthop的TCAM高速查找方法及其*** |
US6859455B1 (en) * | 1999-12-29 | 2005-02-22 | Nasser Yazdani | Method and apparatus for building and using multi-dimensional index trees for multi-dimensional data objects |
CN101051958A (zh) * | 2007-05-11 | 2007-10-10 | 北京工业大学 | 网络流行为的行为分析参数的提取方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370142B1 (en) | 1995-07-12 | 2002-04-09 | Nortel Networks Limited | Method and apparatus for performing per-port IP multicast pruning |
EP1078323A4 (en) | 1997-04-22 | 2007-04-25 | Greg Hetherington | METHOD AND APPARATUS FOR PROCESSING UNSTRUCTURED DATA |
JP3449326B2 (ja) * | 1999-12-08 | 2003-09-22 | 日本電気株式会社 | データ検索システム及びパケット処理装置並びに制御方法 |
AUPQ475799A0 (en) * | 1999-12-20 | 2000-01-20 | Youramigo Pty Ltd | An internet indexing system and method |
US6546394B1 (en) * | 1999-12-28 | 2003-04-08 | Oracle International Corporation | Database system having logical row identifiers |
US6470297B1 (en) | 2000-06-21 | 2002-10-22 | The United States Of America As Represented By The Director Of The National Security Agency | Method of multi-dimensionally accentuating a deviation in information and identifying its cause |
JP2002190822A (ja) * | 2000-12-19 | 2002-07-05 | Hitachi Ltd | ネットワーク装置 |
JP4035600B2 (ja) | 2002-05-22 | 2008-01-23 | 国立大学法人 東京大学 | イマチニブに対する感受性の判定方法 |
US7966301B2 (en) * | 2003-05-09 | 2011-06-21 | Planeteye Company Ulc | System and method for employing a grid index for location and precision encoding |
US8473532B1 (en) * | 2003-08-12 | 2013-06-25 | Louisiana Tech University Research Foundation | Method and apparatus for automatic organization for computer files |
US8059551B2 (en) | 2005-02-15 | 2011-11-15 | Raytheon Bbn Technologies Corp. | Method for source-spoofed IP packet traceback |
US7552275B1 (en) * | 2006-04-03 | 2009-06-23 | Extreme Networks, Inc. | Method of performing table lookup operation with table index that exceeds CAM key size |
JP4933222B2 (ja) | 2006-11-15 | 2012-05-16 | 株式会社日立製作所 | インデックス処理方法及び計算機システム |
US8086641B1 (en) | 2006-11-27 | 2011-12-27 | Netlogic Microsystems, Inc. | Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same |
US7831626B1 (en) | 2006-11-27 | 2010-11-09 | Netlogic Microsystems, Inc. | Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node |
US7747563B2 (en) | 2006-12-11 | 2010-06-29 | Breakaway Technologies, Inc. | System and method of data movement between a data source and a destination |
US8055645B1 (en) | 2006-12-15 | 2011-11-08 | Packeteer, Inc. | Hierarchical index for enhanced storage of file changes |
US8027990B1 (en) | 2008-07-09 | 2011-09-27 | Google Inc. | Dynamic query suggestion |
US7903566B2 (en) | 2008-08-20 | 2011-03-08 | The Boeing Company | Methods and systems for anomaly detection using internet protocol (IP) traffic conversation data |
US8625604B2 (en) | 2009-12-01 | 2014-01-07 | Polytechnic Institute Of New York University | Hash-based prefix-compressed trie for IP route lookup |
WO2012016327A1 (en) | 2010-08-06 | 2012-02-09 | Neuralitic Systems | A method and system for generating metrics representative of ip data traffic from ip data records |
US8396858B2 (en) * | 2011-08-11 | 2013-03-12 | International Business Machines Corporation | Adding entries to an index based on use of the index |
-
2012
- 2012-06-29 CN CN201210224193.XA patent/CN103514224B/zh not_active Expired - Fee Related
-
2013
- 2013-04-15 JP JP2013084770A patent/JP6008785B2/ja not_active Expired - Fee Related
- 2013-06-12 DE DE102013210914.8A patent/DE102013210914B4/de active Active
- 2013-06-27 US US13/928,537 patent/US9471612B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6859455B1 (en) * | 1999-12-29 | 2005-02-22 | Nasser Yazdani | Method and apparatus for building and using multi-dimensional index trees for multi-dimensional data objects |
CN1441579A (zh) * | 2003-03-28 | 2003-09-10 | 清华大学 | 支持多nexthop的TCAM高速查找方法及其*** |
CN101051958A (zh) * | 2007-05-11 | 2007-10-10 | 北京工业大学 | 网络流行为的行为分析参数的提取方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102013210914B4 (de) | 2018-06-21 |
CN103514224B (zh) | 2017-08-25 |
US9471612B2 (en) | 2016-10-18 |
DE102013210914A1 (de) | 2014-01-02 |
JP6008785B2 (ja) | 2016-10-19 |
JP2014010828A (ja) | 2014-01-20 |
US20140012858A1 (en) | 2014-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6032467B2 (ja) | 時空間データ管理システム、時空間データ管理方法、及びそのプログラム | |
US10284623B2 (en) | Optimized browser rendering service | |
US20150161207A1 (en) | Assisting query and querying | |
US8782219B2 (en) | Automated discovery of template patterns based on received server requests | |
WO2015154438A1 (zh) | 定位方法及装置 | |
CN103514224A (zh) | 数据库中的数据处理方法、数据查询方法和相应装置 | |
KR20150076225A (ko) | 위치 정보를 가진 데이터 프로파일링 | |
US9002844B2 (en) | Generating method, generating system, and recording medium | |
CN105493085B (zh) | 创建数据库表的样本的方法、***和计算机可读存储介质 | |
CN103514229A (zh) | 用于在分布式数据库***中处理数据库数据的方法和装置 | |
CN103106069A (zh) | 识别捆绑软件产品组件的方法和*** | |
CN103136260A (zh) | 评估过滤因子用于数据库中访问路径优化的方法和装置 | |
CN103885876B (zh) | 测试方法及设备 | |
US11429581B2 (en) | Spatial-temporal query for cognitive IoT contexts | |
CN107659978B (zh) | 用于识别无线接入点的方法与设备 | |
JP5867145B2 (ja) | ファイル管理装置、ファイル管理システム、ファイル管理方法およびファイル管理プログラム | |
CN103309980B (zh) | 演出数据处理方法、装置及*** | |
US20130262512A1 (en) | Data management apparatus and data management method | |
CN114218210A (zh) | 一种数据处理方法、装置和电子设备 | |
JP5776403B2 (ja) | 領域検索方法、領域検索プログラムおよび情報処理装置 | |
CN109189773B (zh) | 一种数据修复方法及装置 | |
de Oliveira | Efficient processing of multiway spatial join queries in distributed systems | |
KR20170090128A (ko) | 하둡 환경에서 맵리듀스 기반 데이터 처리 성능 향상을 위한 인덱스 구축 및 활용방법 | |
CN111949682B (zh) | 补偿协议生成方法、装置、计算机设备和存储介质 | |
JP5258326B2 (ja) | データ処理方法、プログラムおよびデータ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170825 |
|
CF01 | Termination of patent right due to non-payment of annual fee |