《数据仓库中的空间查询.pdf》由会员分享,可在线阅读,更多相关《数据仓库中的空间查询.pdf(14页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102067116A43申请公布日20110518CN102067116ACN102067116A21申请号200880129914022申请日20080623G06F17/3020060171申请人上海惠普有限公司地址100022中国北京市朝阳区建国路112号惠普大厦申请人惠普发展公司,有限责任合伙企业72发明人刘锐Q陈M许74专利代理机构上海专利商标事务所有限公司31100代理人李玲袁逸54发明名称数据仓库中的空间查询57摘要一种作用于接收空间查询并返回该空间查询的空间结果的数据仓库,该数据仓库包括作用于接收和处理常规查询并响应于该常规查询返回查询结果的常规数据库。该数据。
2、仓库还包括实现在该常规数据库外部并作用于拦截空间查询并将空间查询翻译成供常规数据库处理的常规查询的接口层。常规数据库包括由该接口层访问以将空间查询翻译成供常规数据库处理的常规查询的至少一个空间索引。85PCT申请进入国家阶段日2010121386PCT申请的申请数据PCT/CN2008/0714062008062387PCT申请的公布数据WO2009/155741EN2009123051INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书6页附图5页CN102067126A1/2页21一种在数据仓库中提供空间查询的方法,包括在所述数据仓库处接收查询;确定所述查询是否为。
3、空间查询;以及一旦确定所述查询为空间查询,则A将所述空间查询翻译成常规查询;B将翻译出的常规查询提供给所述数据仓库的常规数据库;C从所述常规数据库接收响应于所述翻译出的常规查询的至少一个常规结果;以及D返回所述至少一个空间查询结果作为对在所述数据仓库处接收的所述查询的回答。2如权利要求1所述的方法,其特征在于,将所述空间查询翻译成常规查询包括将虚拟特征表VFT映射至常规表,其中所述VFT包括在所述空间查询中找到的至少一个空间数据类型,并且所述常规表包括与所述VFT中的所述至少一个空间数据类型对应的至少一个常规数据类型。3如权利要求2所述的方法,其特征在于,将所述空间查询翻译成常规查询进一步包括。
4、将所述至少一个空间数据类型映射到所述对应的至少一个常规数据类型。4如权利要求3所述的方法,其特征在于,将所述空间查询翻译成常规查询进一步包括将在所述空间查询中找到的至少一个空间查询函数实现为至少一个用户定义的查询函数。5如权利要求2所述的方法,其特征在于,进一步包括将在所述空间查询中找到的一元空间函数预先计算为所述常规表中的常规数据类型。6如权利要求5所述的方法,其特征在于,将所述空间查询翻译成常规查询进一步包括将所述一元空间函数映射到所述常规表中的常规数据类型。7如权利要求3所述的方法,其特征在于,将所述至少一个空间数据类型映射到所述对应的至少一个常规数据类型包括执行基于由所述常规数据库使用。
5、的索引技术的索引搜索以检索所述对应的至少一个常规数据类型。8如权利要求3所述的方法,其特征在于,将所述至少一个空间数据类型映射到所述对应的至少一个常规数据类型包括在所述常规表中执行空间索引搜索以检索所述对应的至少一个常规数据类型。9如权利要求8所述的方法,其特征在于,所述常规数据库是并行数据库,且所述方法进一步包括对所述常规表中的数据和空间索引进行范围散列划分以便存储在所述并行数据库中。10如权利要求8所述的方法,其特征在于,将所述空间查询翻译成常规查询进一步包括将所述空间查询与所述空间索引搜索合并成查询重写以生成所述常规查询。11一种作用于接收空间查询并返回针对所述空间查询的空间结果的数据仓。
6、库,所述权利要求书CN102067116ACN102067126A2/2页3数据仓库包括作用于接收和处理常规查询并返回响应于所述常规查询的查询结果的常规数据库;以及实现在所述常规数据库外部并作用于拦截所述空间查询并将所述空间查询翻译成供由所述常规数据库处理的所述常规查询的接口层;其中所述常规数据库包括由所述接口层访问以将所述空间查询翻译成供由所述常规数据库处理的所述常规查询的至少一个空间索引。12如权利要求11所述的数据仓库,其特征在于,所述接口层进一步作用于从所述常规数据库接收所述查询结果并返回所述查询结果作为对所述空间查询的回答,其中所述查询结果是以常规数据类型来给出的。13如权利要求11。
7、所述的数据仓库,其特征在于,所述接口层包括多个虚拟特征表VFT,每个虚拟特征表包括一个或更多个几何类型供用来对照所述空间查询进行比较以确定所述VFT中的哪一个或更多个被用来基于所述空间查询中找到的一个或更多个几何类型来将所述空间查询翻译成所述常规查询。14如权利要求11所述的数据仓库,其特征在于,所述常规数据库是并行数据库,所述并行数据库提供常规数据的划分以提供所述常规结果和所述空间索引的索引数据,以使所述常规数据的每个部分及其相应的索引数据被划分至所述并行数据库中的相同节点。15一种计算机可读介质,其上编码有计算机编程代码,所述计算机编程代码由计算机处理器执行以在所述数据仓库处接收查询;确定。
8、所述查询是否为空间查询;以及一旦确定所述查询为空间查询,则A将所述空间查询翻译成常规查询;B将翻译出的常规查询提供给所述数据仓库的常规数据库;C从所述常规数据库接收响应于所述翻译出的常规查询的至少一个常规结果;以及D返回所述至少一个空间结果作为对在所述数据仓库处接收的所述查询的回答。权利要求书CN102067116ACN102067126A1/6页4数据仓库中的空间查询背景技术0001例如公司、财团和组织的许多企业正在创建和部署数据仓库以服务于其数据收集和检索需求。如本文所提及的,数据仓库是包括例如计算机、服务器、诸如数据库管理系统DBMS的计算机化数据库等的一个或多个电气或电子数据存储设备的。
9、数据库、数据存储或数据储存库、及类似物。如业内已知的,数据仓库支持具有极大可靠性、可伸缩性、功能性和可用性的软件应用。进而,其中的应用不断地向数据仓库和其中的数据库要求新的能力。例如,用于自动化地图制图、设施管理、地理信息系统GIS、无线位置服务、和位置知悉式电子商务的紧急应用全都希望数据库能处置地理特征例如地理位置和/或区域的生成、存储和分析。典型地,这些地理特征作为空间或几何数据存储在数据库中。因此,希望这些数据库能处置基于位置或几何的空间数据查询以及其它空间功能,这引发对高效多维索引和划分技术的进一步要求。下文中,术语“几何”和“空间”可互换地使用。0002存在用于处置空间数据类型和函数。
10、以及访问数据库系统中的空间数据的解决方案。然而,这些解决方案是通过增加新的系统模块或扩展而实现在数据库系统内的。如果有越来越多的因域而异的模块或扩展被插入到数据库系统中以增加因领域而不同的功能性,则它们会给数据库系统中的其它组件带来错综复杂的问题。例如,将这些新模块内部化到数据库系统中可能会与已存在于其中的典型组件例如查询优化器、统计生成器、以及执行器产生干扰。此外,常规的因域而异的模块是针对特定数据库系统来设计和实现的,并且它们一般不受到并行数据库的支持。因此,要在不同数据库系统、尤其是并行数据库系统之间移植这些模块以重利用它们而非为每个不同数据库系统创建新的模块可能是不可行的。0003因此。
11、,希望用空间扩展来增强数据仓库以处置和支持空间数据类型和函数以向有效数据仓库提供例如可伸缩性和可互操作性的附加能力。0004附图简述0005在下面的附图中通过示例而非限定来说明诸实施例,其中相同标号指示相同要素,在附图中0006图1A示出根据一个实施例的可供空间扩展层工作的环境的逻辑架构。0007图1B示出图1A所示环境的组件视图。0008图2示出使用在非空间或常规数据库外部的空间扩展层来处理空间查询的过程。0009图3示出将空间查询翻译成常规查询以由常规数据库处理的过程。0010图4示出可作用于被用作空间扩展层或常规数据库的计算平台的计算机化系统的框图。具体实施方式0011为了简明和阐述性目。
12、的,现在主要参照各实施例的示例来描述各实施例的原理。在以下描述中,阐述了许多具体细节以提供对各种实施例的透彻理解。然而,将对本领域普通技术人员明显的是,这些实施例的实现不局限于这些具体细节。在其他情形中,众所周知说明书CN102067116ACN102067126A2/6页5的方法和结构并未予以详细描述以免不必要地混淆这些实施例。0012本文中描述由空间扩展层SEL来处置例如企业数据仓库EDW之类的数据仓库中的几何数据类型、空间索引、空间关系、空间运算符和空间查询的系统和方法,其中EDW可包括关系和/或并行数据库系统例如DBMS。根据各种实施例,SEL是能作用于帮助EDW理解其中的空间数据类型。
13、并通过查询重写和用户定义的函数来执行各种空间操作的接口层。在一个实施例中,SEL以二阶段索引/过滤来增强空间查询效率,并为用在EDW外提供的函数进行复杂空间处理留出许多空间。除了其平衡性能和稳健性的能力外,SEL还允许实现对并行数据库的空间索引和空间查询处理,藉此空间索引和空间数据被划分到具有局部性的数据节点上以获得更好的性能。0013在一个实施例中,SEL提供一种通过向例如EDW之类的数据库系统添加新模块而不对该系统造成侵入性影响的方式来添加用于处置空间数据类型和函数的新功能性的途径。另外,由这些新模块提供的因域而异的功能性是容易移植的,因此这些模块能在不同数据库系统间重用。在另一实施例中,。
14、SEL能作用于在其虚拟层上处置新数据类型而不要求底下的数据库引擎支持用户定义的类型。此外,SEL也能作用于不修改数据库核心地来添加多维索引。0014在SEL的数据库系统顶上以如下方式提供因域而异的数据管理功能性操作以不会对数据库核心引擎造成侵入性影响的方式被下推给该数据库系统。因此,进一步扩展的灵活性得以留存。在一个实施例中,SEL将空间查询重写成常规查询,这些常规查询随后由底下的数据库执行。这样的操作下推避免了在数据库系统与SEL之间的大量数据转移,因为空间函数作为用户定义的函数UDF从SEL被下推至数据库系统,而UDF随后在数据库系统内执行或运行。因此,对结果所得的UDF的输入数据不会迁移。
15、到数据库系统以外,且只有查询结果被上推至SEL以待回译。没有UDF的下推,则不得不将大量输入数据从数据库系统转移出来以使空间函数能执行。在一个实施例中,查询被重写成分两阶段来执行,即过滤和完善。在过滤阶段,SEL精简拟馈送至完善阶段的更为计算密集的处理的查询数据。0015SEL还利用数据库系统的“操作环境”来应对查询规划、优化、索引锁定、无用单元收集、缓冲等,而不是在SEL中复制它们。尽管SEL空间支持数据库引擎内的操作这使得数据转移最小化,然而SEL也能作用于提供外部函数,因为它在数据库系统外部。结果,SEL提供完成更复杂的计算的机会。0016图1A示出根据一个实施例的可供SEL工作的环境1。
16、00的逻辑架构。如图所示,SEL120实现在例如数据库130之类的数据仓库外部且顶上以提供客户机110与底下的数据库130之间的接口。在另一实施例中,SEL120可实现为客户机110与底下的数据库130之间的中间件。SEL120包括一个或更多个虚拟特征表VFT122,这些VFT122能作用于透明地支持数据库130中例如空间数据类型之类的新的用户定义数据类型而无需依赖数据库130本身来支持此类用户定义的数据类型。每个VFT可由例如数据库用户之类的一个或更多个用户按其设计来创建。VFT是“虚拟的”,因为它不是物理地存储在数据库130内。因此,SEL120是灵活且可伸缩的,并且可将其应用于广大范围的。
17、数据库系统。0017在操作中,SEL120拦截客户机的空间查询和/或操作并将其对照虚拟特征表122来进行映射。0018如果拦截到的查询/操作是例如空间结构化查询语言SQL之类的涉及几何数据说明书CN102067116ACN102067126A3/6页6类型和函数的空间查询/操作,则SEL120使用虚拟特征表122将其翻译成引用底下的数据库130中的常规表132上的常规数据类型/运算符的常规或非空间SQL语句。0019来自常规表的查询/运算符结果然后被重新组织并回译成几何数据类型,以作为对原始空间查询的回答或响应。从客户机110的角度看,查询和操作就好像是虚拟特征表物理地存储在数据库130中那样。
18、被应用的。非空间查询和操作被放行直达常规表而没有来自SEL120的任何介入。0020图1B示出环境100的组件视图。在一个实施例中,SEL120为客户机110提供应用编程接口API222以供向数据库130提交空间查询并从数据库130接收回答。例如图所示,API222可以是使JDBC客户机110与数据库130接口的JAVATM数据库连通性JDBCAPI。SEL120还包括充当SEL120中的核心模块以将空间查询翻译成常规查询的数据库语言重写器或翻译器224。例如,数据库语言重写器224可以是能作用于将空间查询翻译成数据库130理解的常规SQL语句的SQL重写器。0021为了执行前述重写或翻译,重。
19、写器224执行三种类型的映射或翻译1VFT至常规表,2空间或几何数据类型至常规数据类型,以及3空间/几何查询函数至用户定义的查询函数UDF。重写器224还将空间查询分成两个阶段过滤和完善。API222和数据库语言或SQL重写器224两者均可实现为SEL120中的软件模块。VFT122提供几何特征的逻辑视图。每个VFT包括例如由开放式地球空间联盟OGC规定的之类的标准几何数据类型下文中称为“几何类型”至通常存在于例如数据130之类的常规数据库中的常规数据类型的映射。至此,每个VFT122与底下的数据库130中的特征表和几何表、即图1A中所示的常规表132对应。每个几何特征在特征表中表示为整数ID。
20、,且其几何性作为符合公知二进制或文本WKB或WKT格式的二进制大对象BLOB存储在几何表中,用于将几何对象表示成常规数据库中的常规数据并以上述整数ID作为其关键字或指针。0022因此,对VFT的包括几何或空间数据类型和函数的空间查询例如空间SQL语句对照相应的常规表例如特征和几何表被重写成一个或更多个常规查询例如常规SQL语句。在一个实施例中,为了增强性能,可将例如LENGTH和AREA之类的一元几何/空间函数即单变量几何函数预先计算为具体化的属性值以供经由VFT直接访问而不是实现为UDF。这些函数被称为零等待时间函数。0023如图1B所示,数据库130包括一个或更多个用户定义函数UDF模块2。
21、32以及一个或更多个空间索引234。UDF模块232提供与空间查询中从SEL120被下推给数据库130的空间函数对应的UDF。这些UDF在数据库130中预定义以对应于希望由SEL支持的空间函数。空间索引234使用来自特征表的整数ID来索引几何表。0024图2示出根据一个实施例的使用非空间数据库外部的SEL以使此类数据库能有效地处理空间查询的过程200。仅为示例而不作为其限定,参照图1AB中所示的环境100对图2进行描述。0025在210,在数据仓库处接收查询,该数据仓库可由空间数据解决方案的提供者维护。该查询可包括例如一个或更多个空间SQL语句。该查询在例如JDBC客户机110之类的客户机处发。
22、起,该客户机经由与数据仓库的直接连接或例如专用或公共数据网例如内联网或互联网之类的数据网络获得对该数据仓库的访问途径。数据仓库包括常规数据库130,其上具有提供客户机110与数据库130之间的接口的SEL120。说明书CN102067116ACN102067126A4/6页70026在212,该查询被SEL120拦截,SEL120将其对照SEL120中的一个或更多个VFT进行比较以确定该查询是常规查询即非空间查询还是空间查询。SEL120通过确定该查询是否包括如在这一个或更多个VFT中列出的空间数据类型来实现该确定。如果SEL120确定所拦截到的查询是非空间查询,则其放行该查询直达数据库130。
23、以进行处理,如下面在216进一步说明的那样。0027然而在214,如果SEL120确定拦截到的查询是空间查询,则其前继而将该空间查询重写或翻译成具有常规数据库查询语言例如常规SQL语句的、引用数据库130中的常规表例如特征表和几何表上的常规数据类型和函数的常规查询。如本文所提到的,常规数据类型是通常在例如常规DBMS之类的常规即非空间数据库系统中采用的非空间数据类型。此重写过程将在后面进一步描述。0028在216,SEL120将经翻译的常规SQL语句提供、发送或转发给数据库130进行普通数据库处理以检索存储在几何表中的几何数据作为查询结果。也就是说,所生成的常规查询就像通常在例如数据库130之。
24、类的常规非空间数据库中执行地那样被处理,以处理和生成来自数据库130中的常规表即特征表及其相应的几何表的查询结果。0029在218,SEL120接收查询结果,它们是以常规数据类型给出的空间查询结果,以便将查询结果送回给客户机110作为对原始空间查询的回答。0030在220,SEL120将查询结果作为对原始查询的回答返回给JDBC客户机110。0031SEL120使用例如SQL重写器234之类的重写器模块来重写空间查询。如之前提到的那样,SQL重写器234通过将VFT映射至常规表、将空间数据类型映射至常规数据类型、以及将空间函数映射至UDF来重写空间查询。对空间查询中的空间函数求值在计算的意义上。
25、可能是成本高昂的。因此,为了提高效率,以两个阶段来处理空间查询过滤和完善。在第一过滤阶段,通过相对不昂贵的计算对在空间查询中标识出的空间函数候选集合进行剪裁。在第二完善阶段,对裁减后的空间函数子集执行相对较昂贵的计算。0032SEL120用空间索引来实现前面提到的过滤完善处理,空间索引是对几何特征的索引表,并用常规SQL语句来操纵这些几何特征。这些索引表形成数据库130中的特征表。在一个实施例中,为面向空间或几何的查询支持多种空间索引方法。例如,R树索引用来对大小非零的几何特征例如多边形、线、圆进行索引,而四叉树索引用来对大小为零或面向点的几何特征进行索引。0033在SEL120中,即在数据库。
26、130外部选择和实现空间索引方法。然后将结果所得的索引表作为空间索引234存储在数据库130中并由从SEL120接收的常规SQL语句来操纵。因此,不需要在SEL120中实现专门的锁定和无用单元收集来维护这些空间索引。SEL120也留存了利用由数据库130提供和实现的任何数据库索引方案或方法例如B树的能力。例如,通过空间索引,面向点的几何特征的每个二维值对例如关联于存储在特征表中的唯一性一维值例如整数ID。通过使用例如B树索引之类的数据库索引方案将关联的几何特征存储在相应的几何表中,此特征表得到进一步完善。因此,由SQL重写器224将空间索引合并到查询重写中。也就是说,SQL重写器224将空间查。
27、询和与之关联的索引查询即对照相应空间索引的查询重写成对底下的数据库130的单个查询,例如常规SQL语句。0034现在参照图3描述如由SEL120在214执行的将空间查询重写成常规查询的重写说明书CN102067116ACN102067126A5/6页8过程。同样,仅为了说明而不作为其限定,参照图1AB所示的环境100对图3进行描述。0035在310,将SEL120拦截到的空间查询对照SEL120中的可用VFT进行比较以标识出提供与在此空间查询中找到的几何/空间特征的几何数据类型有关的信息的一个或更多个VFT供翻译。每个几何特征关联于VFT中的几何标识ID例如整数ID和几何数据类型。0036在3。
28、12,每个标识出的VFT被映射至数据库130中维护与几何特征关联的整数ID的相应特征表。该整数ID也充当用于标识提供与该整数ID对应并因此描述空间查询中的关联几何特征及其空间数据类型的常规数据和数据类型的关联几何表的关键字。因此,每个标识出的VFT被映射至数据库130中相应的常规表,即特征表和几何表,以将空间数据类型映射至常规数据类型。对于每个特征表,有一空间索引。空间索引的搜索是作为由SQL重写器224生成的常规查询的一部分来实现的。该空间索引搜索提供过滤和完善的二阶段过程中的初始过滤阶段以如前所述地处理空间索引。另外,可利用如由数据库130提供的现有非空间索引例如B树索引来索引特征表中的整。
29、数ID。0037在314,对照空间索引的空间索引搜索或查询与该空间查询合并成查询重写以在底下的数据库130中生成单个常规查询,例如常规SQL语句。此时,不仅如前所述那样VFT被映射至常规表且空间数据类型被映射至常规数据类型,而且空间函数或操作被下推并实现为数据库130中的用户定义函数UDF。这是空间查询的二阶段处理的完善阶段。0038在一个实施例中,数据库130是例如并行DBMS之类的并行数据库,该并行数据库包括用于并行处理例如数据库查询之类的数据库功能的多个处理器。因此,每个特征表即索引表中的空间索引可被范围散列划分以通过并行处理得到增强的性能。因此,SEL120引入局部性办法以如下文所解释。
30、地来对非空间并行数据库环境中的数据和索引进行协同划分。0039在空间索引树例如在每个特征表中维护的空间索引树中,每个树层对应于一划分层。在所选层处的实为几何或整数ID的每个节点ID被用作其子树的划分关键字。划分关键字被存储在特征表和几何数据表两者中。因此,来自相同子树的数据和索引具有相同的划分关键字并被散列成自动被放置在相同存储节点中。此外,在预定划分层下,预定数值范围内的节点ID共同位于相同存储节点中。数据和索引的协同划分能高效地减少数据转移并显著地提高查询性能。0040图4示出计算机系统400的框图,该计算机系统400能作用于用作实现以上描述的SEL120和常规数据库130的计算平台。计算。
31、机化系统400包括例如处理器402之类的一个或更多个处理器,以提供用于执行软件的执行平台。在常规数据库130是并行数据库的情形中,多个处理器被包括在其中以提供多个处理节点。因此,计算机化系统400包括数个计算机处理器中的任何计算机处理器的一个或更多个单核或多核处理器,例如来自INTEL、AMD和CYRIX的处理器。如本文所称,计算机处理器可以是通用处理器,例如中央处理单元CPU或任何其它多用途处理器或微处理器。计算机处理器也可以是专用处理器,例如图形处理单元GPU、音频处理器、数字信号处理器、或专用于一个或更多个处理目的的其它处理器。来自处理器402的命令和数据在通信总线404上或通过与计算机。
32、化系统400中的其它组件的点对点链路来传达。0041计算机化系统400还包括软件在运行时间驻留的主存储器406以及辅助存储器说明书CN102067116ACN102067126A6/6页9408。辅助存储器408也可以是当计算机化系统400被用作常规数据库130的平台时用来存储常规数据库130中的常规表132包括UDF软件模块232和空间索引234的计算机可读介质CRM。辅助存储器408也可以是当另一计算机化系统400被用作SEL120的平台时用来存储用于实现SEL120的软件模块的CRM。主存储器406和辅助存储器408以及可任选的可移动存储单元414各自包括例如硬盘驱动器和/或代表软盘驱动。
33、器、磁带驱动器、光盘驱动器等的可移动存储驱动器412或存储软件副本的非易失性存储器。在一个示例中,辅助存储器408还包括ROM只读存储器、EPROM可擦可编程ROM、EEPROM电可擦可编程ROM或能给处理器或处理单元提供计算机可读指令的任何其它电子、光学、磁或其它存储或传输设备。0042计算机化系统400包括经由显示适配器422连接的显示器420、包括例如键盘、鼠标、指示笔等一个或更多个输入设备418的用户接口、及类似物。显示器420提供用于显示例如图形用户界面GUI以供用户输入空间查询并接收相应查询结果的显示组件。然而,输入设备418和显示器420是可任选的。提供网络接口430,以经由例如。
34、互联网之类的网络与其它计算机化系统通信,从而为用户提供对图像平铺的数据库的访问途径。0043在本文中已描述和示出了实施例及其一些变例。本文中使用的术语、描述和附图仅以示例方式参数且并非旨在限定。本领域内技术人员将认识到,在由所附权利要求及其等效物定义的主题内容的精神和范围内可以有许多变例,其中所有术语旨在具有其最广义的合理含义,除非另有指定。说明书CN102067116ACN102067126A1/5页10图1A说明书附图CN102067116ACN102067126A2/5页11图1B说明书附图CN102067116ACN102067126A3/5页12图2说明书附图CN102067116ACN102067126A4/5页13图3说明书附图CN102067116ACN102067126A5/5页14图4说明书附图CN102067116A。