CN106462591A - 使用存储器中的智能索引的分区过滤 - Google Patents
使用存储器中的智能索引的分区过滤 Download PDFInfo
- Publication number
- CN106462591A CN106462591A CN201580016793.9A CN201580016793A CN106462591A CN 106462591 A CN106462591 A CN 106462591A CN 201580016793 A CN201580016793 A CN 201580016793A CN 106462591 A CN106462591 A CN 106462591A
- Authority
- CN
- China
- Prior art keywords
- subregion
- entity
- memorizer
- attribute
- inquiry
- 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
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/23—Updating
-
- 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
-
- 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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
示例装置和方法检测对布置在表格‑实体‑属性组织中的表格仓库中的分区的查询。分区是具有相同分区键值的实体的集群。如果查询寻求在分区中的特定实体上过滤,则分区可以被复制到存储器(例如,结构化共享缓存器、共享存储器),该存储器准备有促进过滤分区的一个或多个索引。示例装置和方法可以将分区从表格仓库复制到存储器中并且然后使用一个或多个索引过滤来自存储器的特定字段上的分区。过滤特定字段上的分区可以使用可用于存储器的所有索引而并行地进行,可能地大规模并行地。
Description
背景技术
结构化查询语言(SQL)数据库模型依赖于关系数据库中的表格式关系。代表“不仅”SQL的NoSQL是指用于存储和检索不使用SQL模型的数据的方案。NoSQL模型可以使用针对检索和添附而优化的表格存储装置中的实体中的键-值对。针对一个动作的优化可能使得其它动作具有欠佳的性能。键-值仓库允许数据以无模式方式存储,例如对象(例如,二进制大对象(BLOB))。表格存储系统可以建立在BLOB和NoSQL框架上。类似于所有数据结构和组织,表格存储系统可以针对一种类型的操作很好地工作,但是可能对于另一种类型的操作不会很好地工作。
表格存储系统可以使用NoSQL数据库存储大量数据。数据可以例如是非结构化数据。数据也可以例如是结构化但非关系数据。表格存储系统可以优化以用于存储结构化、非关系数据。表格存储系统可以存储表格。表格可以被视为实体的集群。实体粗略地对应于无模式数据库记录。表格可以存储具有不同属性集合的不同实体。一个属性可以是促进将项目分组到分区或集群中的分区键。表格可以具有多个“分区”,其中分区被限定为具有用于其分区键的相同值的实体。在分区内可以存在具有不同属性集合的不同实体。实体可以被视为属性集合。在面向对象的系统中,实体可以使用例如定制分类而映射到对象。将实体添加到表格可以涉及创建限定实体的属性(例如,名称-值对)的分类。属性可以被限定为名称-值对。表格可以不向实体强加模式要求,即便是实体可以具有分区键和行键的情况下。行键可以是用于分区中的实体的唯一标识符。
不同类型的查询可以从表格寻求不同类型的数据。例如,第一查询可以寻求检索分区中的所有实体,而第二查询可以寻求仅检索分区中的一些实体。一个查询可以寻求关于具有姓“Smith”的人的数据,并且然后在由之前查询所返回的实体集合上的随后查询可以寻求关于姓为Smith且其名在“John”之前的人的数据。另一查询可以得到关于具有某一分区键(例如,姓“Smith”)和某一行键(例如,名“John”)的所有人的数据。针对具有分区键的分区的表格-实体-属性组织可以优化某些操作,但是可以在支持其它操作时面临挑战。例如,过滤特定字段(例如,属性名称)而不是分区键或行键上的分区可能是挑战性的。
发明内容
提供该发明内容来以简化形式引入以下在具体实施方式中进一步描述的概念的选择。该发明内容不意图标识所要求保护的主题的关键特征或必要特征,也不意图用于限制所要求保护的主题的范围。
示例方法和装置针对使用表格-实体-属性组织而改进存储在表格仓库中的表格中的特定字段上的过滤。如本文中使用的术语“字段”是指属性,其中属性是名称-值对。如本文中使用的术语“过滤”是指检索在表格的分区中发现的实体的特定子集。常规地,为了在特定字段上过滤,表格仓库可能已经首先扫描整个分区并且然后在特定字段上过滤。扫描和过滤可能已经在查询每一次寻求与特定字段相关联的数据时发生。特定字段上的过滤的欠佳性程度可能随其中执行过滤的分区的大小而直接地变化。
示例方法和装置提供可以针对其准备一个或多个索引以支持特定字段上的过滤的存储器(例如,共享存储器、缓存器、结构化共享缓存器)。过滤将在存储器中而不是在表格仓库中执行。具有用于其分区键的公共值的实体的集群(例如,分区)可以从表格仓库读取到存储器中并且然后在存储器中使用(多个)索引过滤。代替于针对寻求在特定字段上过滤的每一个查询而扫描表格仓库中的整个分区,示例装置和方法可以将分区读取到已经针对其准备(多个)索引的存储器中。存储器可以布置成使得一个或多个字段可以被用作索引以支持查询。在一个示例中,存储器可以布置成使得与分区中的名称-值对相关联的任何属性名称可以被用作索引以支持查询(例如,语言集成查询、NoSQL查询)。存储器还可以布置成使得可以并行地执行查询。因而,代替于扫描表格仓库中的整个分区,对分区的第一查询可以使得分区被读取到存储器(例如,结构化共享缓存器)中。然后可以在存储于存储器中的数据上执行过滤。分区上的随后查询可以从存储器提供服务而不是返回到表格仓库中。在一个实施例中,一旦已经将分区读取到存储器中,就可以更新分区以便替代于或附加于更新表格仓库中的分区。
附图说明
附图图示了本文描述的各种示例装置、方法和其它实施例。将领会到,在图中所图示的元件边界(例如,框、框群或其它形状)表示边界的一个示例。在一些示例中,一个元件可以设计为多个元件,或者多个元件可以设计为一个元件。在一些示例中,被示为另一元件的内部组件的元件可以作为外部组件而实现,并且反之亦然。此外,元件可能没有按照比例绘制。
图1图示了用于使用存储器中的智能索引过滤特定字段上的分区的示例系统。
图2图示了用于使用存储器中的智能索引过滤特定字段上的分区的示例系统。
图3图示了用于使用存储器中的智能索引过滤特定字段上的分区的示例方法。
图4图示了用于使用存储器中的智能索引过滤特定字段上的分区的示例方法。
图5图示了用于使用存储器中的智能索引过滤特定字段上的分区的示例装置。
图6图示了用于使用存储器中的智能索引过滤特定字段上的分区的示例装置。
图7图示了支持过滤特定字段上的分区的存储器中的智能索引可以在其中操作的示例云操作环境。
图8是描绘了可以与支持过滤特定字段上的分区的存储器中的智能索引交互的示例性移动通信设备的系统图。
具体实施方式
示例装置和方法提供了用于在分区与表格-实体-属性组织相关联时过滤特定字段上的分区的不同方案。分区可以初始地存储在表格存储系统中。表格存储系统可以包括一个或多个数据仓库。分区可以移动到支持具有可用于过滤分区的一个或多个索引的存储器。存储器可以例如是共享存储器或者缓存器。存储器可以是位于表格存储系统外部的数据仓库。
表格存储系统可以使用表格-实体-属性组织存储大量结构化但是非关系数据。数据可以使用例如二进制大对象(BLOB)存储在表格中。表格可以是实体的集群。表格中的实体可以粗略地对应于数据库记录。实体中的属性可以粗略地对应于数据库记录中的字段,其中字段可以具有名称和值。表格可以经由例如具象状态传输(REST)应用编程接口(API)而从包括移动设备的许多位置可访问。查询可以使用REST接口呈现给表格存储系统。
一些用户可能想要通过特定字段过滤分区。建立在表格-实体-属性和BLOB框架上的常规表格存储系统可能受到该操作的挑战。例如,常规系统可以扫描表格存储系统中的整个分区并且然后在字段上过滤。这可以针对寻求在字段上过滤的分区上的每一个查询而完成。这在时间、处理器循环、输入/输出操作和其它机器性能参数方面可能是低效的。
示例装置和方法以与常规系统不同的方式操作。代替于没有分区特定索引的益处的表格仓库中的过滤,示例方法和装置可以准备分区特定以及甚至查询特定的索引并且将分区复制到其中使用那些索引对它过滤的存储器中。图1图示了可以产生查询的前端服务器110。查询可以设计成过滤特定字段上的分区。查询可以呈现给表格服务器120。前端服务器110可以位于高等待时间链接150(例如,网络链接)的一侧上,并且表格服务器120可以位于高等待时间链接150的另一侧上。表格服务器120可以能够访问表格仓库存储器140和共享存储器130二者。表格服务器120可以通过访问表格仓库存储器140或者通过访问共享存储器130来确定是否应当处理查询。表格服务器120可以获取满足查询的数据并且在高等待时间链接150之上返回数据。
示例装置和方法可以在确定查询寻求过滤特定字段上的分区时将分区从表格仓库存储器140选择性地复制到共享存储器130。示例装置和方法可以在确定查询没有寻求过滤特定字段上的分区时从表格仓库存储器140为查询提供服务。例如,为查询提供服务可以包括返回由查询而寻求的数据。共享存储器130可以具有有限资源,因此将一个分区复制到共享存储器130可能要求另一分区或者另一分区的部分的移除。在一个实施例中,分区可以根据最近最少使用的策略而从共享存储器移除。可以使用其它益处和更换策略。
图2图示了表格存储装置210。表格存储装置210可以存储包括表格212-表格218的多个表格。表格存储装置210可以是表格服务器220可访问的。表格服务器220可以是多线程的并且因而可以具有线程222-228。不同线程可以在不同表格上执行不同查询。表格服务器220可以决定以不同方式处置不同查询。不寻求在特定字段上过滤的查询可以从表格存储装置210来处置。寻求在特定字段上过滤的查询可以通过将来自表格存储装置210的集群复制到缓存器230而处置。缓存器230可以布置成使得多个索引可用于存储在缓存器230中的集群。常规地,分区可能不能够并行地搜索分区,因为仅一个或者甚至零个索引可以可用于分区。当多个索引可用于缓存器230中的分区时,寻求在特定字段上过滤的查询可能能够并行进行。由于表格服务器220是多线程的并且可以处理多个查询,所以缓存器230可以存储多个集群(例如,集群232-238)。不同集群可以响应于不同查询而经受不同过滤。因此,过滤器242-248的集群可以在集群232-238上操作。可以使为查询提供服务的机构对于用户透明,其通过应用编程接口(API)250的操作而做出查询。
根据存储器内的数据位上的操作的算法和符号表示而呈现接下来的详细描述的一些部分。这些算法描述和表示由本领域技术人员使用以将其工作要点传达给其他人。算法被视为产生结果的操作的序列。操作可以包括创建和操控可以采取电子值的形式的物理量。创建或操控以电子值的形式的物理量产生具体、有形、有用的真实世界结果。
有时候已经证明方便的是,主要是出于常见使用的原因,将这些信号称为位、值、元素、符号、字符、项、数字或以其它方式。然而,应当谨记的是,这些和类似术语要与适当物理量相关联并且仅仅是应用于这些量的方便标记。除非特别地以其它方式指明,否则领会到,贯穿描述,包括处理、计算和确定的术语是指操控和转变被表示为物理量的数据(例如,电子值)的计算机系统、逻辑、处理器或类似电子设备的动作和过程。
示例方法可以参照流程图而更好地领会。出于简单性,所图示的方法被示出和描述为一系列框。然而,方法不受块的次序所限制,因为在一些实施例中,块可以以与所示出和描述的不同次序而发生。此外,可能要求比所图示的所有块更少的块以实现示例方法。块可以组合或者分离到多个组件中。此外,附加或者可替换的方法可以采用附加的、未图示的块。
图3图示了用于使用存储器中的智能索引过滤特定属性或字段上的分区的示例方法300。方法300包括在310处检测从表格仓库中的表格中的分区寻求信息的查询。查询可以例如是NoSQL查询。在一个实施例中,查询可以寻求在分区中的特定属性上过滤。方法300与其交互的表格仓库可以根据表格-实体-属性组织或模型进行布置。在这种类型的组织中,分区是表格仓库中的表格中的实体的集群,其中实体集群的成员具有相同分区键值。在表格-实体-属性组织中,表格包括实体的集合,实体包括属性的集合,并且属性包括名称-值对。表格不会在实体上推行方案,并且因此表格可以存储具有不同属性集合的不同实体。附加地,分区可以具有带有不同属性集合的不同实体。实体可以具有分区键和行键。分区键可以用于标识相关实体集群,并且行键可以用作针对分区内的实体的唯一标识符。例如,分区键可以用于通过邮政编码、通过姓、通过信贷限额或者以其它方式对顾客进行分组。行键然后可以用于寻找邮政编码中的特定顾客、具有姓的特定顾客、与信贷限额相关联的特定顾客或者其它顾客。然而有时候,查询可能寻求在不是分区键或行键的属性(例如,字段)上过滤。在该情况下,分区可以从表格仓库复制到针对其已经准备智能索引的存储器(例如,共享存储器、结构化共享存储器、缓存器、结构化共享缓存器)。
方法300还包括在320处准备促进过滤分区的一个或多个索引。索引可以是智能索引,其可以例如是分区特定或者查询特定的。分区特定意味着智能索引被组织为促进搜索特定分区中的特定名称-值对(例如,字段)。查询特定意味着智能索引被组织为促进搜索与查询相关联的(多个)特定名称-值对。准备索引可以包括例如填充数据结构、实例化对象、填充对象、将值写入到存储器、或者存储可以针对其创建索引的信息的其它动作。在一个实施例中,方法300可以包括准备索引或者组织存储器使得分区中的两个或更多属性可以用作索引以支持查询。在另一个实施例中,方法300可以包括准备索引或者组织存储器使得分区中的任何属性可以用作索引以支持查询。
方法300还包括在330处将分区从表格仓库复制到存储器中。分区的复制可以例如在实体上以逐个实体的方式、使用页面转移、使用记录转移、通过读取然后写入对象、通过读取然后写入对象的部分或者以其它方式而执行。
方法300还包括在340处使用一个或多个索引过滤特定属性上的分区。过滤分区可以包括寻找具有用于名称-值对的期望值的分区的成员并且将那些成员或者那些成员的部分返回给生成查询的用户。当两个或更多索引可用时,在340处过滤分区可以使用可用于存储器的所选索引而并行地进行。当已经准备索引或者已经组织存储器使得任何属性可以是索引时,在340处过滤分区可以使用可用于存储器的所有索引而并行地进行。由于存储器可以是共享存储器,所以可以在存储于存储器中的分区上并行地进行多个查询。
图4图示了用于使用存储器中的智能索引过滤特定属性或字段上的分区的示例方法400。方法400包括与结合方法300描述的那些类似的若干动作。例如,方法400包括在410处检测查询、在442处准备存储器(例如,缓存器)(例如,产生索引),在448处复制分区,以及在450处过滤分区。然而,方法400包括附加的、不同动作。
例如,方法400包括在420处确定查询是否寻求在分区中的特定属性上过滤。当确定查询不寻求在分区中的特定属性上过滤时,方法400可以在430处继续以将查询提供给表格仓库使得可以从表格仓库为查询提供服务。当确定查询不寻求在分区中的特定属性上过滤时,方法400可以在440处继续以确定分区是否已经处于存储器中。如果分区已经处于存储器中,则方法400可以进行到450。但是如果分区尚未处于存储器中,则方法400可以进行到442。
方法400可以包括在将分区从表格仓库复制到存储器中之前、期间或之后序列化分区。在一个实施例中,序列化可以在444处执行。方法400还可以包括在将分区从表格仓库复制到存储器中之前、期间或之后压缩分区。在一个实施例中,压缩可以在446处执行。压缩和序列化可以在不同时间处以不同次序执行。
方法400还可以包括选择性地更新存储器中或者表格仓库中的分区。分区可以响应于例如实体添加、实体删除、属性改变或者其它原因而更新。方法400可以在460处就是否更新分区做出确定。如果460处的确定为否,则处理可以返回到410,其中将检测下一查询。但是如果460处的确定为是,则分区可以更新。在一个实施例中,分区可以在表格仓库中更新,并且改变可以传播到存储器。在一个实施例中,分区可以在表格仓库中更新,并且改变可以不传播到存储器。在又一实施例中,分区可以在存储器中更新,并且改变可以传播到表格仓库。在另又一实施例中,分区可以在两个位置中同时地更新。
尽管图3和4图示了顺序发生的各种动作,但是要领会到,在图3和4中图示的各种动作可以基本上并行地发生。作为说明,第一过程可以检测和路由查询,第二过程可以选择性地准备用于分区的索引并且将分区从表格仓库复制到已经针对其准备索引的存储器,并且第三过程可以使用针对分区所准备的一个或多个索引而过滤存储器中的分区。尽管描述了三个过程,但是要领会到,可以采用更大或更小数目的过程并且可以采用轻量过程、常规过程、线程和其它方案。
在一个示例中,方法可以实现为计算机可执行指令。因而,在一个示例中,计算机可读存储介质可以存储计算机可执行指令,其如果由机器(例如,计算机)执行则使机器实施本文描述或要求保护的方法,包括方法300或400。尽管与所列出的方法相关联的可执行指令被描述为存储在计算机可读存储介质上,但是要领会到,与本文描述或要求保护的其它示例方法相关联的可执行指令也可以存储在计算机可读存储介质上。在不同实施例中,本文描述的示例方法可以以不同方式来触发。在一个实施例中,方法可以由用户手动触发。在另一个实施例中,方法可以自动地触发。
图5图示了示例装置500。在一个示例中,装置500包括连接处理器510、存储器520和逻辑集合530的接口540。装置500的元件可以彼此通信,但是出于图示的清楚起见而没有示出所有连接。在一个实施例中,装置500可以是已经通过包括逻辑集合530而变换成专用计算机的通用计算机。装置500可以通过例如计算机网络与其它装置、过程和服务交互。
逻辑集合530可以促进使用针对存储器所准备的索引而过滤特定字段上的分区。逻辑集合530可以为寻求在分区中的一个或多个特定字段上过滤的查询提供服务。在特定字段上过滤可以包括检索“记录”,针对其的包括名称-值对的“字段”中的值具有特定值或值范围。分区可以存储在使用表格-实体-属性模型而组织的表格仓库中的表格中。
逻辑集合530可以包括接收和路由查询的第一逻辑532。查询可以例如是NoSQL查询。可以根据查询是否寻求过滤除行键之外的一个或多个特定字段上的分区而路由查询。如果查询寻求过滤除行键之外的一个或多个特定字段上的分区,则可以从针对其的(多个)索引可用并且可以将分区复制到其的存储器(例如,共享存储器、缓存器)来为查询提供服务。如果没有寻求过滤一个或多个特定字段上的分区,则可以从表格仓库为查询提供服务。第一逻辑532在检测到查询寻求过滤一个或多个特定字段上的分区时选择性地将分区从表格仓库复制到存储器中。在一个实施例中,第一逻辑532将寻求在分区中的一个或多个特定字段上过滤的查询路由到第三逻辑536,并且将不寻求在分区中的一个或多个特定字段上过滤的查询路由到表格仓库。
逻辑集合530还可以包括准备用于存储器的索引的第二逻辑534。准备索引可以包括例如存储索引数据结构中的值、操控位字段、存储对象中的值或者其它动作。索引促进过滤一个或多个特定字段上的分区。在一个实施例中,第二逻辑534可以准备用于分区或存储器的两个或更多索引。在一个实施例中,第二逻辑534准备足够的索引使得与分区中的名称-值对相关联的任何名称可以被用作索引以为查询提供服务。在一个实施例中,第二逻辑534准备足够的索引使得查询或多个不同查询可以并行地进行。在一个实施例中,第二逻辑534选择性地更新分区。在不同示例中,分区可以在存储器中更新或者可以在表格仓库中更新。分区可以响应于例如实体插入、实体删除、属性值改变或者其它原因而更新。
逻辑集合530还可以包括第三逻辑536,其过滤一个或多个特定字段上的存储器中的分区。过滤分区可以包括从具有用于作为名称-值对而存储的属性的特定值的实体来检索信息。在一个实施例中,第三逻辑536使用两个或更多索引并行地过滤分区。过滤分区可以包括基于与特定名称-值对相关联的值来检索实体。例如,尽管分区可以包括全部共享用于其分区键的相同值的实体,但是分区中的不同实体可以具有不同名称-值对并且可以具有用于名称-值对的不同值。考虑存储在邮政编码上分区的顾客记录的表格。查询可以寻求寻找在某一邮政编码中购买某一物品(例如,一次性尿布)的所有人。并非分区中的所有实体都可能做出任何购买,并且因而并非所有实体都可能具有对应于购买的名称-值对。一旦已经找到特定分区(例如,邮政编码44113)中的人,则分区可以被复制到存储器。分区然后在两个特定字段上过滤,其中过滤并行地进行。例如,查询可以过滤具有期望名称-值对(例如,做出购买)和用于名称-值对的(多个)期望值(例如,购买一次性尿布)的人。查询还可以寻求在另一特定字段(例如,相关时间帧中的购买数目)上过滤以寻找已经做出多于阈值数目个购买的人。多个索引的存在可以允许查询在存储器中并行地进行,从而在相比于过滤表格存储装置中的分区而没有使用附加索引的常规系统时提供较高的性能。
处理器510可以例如是信号处理器、微处理器、专用集成电路(ASIC)、或者用于执行包括信号编码、数据处理、输入/输出处理、电力控制或其它功能的任务的其它控制和处理逻辑电路。处理器510可以与提供分区编索引和过滤服务的逻辑530交互。
存储器520可以包括不可移除存储器或可移除存储器。不可移除存储器可以包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、硬盘或者其它存储器存储技术。可移除存储器可以包括闪存或者其它存储器存储技术,诸如“智能卡”。存储器520可以存储查询、查询位置、表格、表格位置、分区、分区位置、实体、实体位置、名称-值对、名称-值对位置、从名称-值对检索的值、索引或者其它信息。
图6图示了装置500的另一个实施例。装置500的这一实施例包括第四逻辑538。第四逻辑538可以选择性地压缩或序列化分区。第四逻辑538可以在确定分区要从表格仓库复制到存储器时压缩或序列化分区。第四逻辑538可以在将分区复制到存储器之前、在将分区复制到存储器的同时、或者在将分区复制到存储器之后的时间处压缩或序列化分区。序列化分区可以包括将数据结构或对象状态转变成可以以不同方式(例如,从BLOB到文件)存储或者可以以不同方式传送(例如,从记录到位流)的格式。
图7图示了示例云操作环境700。云操作环境700支持作为抽象服务而不是作为独立产品而交付计算、处理、存储、数据管理、应用和其它功能性。服务可以通过可以实现为一个或多个计算设备上的一个或多个过程的虚拟服务器来提供。在一些实施例中,过程可以在服务器之间迁移而不会干扰云服务。在云中,共享资源(例如,计算、存储)可以通过网络而提供给包括服务器、客户端和移动设备的计算机。不同网络(例如,以太网、Wi-Fi、802.x、蜂窝)可以用于访问云服务。与云交互的用户可以不需要知晓实际提供服务(例如,计算、存储)的设备的细节(例如,位置、名称、服务器、数据库)。用户可以经由例如网络浏览器、简约客户端、移动应用或者以其它方式访问云服务。
图7图示了驻留在云中的示例智能索引服务760。智能索引服务760可以依赖于服务器702或服务704来执行处理并且可以依赖于数据仓库706或数据库708来存储数据。尽管图示了单个服务器702、单个服务704、单个数据仓库706和单个数据库708,但是服务器、服务、数据仓库和数据库的多个实例可以驻留在云中并且因此可以由智能索引服务760使用。
图7图示了访问云中的智能索引服务760的各种设备。设备包括计算机710、平板电脑720、膝上型计算机730、个人数字助理740和移动设备(例如,蜂窝电话、卫星电话)750。可能的是,在不同位置处使用不同设备的不同用户可以通过不同网络或接口访问智能索引服务760。在一个示例中,智能索引服务760可以由移动设备750访问。在另一个示例中,智能索引服务760的部分可以驻留在移动设备750上。智能索引服务760可以执行动作,包括例如将在特定字段上过滤的查询路由到多索引共享存储器、将不在特定字段上过滤的查询路由到表格仓库、将来自表格仓库的集群选择性地复制到多索引共享存储器、基于集群布置多索引共享存储器、针对多索引共享存储器中的分区产生多个索引或者其它动作。在一个实施例中,智能索引服务760可以执行本文描述的方法的步骤(例如,方法300、方法400)。
图8是描绘了包括各种各样的可选硬件和软件组件(一般地在802处示出)的示例性移动设备800的系统图。移动设备800中的组件802可以与其它组件通信,尽管出于图示简单而没有示出所有连接。移动设备800可以是各种各样的计算设备(例如,蜂窝电话、智能电话、手持式计算机、个人数字助理(PDA)等)并且可以允许与一个或多个移动通信网络804(诸如蜂窝或卫星网络)的无线双向通信。
移动设备800可以包括控制器或处理器810(例如,信号处理器、微处理器、专用集成电路(ASIC)或者其它控制和处理逻辑电路)以用于执行任务,包括针对从表格仓库复制到存储器的集群而创建多个索引、基于它们是否寻求在特定字段上过滤而路由查询、选择性地更换已经被复制到多索引共享存储器的集群或者其它动作。操作系统812可以控制组件802的分配和使用并且支持应用程序814。应用程序814可以包括移动计算应用(例如,电子邮件应用、日程表、联系人管理器、网络浏览器、消息应用)或者其它计算应用。
移动设备800可以包括存储器820。存储器820可以包括不可移除存储器822或可移除存储器824。不可移除存储器822可以包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、硬盘或者其它存储器存储技术。可移除存储器824可以包括闪存或者在GSM通信系统中已知的订户身份模块(SIM)卡、或者其它存储器存储技术,诸如“智能卡”。存储器820可以用于存储数据或代码以用于运行操作系统812和应用814。示例数据可以包括表格位置数据、表格组织数据、实体数据、集群数据、分区位置数据、分区数据、分区键数据、行键数据、索引信息、多个索引信息、特定字段查询数据、上下文数据、网页、文本、图像、声音文件、视频数据或其它数据集合。存储器820可以存储订户标识符,诸如国际移动订户身份(IMSI),以及设备标识符,诸如国际移动设备标识符(IMEI)。标识符可以传送给网络服务器以标识用户或设备。
移动设备800可以支持一个或多个输入设备830,包括但不限于触摸或悬停敏感的屏幕832、麦克风834、相机836、物理键盘838或追踪球840。移动设备800还可以支持输出设备850,包括但不限于扬声器852和显示器854。其它可能的输入设备(没有示出)包括加速度计(例如,一维、二维、三维)。其它可能的输出设备(没有示出)可以包括压电或其它触觉输出设备。一些设备可以为多于一个输入/输出功能提供服务。输入设备830可以包括自然用户界面(NUI)。NUI是使得用户能够以“自然”方式在免受诸如鼠标、键盘、遥控等等输入设备所强加的人工约束的情况下与设备交互。NUI方法的示例包括依赖于语音识别、触摸和触笔识别、手势识别(屏幕上以及屏幕附近)、空中手势、头部和眼睛追踪、语音和话语、视力、触摸、手势和机器智能的那些。NUI的其它示例包括使用加速度计/陀螺仪的运动手势检测、面部识别、三维(3D)显示、头部、眼睛和凝视追踪、沉浸式扩增现实和虚拟现实系统,其所有都提供更为自然的截面,以及用于使用电场感测电极感测脑部活动的技术(脑电图(EEG)和相关方法)。因而,在一个特定示例中,操作系统812或应用814可以包括语音识别软件以作为允许用户经由语音命令操作设备800的语音用户接口的部分。另外,设备800可以包括允许经由用户的空间手势的用户交互的输入设备和软件,诸如检测和解释手势以向应用提供输入。
无线调制解调器860可以耦合到天线891。在一些示例中,使用射频(RF)过滤器并且处理器810不需要针对所选频带选择天线配置。无线调制解调器860可以支持处理器810和外部设备之间的双向通信。以一般方式示出调制解调器860,并且其可以包括用于与移动通信网络804和/或其它基于无线电的调制解调器(例如,蓝牙864或Wi-Fi 862)通信的蜂窝调制解调器。无线调制解调器860可以配置用于与一个或多个蜂窝网络通信,诸如用于单个蜂窝网络内、蜂窝网络之间或者移动设备与公共交换电话网络(PSTN)之间的数据和语音通信的全球移动通信系统(GSM)。移动设备800还可以使用例如近场通信(NFC)元件892本地通信。
移动设备800可以包括至少一个输入/输出端口880、电力供应882、诸如全球定位系统(GPS)接收器之类的卫星导航系统接收器884、加速度计886或者物理连接器890,其可以是通用串行总线(USB)端口、IEEE 1394(火线)端口、RS-232端口或其它端口。所图示的组件802不是所要求的或穷举性的,因为可以删除或添加其它组件。
移动设备800可以包括配置为提供用于移动设备800的功能性的智能索引逻辑899。例如,智能索引逻辑899可以提供用于与服务(例如,服务760,图7)交互的客户端。本文描述的示例方法的部分可以由智能索引逻辑899执行。类似地,智能索引逻辑899可以实现本文描述的装置的部分。
下文包括本文采用的所选术语的定义。定义包括落入术语的范围内并且可以用于实现的组件的形式或各种示例。示例不意图为限制性的。术语的单数和复数形式二者可以处于定义之内。
对“一个实施例”、“实施例”、“一个示例”和“示例”的引用指示如此描述的(多个)实施例或(多个)示例可以包括特定特征、结构、特性、属性、元件或限制,但是并不是每一个实施例或示例都必然地包括该特定特征、结构、特性、属性、元件或限制。此外,短语“在一个实施例中”的重复使用不是必然地指示相同的实施例,尽管可能如此。
如本文中使用的“计算机可读存储介质”是指存储指令或数据的介质。“计算机可读存储介质”不是指传播信号。计算机可读存储介质可以采取包括但不限于非易失性介质和易失性介质的形式。非易失性介质可以包括例如磁盘、带和其它介质。易失性介质可以包括例如半导体存储器、动态存储器和其它介质。计算机可读存储介质的常见形式可以包括但不限于软盘、柔性盘、硬盘、磁带、其它磁性介质、专用集成电路(ASIC)、致密盘(CD)、随机存取存储器(RAM)、只读存储器(ROM)、存储器芯片或卡、存储器棒、或者计算机、处理器或其它电子设备可以从其读取的其它介质。
如本文中使用的“数据仓库”是指可以存储数据的物理或逻辑实体。数据仓库可以例如是数据库、表格、文件、列表、队列、堆、存储器、寄存器和其它物理贮存器。在不同示例中,数据仓库可以驻留在一个逻辑或物理实体中,或者可以分布在两个或更多逻辑或物理实体之间。
如本文中使用的“逻辑”包括但不限于硬件、固件、在机器上执行的软件或者每一个的组合以执行(多个)功能或者(多个)动作,或者以引起来自另一逻辑、方法或系统的功能或动作。逻辑可以包括软件控制的微处理器、分立逻辑(例如,ASIC)、模拟电路、数字电路、编程逻辑设备、包含指令的存储器设备和其它物理设备。逻辑可以包括一个或多个门、门的组合或者其它电路组件。在描述多个逻辑性逻辑的情况下,可以可能的是,将多个逻辑性逻辑并入到一个物理逻辑中。类似地,在描述单个逻辑性逻辑的情况下,可以可能的是,在多个物理逻辑之间分布单个逻辑性逻辑。
就在详细描述和权利要求中采用术语“包含”或“含有”的程度而言,其以类似于术语“包括”的方式而意图为包括性的,如在权利要求中作为过渡词语而采用时对该术语的解释。
就在详细描述和权利要求中采用术语“或”的程度而言(例如,A或B),其意图为意指“A或B或二者”。当申请人意图指示“仅A或B,但不是二者”时,然后将采用术语“仅A或B但非二者”。因而,术语“或”在本文中的使用是包括性的,并且不是排他性的使用。参见,BryanA. Garner, A Dictionary of Modern Legal Usage 624(2d. Ed. 1995) 。
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是要理解到,在随附权利要求中限定的主题未必限于以上描述的具体特征或动作。相反,以上描述的具体特征和动作是作为实现权利要求的示例形式而公开的。
Claims (14)
1.一种方法,包括:
检测从位于表格仓库中的表格中的分区寻求信息的查询,其中查询寻求在分区中的特定属性上过滤,其中表格仓库根据表格-实体-属性组织进行布置,并且其中分区是表格中的实体的集群;
为存储器准备促进过滤分区的一个或多个索引;
将分区从表格仓库复制到存储器中;
使用一个或多个索引过滤所述特定属性上的分区,其中分区在存储器中过滤;
在将分区从表格仓库复制到存储器中之前、期间或之后序列化分区;
在确定查询没有寻求在特定属性上过滤时,从表格仓库为查询提供服务;以及
在确定查询寻求在特定属性上过滤时,并且在确定分区已经处于存储器中时,从存储器为查询提供服务。
2.权利要求1所述的方法,其中过滤特定属性上的分区使用可用于存储器的两个或更多索引并行地进行。
3.权利要求1所述的方法,包括检测从分区寻求信息的两个或更多查询,其中两个或更多查询寻求在分区中的特定属性上过滤,并且过滤所述特定属性上的分区使用一个或多个索引,其中分区在存储器中并行地过滤。
4.权利要求1所述的方法,其中表格-实体-属性组织中的表格包括实体的集合,其中表格-实体-属性组织中的实体包括属性的集合,并且其中表格-实体-属性组织中的属性包括名称-值对,其中表格不在实体上推行方案,其中表格可以存储具有不同属性集合的不同实体,并且其中分区可以具有带有不同属性集合的不同实体。
5.权利要求4所述的方法,其中实体具有分区键和行键,其中分区键用于标识实体的相关集群,并且其中行键被用作用于分区内的实体的唯一标识符。
6.权利要求1所述的方法,包括在将分区从表格仓库复制到存储器中之前、期间或之后压缩分区。
7.权利要求1所述的方法,其中一个或多个索引是分区特定的或查询特定的。
8.权利要求1所述的方法,其中存储器是结构化共享缓存器,并且其中存储器处于与表格仓库不同的存储装置中。
9.权利要求1所述的方法,包括准备存储器使得分区中的两个或更多属性可以被用作索引以支持查询。
10.权利要求1所述的方法,包括准备存储器使得分区中的任何属性可以被用作索引以支持查询。
11.权利要求1所述的方法,包括选择性地更新存储器中或者表格仓库中的分区。
12.权利要求1所述的方法,其中表格存储在二进制大对象(BLOB)中。
13.一种装置,包括:
处理器;
存储器;
为寻求在存储于表格仓库中的表格中的分区中的一个或多个特定属性上过滤的查询提供服务的逻辑集合,其中表格仓库使用表格-实体-属性模型来组织,其中表格-实体-属性模型中的表格包括实体的集合,其中表格-实体-属性模型中的实体包括属性的集合,其中表格-实体-属性模型中的属性包括名称-值对,其中表格-实体-属性模型中的表格能够存储具有不同属性集合的不同实体,其中表格-实体-属性模型中的表格不在实体上推行方案,并且其中表格-实体-属性模型中的分区能够具有带有不同属性集合的不同实体,以及
连接处理器、存储器和逻辑集合30的接口,
逻辑集合包括:
第一逻辑,其根据查询是否寻求过滤一个或多个特定属性上的分区而接收和路由查询,并且在检测查询寻求过滤一个或多个特定属性上的分区时选择性地将分区从表格仓库复制到存储器中;
第二逻辑,其准备用于存储器的索引,其中索引促进过滤一个或多个特定属性上的分区;
第三逻辑,其过滤一个或多个特定属性上的存储器中的分区,以及
第四逻辑,其在确定要将分区从表格仓库复制到存储器时选择性地压缩分区或者序列化分区。
14.权利要求13所述的装置,其中第一逻辑将寻求在一个或多个特定属性上过滤的查询路由到第三逻辑,并且将不寻求在一个或多个特定属性上过滤的查询路由到表格仓库,
其中第二逻辑准备用于分区的两个或更多索引,其中所准备的两个或更多索引根据分区或者根据查询来选择,并且其中第二逻辑选择性地更新存储器中或者表格仓库中的分区,并且
其中第三逻辑使用两个或更多索引来在存储器中并行地过滤分区。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/226,866 US10007692B2 (en) | 2014-03-27 | 2014-03-27 | Partition filtering using smart index in memory |
US14/226866 | 2014-03-27 | ||
PCT/US2015/022100 WO2015148418A1 (en) | 2014-03-27 | 2015-03-24 | Partition filtering using smart index in memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106462591A true CN106462591A (zh) | 2017-02-22 |
CN106462591B CN106462591B (zh) | 2020-06-19 |
Family
ID=52829355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580016793.9A Active CN106462591B (zh) | 2014-03-27 | 2015-03-24 | 使用存储器中的智能索引的分区过滤 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10007692B2 (zh) |
EP (1) | EP3123360B1 (zh) |
CN (1) | CN106462591B (zh) |
WO (1) | WO2015148418A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797092A (zh) * | 2019-04-02 | 2020-10-20 | Sap欧洲公司 | 在数据库系统内提供次级索引的方法和系统 |
CN113407749A (zh) * | 2021-06-28 | 2021-09-17 | 北京百度网讯科技有限公司 | 图片索引构建方法、装置、电子设备以及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9444705B2 (en) * | 2014-04-16 | 2016-09-13 | International Business Machines Corporation | Bringing attention to an activity |
JP2019110493A (ja) * | 2017-12-20 | 2019-07-04 | ソニー株式会社 | 情報処理装置、情報処理方法、情報処理システム、並びにプログラム |
US12008041B2 (en) * | 2021-09-15 | 2024-06-11 | International Business Machines Corporation | Shared cache for multiple index services in nonrelational databases |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682052A (zh) * | 2010-12-28 | 2012-09-19 | 微软公司 | 过滤数据存储上的查询数据 |
US20120303628A1 (en) * | 2011-05-24 | 2012-11-29 | Brian Silvola | Partitioned database model to increase the scalability of an information system |
WO2014004741A1 (en) * | 2012-06-26 | 2014-01-03 | Medio Systems, Inc. | Distributed, real-time online analytical processing (olap) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7254574B2 (en) * | 2004-03-08 | 2007-08-07 | Microsoft Corporation | Structured indexes on results of function applications over data |
US8566342B2 (en) * | 2005-12-07 | 2013-10-22 | Berm Logic Llc | In-memory data optimization system |
US7672935B2 (en) * | 2006-11-29 | 2010-03-02 | Red Hat, Inc. | Automatic index creation based on unindexed search evaluation |
US8631000B2 (en) * | 2010-09-30 | 2014-01-14 | International Business Machines Corporation | Scan sharing for query predicate evaluations in column-based in-memory database systems |
US9348890B2 (en) * | 2011-08-30 | 2016-05-24 | Open Text S.A. | System and method of search indexes using key-value attributes to searchable metadata |
US8914353B2 (en) * | 2011-12-20 | 2014-12-16 | Sap Se | Many-core algorithms for in-memory column store databases |
US8948465B2 (en) * | 2012-04-09 | 2015-02-03 | Accenture Global Services Limited | Biometric matching technology |
US9367463B2 (en) * | 2013-03-14 | 2016-06-14 | Palantir Technologies, Inc. | System and method utilizing a shared cache to provide zero copy memory mapped database |
US20140379631A1 (en) * | 2013-06-25 | 2014-12-25 | Linkedln Corporation | Transactional key-value database with searchable indexes |
US9323799B2 (en) * | 2013-09-21 | 2016-04-26 | Oracle International Corporation | Mechanism to run OLTP workload on in-memory database under memory pressure |
US10061789B2 (en) * | 2013-10-28 | 2018-08-28 | Excalibur Ip, Llc | Dynamic database indexes for entity attribute value stores |
-
2014
- 2014-03-27 US US14/226,866 patent/US10007692B2/en active Active
-
2015
- 2015-03-24 WO PCT/US2015/022100 patent/WO2015148418A1/en active Application Filing
- 2015-03-24 CN CN201580016793.9A patent/CN106462591B/zh active Active
- 2015-03-24 EP EP15716244.7A patent/EP3123360B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682052A (zh) * | 2010-12-28 | 2012-09-19 | 微软公司 | 过滤数据存储上的查询数据 |
US20120303628A1 (en) * | 2011-05-24 | 2012-11-29 | Brian Silvola | Partitioned database model to increase the scalability of an information system |
WO2014004741A1 (en) * | 2012-06-26 | 2014-01-03 | Medio Systems, Inc. | Distributed, real-time online analytical processing (olap) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797092A (zh) * | 2019-04-02 | 2020-10-20 | Sap欧洲公司 | 在数据库系统内提供次级索引的方法和系统 |
CN111797092B (zh) * | 2019-04-02 | 2024-05-28 | Sap欧洲公司 | 在数据库系统内提供次级索引的方法和系统 |
CN113407749A (zh) * | 2021-06-28 | 2021-09-17 | 北京百度网讯科技有限公司 | 图片索引构建方法、装置、电子设备以及存储介质 |
CN113407749B (zh) * | 2021-06-28 | 2024-04-30 | 北京百度网讯科技有限公司 | 图片索引构建方法、装置、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20150278278A1 (en) | 2015-10-01 |
US10007692B2 (en) | 2018-06-26 |
CN106462591B (zh) | 2020-06-19 |
EP3123360A1 (en) | 2017-02-01 |
WO2015148418A1 (en) | 2015-10-01 |
EP3123360B1 (en) | 2018-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
CN104866497B (zh) | 分布式文件系统列式存储的元数据更新方法、装置、主机 | |
CN105408857B (zh) | 数据仓库系统、生成关系数据库的多列索引的方法和系统 | |
CN103020204B (zh) | 一种对分布式顺序表进行多维区间查询的方法及其系统 | |
CN110268394A (zh) | Kvs树 | |
CN110291518A (zh) | 合并树无用单元指标 | |
CN110383261A (zh) | 用于多流存储装置的流选择 | |
CN110268399A (zh) | 用于维护操作的合并树修改 | |
CN105630864A (zh) | 存储行标识符值的字典的强制排序 | |
CN103020255B (zh) | 分级存储方法和装置 | |
CN106462591A (zh) | 使用存储器中的智能索引的分区过滤 | |
CN106030573A (zh) | 半结构化数据作为第一等级数据库元素的实现 | |
US20140258315A9 (en) | Method And Process For Enabling Distributing Cache Data Sources For Query Processing And Distributed Disk Caching Of Large Data And Analysis Requests | |
CN104850572A (zh) | HBase非主键索引构建与查询方法及其系统 | |
CN102880709A (zh) | 数据仓库管理系统和数据仓库管理方法 | |
CN111258978A (zh) | 一种数据存储的方法 | |
CN106599111A (zh) | 一种数据管理方法及存储系统 | |
CN104834650A (zh) | 一种有效查询任务生成方法及系统 | |
CN107766355B (zh) | 层级数据管理方法、层级数据管理系统及即时通信系统 | |
CN104423982A (zh) | 请求的处理方法和处理设备 | |
CN102355502A (zh) | 存储系统远程接入桌面操作系统的远程接入方法 | |
CN103365987A (zh) | 一种基于共享磁盘架构的集群数据库系统及数据处理方法 | |
CN113704248B (zh) | 一种基于外置索引的区块链查询优化方法 | |
CN110471925A (zh) | 实现搜索系统中索引数据同步的方法及系统 | |
CN102724301B (zh) | 云数据库系统以及云数据读写处理方法、设备 |
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 |