CN102682052A - 过滤数据存储上的查询数据 - Google Patents

过滤数据存储上的查询数据 Download PDF

Info

Publication number
CN102682052A
CN102682052A CN2011104460212A CN201110446021A CN102682052A CN 102682052 A CN102682052 A CN 102682052A CN 2011104460212 A CN2011104460212 A CN 2011104460212A CN 201110446021 A CN201110446021 A CN 201110446021A CN 102682052 A CN102682052 A CN 102682052A
Authority
CN
China
Prior art keywords
data
filter criteria
data item
subset
item
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
Application number
CN2011104460212A
Other languages
English (en)
Other versions
CN102682052B (zh
Inventor
N·奈斯
D·西顿
D·克雷默
M·费尔德曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102682052A publication Critical patent/CN102682052A/zh
Application granted granted Critical
Publication of CN102682052B publication Critical patent/CN102682052B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries

Abstract

本发明涉及过滤数据存储上的查询数据。数据集可分布在许多数据存储上,并且查询可由若干数据存储用组合成形成查询结果的结果(例如,使用MapReduce框架)分布式地评估。然而,此类体系结构可通过执行复杂的处理来违反安全性原则,包括在存储数据的相同机器上执行任意代码。代替处理查询,数据存储可被配置成只接收指定一个或多个过滤准则的请求,并且提供满足该过滤准则的数据项。计算节点可通过生成包括一个或多个过滤准则的请求、将该请求提供给数据节点、以及将查询的其余部分(包括复杂的处理、以及可能执行任意代码)应用于数据节点所提供的数据项来应用查询,由此改进查询处理的安全性和效率。

Description

过滤数据存储上的查询数据
技术领域
本发明涉及过滤数据存储上的查询数据。
背景技术
在计算领域内,许多情形涉及要应用于一个或多个数据存储所存储的数据集的查询。例如,用户或数据驱动过程可通过从数据存储请求以查询语言(诸如结构化查询语言(SQL))指定的查询来请求数据的特定子集。数据存储可接收该查询,使用查询处理引擎来处理该查询(例如,软件流水线包括对该查询执行各种解析运算(诸如使该查询中的名称与数据库的命名对象相关联、以及标识各种运算符所指定的运算)的组件),将经解析的查询所指定的运算应用于所存储数据,并且返回该查询已指定的查询结果。查询结果可包括该查询所指定的一组记录、这些记录的一组属性、以及从数据计算的结果(例如,匹配特定查询准则的记录的计数)。该结果还可包括相对于所存储数据采取的动作的报告,诸如创建或修改表格,或者插入、更新或删除表格中的记录。
在许多此类情形中,数据库可分布在若干且可能是大量的数据存储上。例如,在分布式数据库中,所存储数据的不同部分可存储在服务器场中的一个或多个数据存储中。当接收到要应用于数据集的查询时,接收该查询的机器可标识哪些数据存储可能包含该查询作为目标的数据,并且可将该查询发送到那些数据存储中的一个或多个。每一此类数据存储可将该查询应用于存储于其中的数据,并且可将查询结果发送回去。如果该查询被两个或更多个数据存储应用,则可组合查询结果以生成聚合的查询结果。在一些情形中,一个机器可协调将该查询分发给所涉及的数据存储且聚合查询结果的过程。诸如MapReduce(映射化简)框架之类的技术已被设计成以有效的方式实现此类分发和聚合。
此类数据存储所使用的数据引擎可能是相当复杂的,并且能够将许多复杂的计算过程应用于此类数据存储,诸如数据库事务、日志记录、执行所存储过程、以及接受和执行代理。查询语言本身可增加数据存储要处理的查询的复杂性,包括嵌套、串和其他数据类型的计算密集型相似性比较,以及对数据库的结构的修改。另外,数据存储的查询处理引擎所应用的逻辑过程能够以有效的方式回答复杂的查询,并且甚至可通过使用诸如查询优化之类的技术来改进该查询。作为这些以及其他过程的结果,数据存储对查询的评估可消耗大量的计算资源。
发明内容
提供本发明内容以便以简化的形式介绍在以下具体实施方式中进一步描述的一些概念。本发明内容既不旨在标识出所要求保护的主题的关键因素或必要特征,也不旨在用于限定所要求保护的主题的范围。
尽管使数据存储配备可能处理复杂事务的复杂查询处理引擎可能是有利的,但还可产生一些缺点。具体而言,将数据存储配置成对本地存储的数据执行复杂的查询可能是不利的或低效的。例如,数据存储恰好存储需求特别高的数据,但是查询处理引擎可被应用于所存储数据的复杂查询的应用加重负担(tax),而其他查询(一些查询可能是很简单的)保持待决。因此,复杂的查询可产生减少查询评估的容量和吞吐量的瓶颈。
作为第二示例,其中数据存储还执行复杂查询的分布式数据库体系结构可损害一些安全性原则,因为还准许正在存储数据的机器对数据执行可能危险或恶意的操作。另外,查询处理引擎甚至可准许对所存储数据执行任意代码(例如,其中可执行模块接收自第三方且针对所存储数据执行的代理情形)。使存储数据(在第一组机器上)和对数据(分配到第二组机器)执行复杂计算(包括任意代码)分开的安全性原则可呈现若干安全性优点,诸如所存储数据之间的数据项分区和受损害的机器。
这些以及其他优点可因去除对来自数据存储(例如,被配置成存储分布式数据库的数据的服务器场的机器)的数据的复杂处理而产生。然而,将不具有处理能力的数据存储配置为例如纯粹用作数据存储设备的数据存储同样可能是不利的,其只能够提供所请求数据对象(例如,整个表格))、或对其进行指定更改。例如,另一机器可从数据存储请求仅数据子集,诸如来自表格的满足特定过滤准则的记录子集。然而,如果该请求只指定包含许多记录的表格中的少量记录,则发送整个表格可能是过度低效的,特别是在给定联网环境中机器和数据存储之间的带宽约束的情况下。
在本文中呈现了用于配置数据存储以履行对存储其中的数据的请求的技术。根据这些技术,数据存储不利用查询处理引擎,该查询处理引擎可能造成显著的计算成本、降低履行请求时的性能、和/或准许对所存储数据执行任意代码。然而,数据存储还能够只提供存储其中的数据子集。数据存储通过接受指定一个或多个过滤准则的请求来实现该结果,这些准则各自以特定的方式减少数据的请求量。例如,该请求可包括指定特定过滤准则值的过滤准则,并且可请求只具有用于特定过滤准则的那个过滤准则值的记录(例如,在被配置成存储表示事件的数据的数据存储中,过滤准则可标识事件的类型或该事件发生时的时间)。因此,该请求只指定各种过滤准则,并且数据存储能够提供满足过滤准则的数据,但是不被配置成处理可指定复杂运算的查询。因此,该配置可促进将分布式数据库划分成被配置成存储并提供数据的数据节点集以及能够应用复杂的查询(包括任意代码)的计算节点集。
为了实现以上及相关目的,以下描述和附图阐述了特定说明性方面和实现。这些方面和实现仅指示可使用一个或多个方面的各种方式中的一些。结合附图考虑以下详细描述,本发明的其他方面、优点、以及新颖特征将变得显而易见。
附图说明
图1是表征将查询应用于分布在若干数据存储上的数据集的示例性情形的图示。
图2是表征对来自数据存储所存储的数据集的数据施加请求的示例性情形的图示。
图3是根据此处所呈现的技术的表征对来自数据存储所存储的数据集的数据施加表征至少一个过滤准则的请求的示例性情形的图示。
图4是示出履行以数据集中的一个数据集为目标的请求的示例性方法的流程图。
图5是示出履行以数据集中的一个数据集为目标的请求的示例性方法的流程图。
图6是包括被配置成实现本文中所阐述的措施中的一个或多个的处理器可执行指令的示例性计算机可读介质的图示。
图7是表征索引数据集所存储的数据项的示例性情形的图示。
图8是表征划分数据集所存储的数据项的示例性情形的图示。
图9是表征包括被配置成响应于表征至少一个过滤准则的请求来过滤数据项的数据项处理器的数据项处理器集合的示例性情形的图示。
图10示出其中可实现本文中所阐述的措施中的一个或多个的示例性计算环境。
具体实施方式
现在参考附图来描述所要求保护的主题,在所有附图中使用相同的附图标记来指代相同的元素。在以下描述中,为了解释起见,阐明了众多具体细节以提供对所要求保护的主题的全面理解。然而,很明显,所要求保护的主题可在没有这些具体细节的情况下实施。在其他情况下,以框图形式示出各种结构和设备以便于描述所要求保护的主题。
在计算领域中,许多情形涉及数据集,诸如数据存储所存储的数据库。数据存储可包括配备有在其上存储数据集的存储组件(例如,存储器电路、硬盘驱动器、固态储存设备、或者磁性或光学存储盘)的计算机,并且可被配置成执行满足访问可从各个用户和/或处理器接收的数据的请求的软件。在许多此类情形中,所存储的数据可以是庞大的,可能缩放成存储在一个表格和/或大量表格中的数百万或数十亿个记录,和/或可以是复杂的,诸如记录和表格之间的大量相互关系,以及用作对可存储其中的数据的类型的约束的复杂约束。
在一些此类情形中,数据集可被存储在多个数据存储上。作为第一示例,两个或更多个数据存储可存储数据集的相同副本。该配置对促进可用性可能是有利的(例如,一个数据存储可在另一数据存储被占据或离线时对数据的请求作出响应)。作为第二示例,数据集可分布在数据存储上,以使每一数据存储存储数据集的一部分。该配置对提高效率可能是有利的(例如,满足对数据的特定集合(诸如特定记录)的请求的计算负担的分布可限于正在存储所请求数据的数据存储)。在许多此类示例中,可提供数打或数百个数据存储,诸如在包括一起存储和提供对非常大的数据集的访问的极大量的数据存储的服务器场中。
图1呈现表征用于将用户12所提交的查询14应用于数据集20、包括各自存储具有特定属性24的一组记录26的一组数据表格22的第一体系结构的示例性情形10。在该示例性情形10中,数据集20已以各种方式跨许多数据存储18分布。作为第一示例,数据集20可垂直分布;例如,数据集20可包括存储不同类型的记录26的若干数据表格22,并且第一数据存储18可存储第一数据表格22的记录26,而第二数据存储18可存储第二数据表格22的记录26。作为第二示例,数据集20可水平分布;例如,针对特定数据表格22,第一数据存储18可存储第一组记录26,而第二组数据存储18可存储第二组记录26。该分布可以是任意的,或者可基于数据表格22的特定属性24(例如,针对指定字母串的属性24,第一数据存储18可存储以字母“A”至“L”开头的记录26,而第二数据存储18可存储以字母“M”至“Z”开头的记录26)。还可设计分发数据表格22和数据记录26的其他方式;例如,针对特定数据表格22,第一数据存储18可存储用于记录26的第一组属性24,而第二数据存储18可存储用于记录26的第二组属性24,或者两个数据存储18可冗余地存储相同记录26以促进记录26的可用性和对涉及记录26的查询的快速评估。
在许多此类情形中,用户或过程可提交要应用于数据集20的查询。例如,结构化查询语言(SQL)查询可包括要应用于数据集20的一个或多个操作,诸如从具有用于特定属性24的特定值的一个或多个数据表格22中选择记录26、投影此类记录26的特定属性24、结合不同记录26的属性24以创建合成记录26、以及在呈现查询结果之前将各种其他操作应用于所选数据(例如,排序、分组、或对记录进行计数)。该查询还可指定对数据集20的各种更改,诸如插入新记录26、设置一个或多个记录26的各种属性24、删除记录26、建立或终止语义相关的记录26之间的关系、以及诸如通过插入、修改、或删除一个或多个数据表格22来更改数据集20的布局。还可将这些操作一起链接成此类操作的集合、序列、或条件分层结构。结构化查询语言的变量还支持更复杂的操作,诸如复杂的数据搜索(例如,对标识匹配正则表达式的记录的支持)、日志记录(例如,记录稍后可被反向的操作的应用)、以及事务(例如,成功地执行的其中任意一个都是操作的两个或更多个操作、或者不应用所有操作)。结构化查询语言的其他变量还可支持代码在数据存储上的执行;例如,查询可指定或调用由数据存储对所存储数据执行的存储过程,或者可包括代理,诸如提供给数据存储以供本地执行的可解释脚本或可执行二进制码。为了评估和履行此类查询,数据存储18可包括查询处理引擎,诸如包括对该查询执行诸如使该查询中的名称与数据库的命名对象相关联以及标识各种运算符所指定的运算之类的各种解析操作的组件的软件流水线。通过词法解析查询的语言(例如,根据查询语言的句法规则来标识该查询的各个组分)、标识该查询的每一组分所指定的运算以及运算的逻辑结构和序列、以及调用能够履行运算的组件,数据存储18可实现对该查询的评估和履行。
在这些以及其他情形中,将复杂查询应用于跨许多数据存储分布的数据集的任务可呈现出许多实现挑战。已提出了许多技术和体系结构框架来以有效且自动的方式实现此类应用。
图1的示例性情形10还呈现通常用于将查询14应用于跨许多数据存储18分布的数据集20的一种技术。在该示例性情形10中,用户12可提交包括可针对数据集20应用的一组运算16的查询14。此外,运算16可用逻辑序列链接在一起,例如,使用布尔运算符来指定特定运算16的结果要一起使用。查询14可被递送到MapReduce服务器28,包括被配置成应用“MapReduce”技术来跨正在存储数据集20的各个部分的数据存储18分发查询14的计算机。例如,MapReduce服务器28可标识查询14内的各种操作16以由特定数据存储18分别存储的数据集20的各个部分为目标。例如,第一操作16可以第一数据存储18所存储的数据(例如,应用于第一数据存储18所存储的数据表格22和/或记录集26的Select(选择)操作)为目标,而第二操作16可以第二数据存储18所存储的数据为目标。因此,MapReduce服务器可将查询14分解成各个查询部分30,每一个查询部分包括要由特定数据存储18执行的一个或多个操作。数据存储18可接收查询部分30、应用其中所指定的操作16、并且生成可被递送到MapReduce服务器28(或另一数据存储18以供进一步处理)的查询结果32。MapReduce服务器28然后可组成数据存储18所提供的查询结果32,以生成可响应于查询14提供给用户12的查询结果34。以此方式,数据存储18和MapReduce服务器28可互操作以实现查询14的履行。
图1的示例性情形10可呈现一些优点(例如,将查询14自动地分成(parcel)多个数据存储18,这可实现对各个查询部分30的并发评估,该并发评估可加速对查询14的评估)。然而,示例性情形10还可呈现一些缺点。具体而言,设计用于诸如分布式数据库之类的分布式数据集的体系结构可能是合乎需要的,其中在第一组设备上执行对数据的存储和访问,而在第二组设备上执行复杂的计算过程。此类划分例如对于改进数据集20的安全性可能是有利的。例如,要应用于数据集20的查询14在计算上可能是昂贵的(例如,涉及大量的存储器)、矛盾的(例如,未结束或无法逻辑地评估的递归查询)、或恶意的(例如,过度地或隐密地涉及对数据集20的未经授权的公开和修改)。在一些情形中,计算可涉及执行代码(诸如调用已在数据存储18上实现的存储过程的查询14)、或移动代理情形,其中第三方可提供可应用于数据集20的“代理”(例如,可解释脚本、或者经部分或全部编译的可执行文件)。因此,可通过将复杂的计算限于可仔细地监控且如果此类计算机看起来正在以可能损坏数据集20的方式操作则可挂起、离线、或替换的一组特定计算机来改进数据集20的安全性。然而,图1的示例性情形410不涉及此类划分。相反,存储数据集20的各个部分的数据存储18还对此类数据执行查询部分30,并且因此不能将对数据集20的访问与对其所执行的计算分开。
可能在图1的示例性情形10中产生的第二个缺点涉及数据集20的性能。例如,特定数据存储18可被配置成存储临时地或长期地频繁访问的查询部分30,以使数据存储18在短时间段内接收并处理涉及数据集20的部分的许多查询14。然而,如果数据存储18还被配置成执行对所存储数据的复杂计算处理,则涉及复杂操作的查询14可消耗数据存储18的计算资源(例如,存储器、存储器容量、以及带宽),这些计算资源不可用于履行其他查询14。因此,单个复杂查询14可抢先评估和履行涉及数据存储18所存储的相同数据的其他查询14。相反,如果涉及该数据的复杂计算从存储此类数据中划分出来,则许多计算机可被配置成并行地处理查询14,并且占用一个计算机的资源的复杂查询14可能不影响对其他计算机所处理的其他查询14的评估或履行。
鉴于图1的示例性情形10中所呈现的体系结构产生的这些以及其他缺点,将存储和访问数据集20中的数据与可应用于此类数据的复杂计算查询分开可能是合乎需要的。然而,其中数据存储18只提供低级访问且计算节点提供所有计算的刚性划分同样可能是低效的。
图2呈现其中数据存储18被配置成存储包括大量记录26(例如,50,000个记录)的数据集20的示例性情形40。用户12可提交查询14,查询14可由计算节点42接收和完全评估。计算节点42可包括例如查询处理引擎,该查询处理引擎可在词法上解析查询14、标识其中所指定的操作16、并且调用各个组件来执行包括从数据存储18取回数据的此类操作16。例如,代替将查询14或查询部分30发送到数据存储18,计算节点42可简单地发送对一组特定记录26(诸如包括数据集20的数据表格22的记录26)的请求44。数据存储18可用包括所请求记录26的请求结果48作出响应,计算节点42可将一些复杂的计算(例如,查询14中所指定的运算16)应用于请求结果48并且可将查询结果34返回给用户12。然而,该示例性情形40示出对计算节点42和数据存储18之间的责任的该刚性划分的低效。例如,查询14可请求取回单个记录26(例如,对与特定标识符相关联的雇员的记录26),但是数据存储18所存储的数据表格22可包括许多此类记录26。因此,数据存储18可将包括50,000个记录26的请求结果48提供给计算节点42,即使查询结果34中只包括一个此类记录26。此外,可能容易从查询14的范围内标识该记录26(例如,如果查询14根据具有相应记录26的唯一标识符的索引字段来标识所请求记录26),但是由于数据存储18无法执行评估查询14中所涉及的计算,因此数据存储18未执行该相对简单的过滤。该低效可能变得特别明显,例如,如果请求结果48通过可能具有有限容量的网络46发送到计算节点42。通过网络46发送许多记录26可对完成查询14施加限速因素,由此在履行涉及小查询结果34的相对简单的查询14中施加显著延迟。这些以及其他缺点可因责任在数据存储18和包括数据集20的计算节点42之间的硬性划分而产生。
此处呈现了用于配置数据集20来评估查询14的技术。例如,鉴于图1的示例性情形10和图2的示例性情形40中的优点和缺点,可设计这些技术。根据这些技术,数据存储18可被配置成存储数据集20的一个或多个数据项(例如,数据集20的各个表格22、属性24、和/或记录26),并且参与针对此类数据项对查询14的评估。与图1的示例性情形10相比,数据存储18未被配置成评估查询14;例如,数据存储18可不包括查询处理引擎,并且可拒绝接受或评估用查询语言(诸如结构化查询语言(SQL)查询)定制的查询14。相反,数据存储18不限于响应于请求44来提供数据存储20的一个或多个部分,这可造成因刚性划分而产生的低效,诸如图2的示例性情形40中所示的。相反,根据这些技术,数据存储18被配置成接受包括定义经过滤的数据子集的一个或多个过滤准则的请求44。例如,数据存储18可存储包括各个记录26的一个或多个数据表格22,但是可索引记录26的少量属性24。过滤可涉及标识、取回、以及提供数据集20的数据子集,包括具有带索引(indexed)属性24之一的特定值的记录26。由于将过滤准则应用于数据集20可导致要在经过滤的数据子集58中发送的数据的显著减少、同时消耗在评估查询14中所涉及的计算资源的一小部分,因此数据存储18可被配置成响应于请求44来执行该过滤。然而,数据存储18可被配置成制止执行更复杂的计算过程;例如,数据存储18可完全省略查询处理引擎,可拒绝接受用查询语言指定的查询14,或者可拒绝指定不带索引的属性26的请求44。以此方式,此处所呈现的技术可实现比图1的示例性情形10中更高的效率和安全性,同时还避免图2的示例性情形40中所呈现的缺点。
图3呈现表征应用此处所呈现的技术来将用户12所提交的查询14应用于存储各个数据项52的数据集20以生成和提供查询结果34的示例性情形50的图示。在该示例性情形50中,可通过数据存储18来实现对数据集20的访问,数据集20进而可通过计算节点42来访问。然而,如果用户12或计算节点42将查询14提交给数据存储18,则数据存储18可拒绝接受查询14,或者不能够评估查询14。(替换地,数据存储18可只在例如查询14由管理员提交的特定情况中接受并评估查询14。)相反,用户12(或自动过程)可将查询14提交给计算节点42,计算节点42可尽力与数据存储18交互以评估该查询并提供查询结果34。具体而言,计算节点42可检查查询14以标识包括可指定从数据存储18取回特定数据项52的一个或多个过滤准则54的请求44。(例如,标识查询14的一个或多个操作16,该一个或多个操作16可被表达为对满足一个或多个过滤准则54的数据项52的请求44。)数据存储18被配置成接收数据项52并将接收到的数据项52存储在存储组件(例如,存储器电路、硬盘驱动器、固态存储设备、或者磁盘或光盘)中作为数据集20的一部分。另外,数据存储18被配置成接收包括一个或多个过滤准则54的请求44。在接收到请求44之后,数据存储18可执行过滤56以标识满足过滤准则54的数据项52,并且生成要返回到计算节点42的经过滤的数据子集58。计算节点42可接收经过滤的数据子集58,并且可应用查询14的其余部分(例如,执行未在请求44中表达的查询14的操作16所指定的复杂计算)。在一些此类情形中,计算节点42可将第二或进一步请求44发送到指定其他过滤准则54的数据集20,并且可在计算中用第二个或其他经过滤的数据子集58。最终,计算节点42可生成查询结果34,查询结果34可响应于查询14来呈现给用户12(或自动的过程)。以此方式,配置数据存储18以及任选的数据节点42可以比图1的示例性情形10和/或图2的示例性情形40中所呈现的更有效和更安全的方式实现查询14的履行。
图4呈现这些技术的第一实施例,如履行以数据集20为目标的请求44的示例性方法60所示。示例性方法60可由例如被配置成存储或访问数据集20的部分或全部的数据存储18来执行。另外,示例性方法60可被实现为例如存储在数据存储18的存储器组件(例如,系统存储器电路、硬盘驱动器的盘、固态存储设备、或者磁盘或光盘)中的一组软件指令,当这些指令由数据存储18的处理器执行时使得该处理器执行此处所呈现的技术。示例性方法60在62开始,并且涉及在64在处理器上执行指令。更具体地,这些指令被配置成在接收到数据项52之后,将数据项52存储66在数据集20中。这些指令还被配置成在接收到68指定至少一个过滤准则54的请求44之后,取回70满足至少一个过滤准则的数据集20的数据项52以生成经过滤的数据子集58,并且响应于请求44来发送72经过滤的数据子集58。以此方式,在不使数据存储18暴露于安全风险、低效、以及消耗在评估查询14中所涉及的计算资源的情况下,示例性方法60实现了对访问数据集20的请求44的履行,并且由此在74结束。
图5呈现这些技术的第二实施例,如将查询14应用于数据存储18所存储的数据集20的示例性方法80所示。示例性方法80可在例如具有处理器的设备(诸如计算节点42)上执行。另外,示例性方法80可被实现为例如存储在计算节点42或其他设备的存储器组件(例如,系统存储器电路、硬盘驱动器的盘、固态存储设备、或者磁盘或光盘)中的一组软件指令,当这些指令由处理器执行时使得该处理器执行此处所呈现的技术。示例性方法80在82开始,并且涉及在处理器上执行84指令。更具体地,这些指令被配置成从查询14中生成86指定至少一个过滤准则54的请求44。这些指令还被配置成将请求44发送88到数据存储18,并且在响应于请求44从数据存储18接收到经过滤的数据子集58之后,将查询14应用90于经过滤的数据子集56。以此方式,在不使数据存储18暴露于安全风险、低效、以及消耗在评估查询14中所涉及的计算资源的情况下,示例性方法80实现对数据集20的查询14的履行,并且由此在92结束。
又一实施例涉及包括被配置成应用此处所呈现的技术的处理器可执行指令的计算机可读介质。此类计算机可读介质可包括例如计算机可读存储介质,这些计算机可读存储介质包括有形设备,诸如存储器半导体(例如,使用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、和/或同步动态随机存取存储器(SDRAM)技术的半导体)、硬盘驱动器的盘、闪存设备、或磁盘或光盘(诸如CD-R、DVD-R、或软盘),编码有一组计算机可读指令,当这些指令由设备的处理器执行时使得该设备实现此处所呈现的技术。此类计算机可读介质还可包括(作为与计算机可读存储介质不同的一类技术)各种类型的通信介质,诸如可通过各种物理现象(例如,电磁信号、声波信号、或光学信号)以及在各种有线情形(例如,经由以太网或光纤缆)和/或无线情形(例如,诸如WiFi之类的无线局域网(WLAN)、诸如蓝牙之类的个域网(PAN)、或者蜂窝或无线电网络)中传播的信号,并且该通信介质编码有一组计算机可读指令,当这些指令由设备的处理器执行时使得该设备实现此处所呈现的技术。
可以这些方式设计的一种示例性计算机可读介质在图6中示出,其中实现100包括其上编码有计算机可读数据104的计算机可读介质102(例如,CD-R、DVD-R、或硬盘驱动器的盘)。该计算机可读数据104进而包括被配置成根据此处所阐述的原理来操作的一组计算机指令106。在一个此类实施例中,处理器可执行指令106可被配置成执行一种履行以数据集中的一数据集为目标的请求的方法,诸如图4的示例性方法60。在另一此类实施例中,处理器可执行指令106可被配置成执行一种将查询应用于数据存储所存储的数据集的方法,诸如图5的示例性方法80。该计算机可读介质的一些实施例可包括非临时性计算机存储介质(例如,硬盘驱动器、光盘、或闪存设备),其被配置成存储以此方式配置的处理器可执行指令。本领域普通技术人员可设计被配置成根据此处所呈现的技术操作的许多此类计算机可读介质。
此处所讨论的技术可被设计成在许多方面具有变型,并且一些变型可呈现出相对于这些以及其他技术的其他变型的附加优点和/或减少缺点。此外,一些变型可组合实现,并且一些组合可表征通过相互协作而得到的附加优点和/或减少的缺点。各种变型可被合并到各个实施例中(例如,图4的示例性方法60和图5的示例性方法80)中,以向此类实施例赋予单独和/或相互促进的优点。
可在这些技术的实施例之间改变的第一方面涉及其中可使用此类技术的情形。作为第一变型,可使用许多类型的数据存储18(和/或计算节点42)来将查询14和请求44应用于数据集20。作为一个此类示例,数据存储18和/或计算节点42可包括不同的硬件设备(例如,不同的机器或计算机)、在特定硬件设备内操作的不同电路(例如,现场可编程门阵列(FPGA))、或在特定硬件设备的一个或多个处理器上的一个或多个计算环境内执行的软件过程(例如,单独的线程)。数据存储18和/或计算节点42还可包括虚拟过程,诸如可在设备集合的各个设备上增量式地执行的分布式过程。另外,相应数据存储18可将包括数据集20的数据项52存储在内部,或者可访问将数据项52存储在内部(例如,与数据存储层或设备通过接口连接的数据访问层或设备)的其他数据存储18。作为第二变型,可使用此处所呈现的技术来访问许多类型的数据集20,诸如数据库、文件系统、媒体库、电子邮件邮箱、对象系统中的对象集、或此类数据集20的组合。类似地,许多类型的数据项52可存储在数据集20中。作为第三变型,使用此处所呈现的技术来评估的查询14和/或请求44可用许多方式指定。例如,查询14可根据结构化查询语言(SQL)变量来指定,作为语言集成查询(例如,LINQ查询)、或者被配置成执行对数据集20内的数据项52的各种操纵的可解释脚本或可执行对象。请求44还可以各种方式指定,例如,简单地指定要包括在经过滤的数据子集58中的带索引的属性24以及此类属性24的一个或多个值。尽管请求44限于指定要包括在经过滤的数据子集58中的数据项52的一个或多个过滤准则54,但由此将查询14和请求44格式化的语言、句法、和/或协议不会显著地影响此处所呈现技术的应用或实现。
可在这些技术的实施例之间改变的第二方面涉及数据存储18将数据项52存储在数据集20中。作为第一变型,数据存储18可包括可与一个或多个过滤准则54(例如,特定属性24,以使包含属性24的一个或多个值的记录26要包括在经过滤的数据子集58中)相对应的至少一个索引。数据存储18可被配置成在接收到数据项52之后,根据过滤准则54(例如,根据可被过滤准则54作为目标的数据项52的一个或多个属性24的值)索引在该索引中的数据项。数据存储18随后能够通过使用与过滤准则54相对应的索引来标识满足请求44的过滤准则54的数据项52,从而履行请求44。选择可能被请求44的过滤准则54作为目标的数据项52的属性24用于索引、以及制止索引数据项52的其他属性24可能是有利的(例如,当数据项52改变时必须维持索引,并且承担此类维持的计算负担以索引不可能作为过滤准则54被包括在内的属性24可能是不利的)。例如,在被配置成跟踪由各个用户在各个时间执行的事件的数据库中,将数据存储18配置成生成和维持用于索引集合的索引可能是合乎需要的,该索引集合包括:指定各个数据项52所表示的事件索引;指定各个数据项52所表示的事件的时间的时间索引;以及指定与各个数据项52所表示的事件相关联的至少一个用户的用户索引。然而,生成和维持用于该数据集20的其他属性24的索引可能是不合乎需要的,诸如在该请求中所涉及的数字资源的统一资源标识符(URI)、在其上可由各个用户和管理员输入关于特定事件的文本评论的评论字段、或涉及在事件中所涉及的大数据集的“泡”(blob)字段(例如,描绘该事件的系统日志或所捕获图像)。
作为该第二方面的另一变型,该索引可以各种方式标识与用于特定过滤准则54的一个或多个特定过滤准则值相关联的数据项52。作为一个此类示例,针对与索引相对应的过滤准则54的过滤准则值,该索引可指定标识具有用于过滤准则54的过滤准则值的数据项的数据项集合。例如,针对过滤准则54的每一过滤准则值,该索引可存储对与过滤准则值相关联的数据项52的一组引用。另外,存储在该索引中的数据项集合可以各种方式访问。例如,该索引可准许增量式地写入数据项集合(例如,通过将数据项52添加到具有过滤准则的过滤准则值的数据项的数据项集合来索引新数据项52),但是可准许只原子地读取数据项集合(例如,针对指定特定过滤准则54的特定过滤准则值的请求44,该索引可读取并呈现整个数据项集合,包括对此类数据项52的整组引用)。作为另一变型,数据存储18可在接收到各个数据项52之后,将数据项52存储在数据项缓冲区中,从而在数据项缓冲区超过数据项缓冲区大小阈值(例如,数据项缓冲区的容量)时,数据存储18可将数据项添加到各个数据项集合,并且腾空数据项缓冲区。
图7呈现表征索引根据索引112来索引的一个或多个数据项集合118中的数据项52的示例性情形110的图示。在该示例性情形110中,数据存储18可接收各个数据项52(例如,一组报告的事件),并且可将此类数据项52存储在数据集20中。具体而言,数据存储18可生成索引112,包括包含对一个或多个数据项集合118的一个或多个数据项52的引用116的一组索引条目114,每一索引条目与过滤准则54的不同过滤准则值(例如,事件发生时日期的月份和年度)相对应。在接收到数据项52之后,数据存储18可标识数据项52的一个或多个过滤准则值,并且可存储对存储在与过滤准则值相对应的索引112的索引条目114中的数据项52的引用。数据存储18随后可将数据项52存储在数据集20中(例如,通过将数据项52追加到记录26的列表)。当用户12将请求44提交给数据存储18(直接地或间接地通过将查询14提交给被配置成从查询14生成指定一个或多个过滤准则54的请求44的计算节点42)时,数据存储18可通过取回与过滤准则值相关联的数据项集合118来履行请求44,并且具体地可通过标识与过滤准则值相对应的数据项集合118的数据项52而标识索引112的索引条目114来这样做。数据存储18随后可使用存储在索引条目114中的引用116来取回数据项集合118的数据项52,并且可发送此类数据项52作为经过滤的数据子集58。以此方式,即使数据项52以任意方式存储在一起,数据存储18也可以有效的方式通过使用与请求44的过滤准则54相对应的索引112来履行请求44。例如,针对过滤准则54的第一过滤准则值,索引112的相应索引条目114可存储对与第二过滤准则54的相应第二过滤准则值相对应的数据项分区的引用。可使用此双层索引技术来存储和/或取回数据项52。例如,存储数据项52可涉及使用索引112来标识与用于数据项52的第一过滤准则54的第一过滤准则值相关联的索引条目114、检查被索引条目114引用的数据项分区以标识与用于数据项52的第二过滤准则54的第二过滤准则值相关联的数据项分区、以及将数据项52存储在该数据项分区中。相反,取回具有第一过滤准则54的特定第一过滤准则值和第二过滤准则54的特定第二过滤准则值的数据项52可涉及使用索引112来标识与第一过滤准则值相关联的索引条目114;检查被索引条目114引用的数据项分区以标识与第二过滤准则值相关联的数据项分区;以及响应于请求44来取回和发送数据项分区。
作为该第二方面的另一变型,数据存储18可将索引配置为一组分区,每一分区包括满足特定过滤准则54的数据项52(或其引用,例如,其中可访问数据项52的存储器引用或URI、或诸如数据表格22的关键字段的关键值之类的数据项52的不同标识符)。例如,数据存储18可生成各个分区,诸如分配为存储具有特定过滤准则54的特定过滤准则值的数据项52的存储器的各个小部分。在接收到数据项52之后,数据存储18可将数据项52存储在相应分区中;并且在接收到指定特定过滤准则54的过滤准则值的请求44之后,数据存储18可使数据项分区存储具有过滤准则的过滤准则值的数据项52,并且发送数据项分区作为经过滤的数据子集58。作为又一变型,可使用两个或更多个索引来根据两个或更多个过滤准则54对数据项进行分组。
图8呈现表征将数据项52划分成相应数据项分区122的示例性情形120的图示。在该示例性情形120中,数据存储18可接收各个数据项52(例如,一组报告的事件),并且可将此类数据项52存储在数据集20中。数据存储18可再次生成索引112(未示出),包括包含对一个或多个数据项集合118的一个或多个数据项52的引用116的一组索引条目114,每一索引条目与过滤准则54的不同过滤准则值(例如,事件发生时的日期的月份和年度)相对应。然而,与图7的示例性情形110相比,在该示例性情形120中,数据项52以根据过滤准则值划分的方式存储。在接收到数据项52之后,数据存储18可标识数据项52的一个或多个过滤准则值,并且可标识与过滤准则值相关联的数据项分区122。数据存储18随后可将数据项52存储在与过滤准则值相对应的数据项分区122中。当用户12将请求44提交给数据存储18(直接地或间接地通过将查询14提交给被配置成从查询14生成指定一个或多个过滤准则54的请求44的计算节点42)时,数据存储18可通过取回与过滤准则值相关联的数据项集合118来履行请求44,并且具体地可通过标识与过滤准则值相对应的数据项分区122来这样做。数据存储18随后可取回整个数据项分区122,并且可将整个数据项分区122发送到用户12。可响应于其他过滤准则54来取回和发送附加数据项分区122(例如,用于特定过滤准则54的两个或更多个过滤准则值、或两个或更多个不同的过滤准则54中的每一个的在替换方案中指定的过滤准则值)。以此方式,数据存储18可以有效的方式通过使用与请求44中所指定的一个或多个过滤准则54相对应的数据项索引122来标识和提供满足过滤准则54的数据项52。本领域普通技术人员可根据此处所呈现的技术来设计存储数据集20的数据项52的许多方式。
在这些技术的实施例之间改变的第三方面涉及将数据存储18和/或计算节点42配置成取回满足请求44的过滤准则54的数据项52。作为第一变型,请求44可包括许多类型的过滤准则54。具体而言,请求44可指定可与包括第二经过滤的数据子集58的数据项52相关的第一经过滤的数据子集58,并且数据存储18可在生成第二经过滤的数据子集58时使用第一经过滤的数据子集58。例如,查询14可涉及指定另一经过滤的数据子集58的请求44(例如,在查询14中“从用户中选择用户名,其中user.id(用户的标识符)在(10、22、53、67)中”,根据呈现为经过滤的数据子集58的一组数字用户ID来过滤请求44)。作为另一变型,查询14可涉及指定第一经过滤的数据子集58的第一请求44,该第一经过滤的数据子集58在指定第二经过滤的数据子集58的第二请求44中引用。例如,在查询14中,“从用户中选择用户名,其中user.id在(根据事件选择用户,其中event.type(事件类型)=12中”,从事件数据表格生成第一经过滤的数据子集58(使用第一请求44,例如,“SET_1=event.type=12”),并且第一经过滤的数据子集58被第二请求44引用(例如,在SET_1中的user.id),从而产生第二经过滤的数据子集58。以此方式,在评估相同查询14时,请求44可引用另一请求44(包括所提供和处理的早期请求44)所生成的经过滤的数据子集58。
作为该第三方面的第二变型,当呈现有包括至少一个过滤准则54的请求44时,数据存储18可被配置成从数据集20取回满足请求44的相应过滤准则54的内容项52(例如,通过使用索引112来标识数据集118和/或数据项分区122,如在图7的示例性情形110和图8的示例性情形120中)。替换地,代替利用索引,数据存储18可取回数据集20的所有数据项52,并且可只发送满足至少一个过滤准则的数据项52(例如,发送到将请求44提交给数据存储18的计算节点42或用户12)。在先前示例中,在接收之后索引数据项52期间实现对数据项52的过滤;但是在后续示例中,在发送数据项52期间实现对数据项52的过滤。例如,为了履行请求44,可能难以实时地过滤所有数据项52。然而,替换地或与使用索引112和/或分区122结合,可使用一些技术来加速对数据项52的实时过滤。
图9呈现表征一种用于实现对数据项52的实时过滤的技术的示例性情形130的图示。在该示例性情形130中,数据存储18从用户12接收指定至少一个过滤准则54的请求44,并且通过提供只包括满足请求44的过滤准则54的数据项52的经过滤的数据子集58来尽力履行请求44。然而,在该示例性情形130中,数据存储18从数据集20取回所有数据项52,并且随后将数据项处理器集合132应用于整个数据项集合52以只标识和提供满足过滤准则54的数据项52。数据项处理器集合132可包括例如数据项处理器集合134,每一数据项处理器具有状态136和至少一个过滤条件(例如,逻辑评估任何特定数据项52以标识是否满足过滤准则54)。数据项处理器134各自可被配置成在接收到数据项52之后,更新数据项处理器134的状态136;以及当数据项处理器134的状态136满足至少一个过滤条件时,数据项处理器134可授权发送数据项52(例如,通过将数据项52包括在经过滤的数据子集58中、或通过将数据项52发送到不同数据项处理器134以供进一步处理)。因此,数据项处理器134可互连并且可作为使用状态机来评估数据项52的实时处理系统互操作因此,数据存储18可在从数据集20取回数据项52之后调用数据项处理器集合132,并且可只发送已被授权由数据项处理器集合132发送的数据项52。以此方式,数据存储18可实现对数据集20的所有数据项52的自组织实时评估以标识和递送满足请求44的过滤准则54的数据项52,而无需生成、维持、或使用索引112或分区122。
作为该第三方面的第三变型,数据存储18可在响应于请求44提供经过滤的数据子集58之前(以及任选地在取回匹配请求44的过滤准则54的数据项18之前),估计经过滤的数据子集58的大小。例如,数据存储18接收到的请求44可涉及响应于请求44来取回和发送的、可占用大量计算资源的相对较大的经过滤的数据子集58。因此,针对从请求者(例如,特定用户12或自动的过程)接收到的请求44,一个实施例可首先估计经过滤的数据子集58的经过滤数据子集大小(例如,经过滤的数据子集58中所包括的记录26或数据项52的总估计量),并且可尽力验证取回该大小的经过滤的数据子集58对请求者是可接受的。因此,一个实施例可被配置成在响应于请求44发送经过滤的数据子集58之前,估计经过滤的数据子集58的经过滤的数据子集大小并将该经过滤的数据子集大小发送给请求者,并且可只在从请求者接收到经过滤的数据子集授权之后进行对经过滤的数据子集58的取回和发送。相反,计算节点42可被配置成在发送指定至少一个过滤准则54的请求44之后且在响应于请求44来接收经过滤的数据子集58之前,从数据存储18接收对经过滤的数据子集58的经过滤的数据子集大小的估计,并且可验证经过滤的数据子集大小(例如,通过将经过滤的数据子集大小呈现给用户12、或通过将经过滤的数据子集大小与可接受的经过滤的数据子集大小阈值进行比较、定义数据存储18和/或网络46的计算资源的可接受利用率)。如果所估计的经过滤的数据子集大小是可接受的,则计算节点42可生成经过滤的数据子集授权并将其发送到数据存储18,并且随后可接收经过滤的数据子集58。本领域普通技术人员可设计将数据存储18和/或数据节点42配置成根据此处所呈现的技术从数据集20取回数据项52的许多方式。
虽然已用结构特征和/或方法动作专用的语言描述了本主题,但是应当理解,所附权利要求书中所定义的主题不必限于以上所描述的具体特征或动作。相反,以上所描述的具体特征和动作是作为实现权利要求书的示例形式公开的。
如在本申请中所使用的,术语“组件”、“模块”、“系统”、“接口”等一般旨在表示计算机相关的实体,该实体可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是,但不限于,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序、和/或计算机。作为说明,在控制器上运行的应用和控制器都可以是组件。一个或多个组件可驻留在过程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多个计算机之间。
此外,所要求保护的主题可使用产生控制计算机以实现所公开的主题的软件、固件、硬件、或其任意组合的标准编程和/或工程技术来实现为方法、装置、或制品。如此处所使用的术语“制品”旨在涵盖可从任何计算机可读设备、载体、或介质进行访问的计算机程序。当然,本领域技术人员应当认识到,在不背离所要求保护的主题的范围或精神的情况下可对该配置作出许多修改。
图10和以下讨论提供了对实现此处所阐述的一个或多个原理的实施例的合适计算环境的简要、概括描述。图10的操作环境只是合适的操作环境的一个示例,而不旨在对该操作环境的使用范围或功能提出任何限制。示例计算设备包括但不限于,个人计算机、服务器计算机、手持式或膝上型设备、移动设备(诸如移动电话、个人数字助理(PDA)、媒体播放器等)、多处理器系统、消费电子产品、小型计算机、大型计算机、包括任何以上系统或设备中的任一个的分布式计算环境等。
虽然并非必需,但是实施例在由一个或多个计算设备执行的“计算机可读指令”的一般上下文中进行描述。计算机可读指令可经由计算机可读介质来分发(在下文中讨论)。计算机可读指令可被实现为执行特定任务或实现特定抽象数据类型的程序模块,诸如函数、对象、应用程序编程接口(API)、数据结构等。通常,计算机可读指令的功能可按需在各种环境中组合或分布。
图10示出包括被配置成实现此处所提供的一个或多个实施例的计算设备142的系统140的示例。在一种配置中,计算设备142包括至少一个处理单元146和存储器148。取决于计算设备的确切配置和类型,存储器148可以是易失性的(例如诸如RAM)、非易失性的(例如诸如ROM、闪存等)、或两者的一些组合。该配置在图10中由虚线144示出。
在其他实施例中,设备142可包括附加特征和/或功能。例如,设备142还可包括附加存储(例如,可移动和/或不可移动),包括但不限于磁存储、光存储等。此类附加存储在图10中由存储150示出。在一个实施例中,实现此处所提供的一个或多个实施例的计算机可读指令可位于存储150中。存储150还可储存实现操作系统、应用程序等其他计算机可读指令。可将计算机可读指令加载到存储器148中,以供例如处理单元146执行。
如此处所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器148和存储150都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可用于存储所需信息且可由设备142访问的任何其他介质。任何此类计算机存储介质可以是设备142的一部分。
设备142还可包括允许该设备142与其他设备进行通信的通信连接156。通信连接156可包括但不限于,调制解调器、网络接口卡(NIC)、集成网络接口、射频发射机/接收机、红外线端口、USB连接、或用于将计算设备142连接到其他计算设备的其他接口。通信连接156可包括有线连接或无线连接。通信连接156可发送和/或接收通信媒体。
术语“计算机可读介质”可包括通信介质。通信介质通常以诸如载波或其他传输机制之类的“已调制数据信号”来体现计算机可读指令或其他数据,并且包括任何信息传送介质。术语“已调制数据信号”可包括以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。
设备142可包括输入设备154,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外照相机、视频输入设备、和/或任何其他输入设备。在设备142中还可包括输出设备152,诸如一个或多个显示器、扬声器、打印机、和/或任何其他输出设备。输入设备154和输出设备152可经由有线连接、无线连接、或其任何组合连接到设备142。在一个实施例中,来自另一计算设备的输入设备或输出设备可用作计算设备142的输入设备154或输出设备152。
计算设备142的组件可通过诸如总线之类的各种互连来连接。此类互连可包括诸如PCI Express之类的外围部件互连(PCI)、通用串行总线(USB)、火线(IEEE 1394)、光学总线结构等。在另一实施例中,计算设备142的组件可通过网络来互连。例如,存储器148可由位于通过网络互连的不同物理位置的多个物理存储器单元组成。
本领域技术人员应当认识到,用于存储计算机可读指令的存储设备可分布在网络上。例如,可经由网络158访问的计算设备160可存储实现此处所提供的一个或多个实施例的计算机可读指令。计算设备142可访问计算设备160,并且下载部分或全部计算机可读指令以供执行。替换地,计算设备142可按需下载计算机可读指令的片断,或者一些指令可在计算设备142处执行,而一些指令则可在计算设备160处执行。
在本文中提供了实施例的各种操作。在一个实施例中,所描述的操作中的一个或多个可组成储存在一个或多个计算机可读介质上的计算机可读指令,这些指令如果由计算设备执行,则将使得计算设备执行所描述的操作。描述部分或全部操作的次序不应被解释为暗示了这些操作必须依赖的次序。从本说明书获益的本领域技术人员应当理解替换的排序。此外,应该理解,并非所有的操作都必须存在于本文中所提供的每一实施例中。
此外,本文中所使用的词语“示例性”意指用作示例、实例或说明。在本文中描述为“示例性”的任何方面或设计并不一定被解释为比其他方面或设计有利。相反,使用词语“示例性”旨在以具体的方式呈现各个概念。如本申请中所使用的,术语“或”意指包括性“或”而非互斥性“或”。即,除非另有指定或从上下文中清晰可见,否则“X使用A或B”意指任何自然的包括性排列。即,如果X使用A;X使用B;或X使用A和B两者,则在任何以上情况下,都满足“X使用A或B”。另外,本申请中和所附权利要求书中所使用的冠词“一”和“一个”一般可被解释为意指“一个或多个”,除非另有指定或从上下文中清晰可见是指单数形式。
同样,虽然已参考一个或多个实现示出并描述了本发明,但是本领域的其他技术人员基于对本说明书和附图的阅读和理解应当想到各种等效替换和修改。本发明包括所有此类修改和替换,并且只由所附权利要求书的范围来限定。具体来说,对于由上述组件(例如,元素、资源等)执行的各种功能,除非另外指明,否则用于描述此类组件的术语旨在对应于执行所描述的执行此处在本发明的示例性实现中所示的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。另外,尽管可相对于若干实现中的仅一个实现来公开本发明的一个特定特征,但此类特征可如对任何给定或特定应用所需且有利地与其他实现的一个或多个其它特征相组合。此外,就在说明书或权利要求书中使用术语“包含”、“具有”、“含有”和“带有”及其变体而言,此类术语旨在以与术语“包括”相似的方式为包含性的。

Claims (15)

1.一种履行以具有处理器(146)的数据存储(18)上的数据集(20)为目标的请求(44)的方法(60),所述方法(60)包括:
在所述处理器(146)上执行(64)指令(106),所述指令被配置成:
在接收到数据项(52)之后,将所述数据项(52)存储在所述数据集(20)中;以及
在接收到(68)指定至少一个过滤准则(54)的请求(44)之后:
取回(70)满足所述至少一个过滤准则(54)的所述数据集(20)的数据项(52)以生成经过滤的数据子集(58),以及
响应于所述请求(44),发送(72)所述经过滤的数据子集(58)。
2.如权利要求1所述的方法,其特征在于,
所述数据存储包括用于至少一个过滤准则的至少一个索引;
所述指令被配置成在接收到所述数据项之后,根据至少一个过滤准则索引至少一个索引中的所述数据项;以及
取回满足所述至少一个过滤准则的所述数据集的数据项包括:针对相应过滤准则,通过使用与所述过滤准则相对应的索引,标识满足所述过滤准则的数据项。
3.如权利要求2所述的方法,其特征在于,针对与所述索引相对应的过滤准则的过滤准则值,所述索引指定标识具有所述过滤准则的过滤准则值的数据项的数据项集合。
4.如权利要求3所述的方法,其特征在于,
索引所述至少一个索引中的数据项包括:针对相应过滤准则,将所述数据项添加到具有所述过滤准则的过滤准则值的数据项的数据项集合;以及
标识满足具有过滤准则值的过滤准则的所述数据项包括:取回具有所述过滤准则的过滤准则值的数据项的数据项集合。
5.如权利要求4所述的方法,其特征在于,
所述数据存储具有被配置成存储接收到的数据项的数据项缓冲区;以及
存储所述数据项包括:当存储在所述数据项缓冲区中的数据项超过数据项缓冲区大小阈值时:
将所述数据项缓冲区的相应数据项添加到所述数据项集合中,以及
腾空所述数据项缓冲区。
6.如权利要求3所述的方法,其特征在于,
所述数据存储包括被配置成存储具有过滤准则的过滤准则值的数据项的至少一个数据项分区;以及
取回满足所述至少一个过滤准则的所述数据集的数据项包括:针对相应过滤准则的至少一个过滤准则值,取回存储在所述数据项分区中的数据项,所述数据项分区存储具有所述过滤准则的过滤准则值的数据项。
7.如权利要求6所述的方法,其特征在于,所述指令被配置成在接收到数据项之后:
标识与所述索引相对应的至少一个过滤准则的至少一个过滤准则值;
标识存储具有所述过滤准则的过滤准则值的数据项的数据项分区;以及
将所述数据项存储在所述数据项分区中。
8.如权利要求6所述的方法,其特征在于,
所述数据存储包括:
至少一个数据项分区,被配置成存储具有第一过滤准则的第一过滤准则值和第二过滤准则的第二过滤准则值的数据项;以及
至少一个索引,被配置成针对具有所述第一过滤准则的第一过滤准则值的数据项,标识存储同样具有所述第二过滤准则的相应第二过滤准则值的数据项的相应数据项分区。
9.如权利要求1所述的方法,其特征在于,
所述请求指定第一经过滤的数据子集,以用于生成所述经过滤的数据子集;以及
取回所述数据集的数据项包括:取回满足所述至少一个过滤准则的所述数据集的数据项且使用所述第一经过滤的数据子集来生成经过滤的数据子集。
10.如权利要求1所述的方法,取回所述数据项包括:
取回所述数据集的所有数据项;以及
只发送满足所述至少一个过滤准则的数据项。
11.如权利要求10所述的方法,其特征在于,
所述数据存储包括数据项处理器集合,所述数据项处理器集合包括具有状态和至少一个过滤条件的至少一个数据项处理器,并且所述至少一个数据项处理器被配置成:
在接收到数据项之后,更新所述数据项处理器的状态;以及
在所述数据项处理器的状态满足所述至少一个过滤条件之后,授权发送所述数据项;以及
只发送满足所述至少一个过滤准则的数据项包括:
将相应数据项提供给所述数据项处理器集合,以及
发送由所述数据项处理器集合授权发送的数据项。
12.如权利要求1所述的方法,其特征在于,
从请求者接收所述请求;以及
所述指令被配置成,在发送所述经过滤的数据子集之前:
估计所述经过滤的数据子集的经过滤的数据子集大小;
将所述经过滤的数据子集大小发送给所述请求者;以及
在从所述请求者接收到经过滤的数据子集授权之后,响应于所述请求发送所述经过滤的数据子集。
13.一种将查询(14)应用于由数据存储(18)存储的数据集(20)的方法(80),所述方法(80)由具有处理器(146)的设备(142)执行,并且包括:
在所述处理器(146)上执行(84)指令(106),所述指令被配置成:
从所述查询(14)生成(86)指定至少一个过滤准则(54)的请求(44);
将所述请求(44)发送到(88)所述数据存储(18);以及
在响应于所述请求(44)从所述数据存储(18)接收到经过滤的数据子集(58)之后,将所述查询(14)应用于(90)所述经过滤的数据子集(58)。
14.如权利要求13所述的方法,其特征在于,
所述查询包括:
第一过滤准则生成第一经过滤的数据子集,以及
第二过滤准则使用所述第一经过滤的数据子集来生成第二经过滤的数据子集;
生成所述请求包括:生成指定根据所述第一过滤准则值过滤的所述第一数据子集的第一请求;
将所述请求发送到所述数据存储包括:将所述第一请求发送到所述数据存储;以及
应用所述查询包括:
在响应于所述第一请求从所述数据存储接收所述第一经过滤的数据子集之后:
生成指定根据所述第二过滤准则过滤的所述第二数据子集且使用所述第一经过滤的数据子集的第二请求;以及
将所述第二请求发送到所述数据存储;以及
在响应于所述第二请求从所述数据存储接收所述第二经过滤的数据子集之后,将所述查询应用于所述第二经过滤的数据子集。
15.如权利要求13所述的方法,所述指令被配置成在从所述数据存储接收所述经过滤的数据子集之前:
从所述数据存储接收所述经过滤的数据子集的经过滤的数据子集大小;
验证所述经过滤的数据子集大小以生成经过滤的数据子集授权;以及
在生成经过滤的数据子集授权之后,将所述经过滤的数据子集授权发送到所述数据存储。
CN201110446021.2A 2010-12-28 2011-12-27 过滤数据存储上的查询数据 Active CN102682052B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/979,467 2010-12-28
US12/979,467 US10311105B2 (en) 2010-12-28 2010-12-28 Filtering queried data on data stores

Publications (2)

Publication Number Publication Date
CN102682052A true CN102682052A (zh) 2012-09-19
CN102682052B CN102682052B (zh) 2015-08-19

Family

ID=46318296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110446021.2A Active CN102682052B (zh) 2010-12-28 2011-12-27 过滤数据存储上的查询数据

Country Status (7)

Country Link
US (2) US10311105B2 (zh)
EP (1) EP2659403A4 (zh)
JP (1) JP5990192B2 (zh)
CN (1) CN102682052B (zh)
CA (1) CA2822900C (zh)
HK (1) HK1174111A1 (zh)
WO (1) WO2012092224A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257987A (zh) * 2012-12-30 2013-08-21 北京讯鸟软件有限公司 基于规则的分布式日志服务实现方法
CN104679813A (zh) * 2013-11-28 2015-06-03 三星电子株式会社 数据储存设备、数据储存方法和数据储存系统
CN106062739A (zh) * 2013-11-12 2016-10-26 皮沃塔尔软件公司 动态流计算拓扑
CN106462591A (zh) * 2014-03-27 2017-02-22 微软技术许可有限责任公司 使用存储器中的智能索引的分区过滤
CN107004016A (zh) * 2014-11-28 2017-08-01 微软技术许可有限责任公司 有效的数据操纵支持
CN107451204A (zh) * 2017-07-10 2017-12-08 阿里巴巴集团控股有限公司 一种数据查询方法、装置及设备
CN108351806A (zh) * 2015-09-28 2018-07-31 亚马逊技术有限公司 分布式基于流的数据库触发器
CN108920602A (zh) * 2018-06-28 2018-11-30 北京京东尚科信息技术有限公司 用于输出信息的方法和装置

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8918388B1 (en) * 2010-02-26 2014-12-23 Turn Inc. Custom data warehouse on top of mapreduce
US20130091266A1 (en) 2011-10-05 2013-04-11 Ajit Bhave System for organizing and fast searching of massive amounts of data
US10534606B2 (en) 2011-12-08 2020-01-14 Oracle International Corporation Run-length encoding decompression
US9697174B2 (en) 2011-12-08 2017-07-04 Oracle International Corporation Efficient hardware instructions for processing bit vectors for single instruction multiple data processors
US9792117B2 (en) 2011-12-08 2017-10-17 Oracle International Corporation Loading values from a value vector into subregisters of a single instruction multiple data register
US9600522B2 (en) * 2012-08-20 2017-03-21 Oracle International Corporation Hardware implementation of the aggregation/group by operation: filter method
US9563658B2 (en) 2012-08-20 2017-02-07 Oracle International Corporation Hardware implementation of the aggregation/group by operation: hash-table method
US9727606B2 (en) 2012-08-20 2017-08-08 Oracle International Corporation Hardware implementation of the filter/project operations
CN103034678A (zh) * 2012-11-01 2013-04-10 沈阳建筑大学 一种基于Voronoi图的反k最近邻查询方法
US9152671B2 (en) * 2012-12-17 2015-10-06 General Electric Company System for storage, querying, and analysis of time series data
US8694503B1 (en) * 2013-07-31 2014-04-08 Linkedin Corporation Real-time indexing of data for analytics
US11113054B2 (en) 2013-09-10 2021-09-07 Oracle International Corporation Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression
US9606921B2 (en) 2013-09-21 2017-03-28 Oracle International Corporation Granular creation and refresh of columnar data
US9886310B2 (en) * 2014-02-10 2018-02-06 International Business Machines Corporation Dynamic resource allocation in MapReduce
US9892164B2 (en) 2015-01-30 2018-02-13 International Business Machines Corporation Reducing a large amount of data to a size available for interactive analysis
US10073885B2 (en) 2015-05-29 2018-09-11 Oracle International Corporation Optimizer statistics and cost model for in-memory tables
US10067954B2 (en) 2015-07-22 2018-09-04 Oracle International Corporation Use of dynamic dictionary encoding with an associated hash table to support many-to-many joins and aggregations
US10565209B2 (en) * 2015-12-01 2020-02-18 International Business Machines Corporation Injecting outlier values
US10061714B2 (en) 2016-03-18 2018-08-28 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors
US10055358B2 (en) 2016-03-18 2018-08-21 Oracle International Corporation Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors
US10402425B2 (en) 2016-03-18 2019-09-03 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors
US10061832B2 (en) 2016-11-28 2018-08-28 Oracle International Corporation Database tuple-encoding-aware data partitioning in a direct memory access engine
US11188542B2 (en) * 2016-05-03 2021-11-30 Salesforce.Com, Inc. Conditional processing based on data-driven filtering of records
US10599488B2 (en) 2016-06-29 2020-03-24 Oracle International Corporation Multi-purpose events for notification and sequence control in multi-core processor systems
US10380058B2 (en) 2016-09-06 2019-08-13 Oracle International Corporation Processor core to coprocessor interface with FIFO semantics
US10783102B2 (en) 2016-10-11 2020-09-22 Oracle International Corporation Dynamically configurable high performance database-aware hash engine
US10176114B2 (en) 2016-11-28 2019-01-08 Oracle International Corporation Row identification number generation in database direct memory access engine
US10459859B2 (en) 2016-11-28 2019-10-29 Oracle International Corporation Multicast copy ring for database direct memory access filtering engine
US10725947B2 (en) 2016-11-29 2020-07-28 Oracle International Corporation Bit vector gather row count calculation and handling in direct memory access engine
US11157690B2 (en) 2017-02-22 2021-10-26 Microsoft Technology Licensing, Llc Techniques for asynchronous execution of computationally expensive local spreadsheet tasks
US10725799B2 (en) * 2017-02-22 2020-07-28 Microsoft Technology Licensing, Llc Big data pipeline management within spreadsheet applications
US10997177B1 (en) 2018-07-27 2021-05-04 Workday, Inc. Distributed real-time partitioned MapReduce for a data fabric
CN111163056B (zh) * 2019-12-06 2021-08-31 西安电子科技大学 一种针对MapReduce计算的数据保密方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050038784A1 (en) * 2001-02-27 2005-02-17 Oracle International Corporation Method and mechanism for database partitioning
US6931389B1 (en) * 1997-10-14 2005-08-16 International Business Machines Corporation System and method for filtering query statements from multiple plans and packages according to user-defined filters of query explain data
US20080288524A1 (en) * 2007-05-18 2008-11-20 Microsoft Corporation Filtering of multi attribute data via on-demand indexing
US20090125482A1 (en) * 2007-11-12 2009-05-14 Peregrine Vladimir Gluzman System and method for filtering rules for manipulating search results in a hierarchical search and navigation system

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421008A (en) * 1991-11-08 1995-05-30 International Business Machines Corporation System for interactive graphical construction of a data base query and storing of the query object links as an object
US5560007A (en) * 1993-06-30 1996-09-24 Borland International, Inc. B-tree key-range bit map index optimization of database queries
US5584024A (en) * 1994-03-24 1996-12-10 Software Ag Interactive database query system and method for prohibiting the selection of semantically incorrect query parameters
US5787411A (en) * 1996-03-20 1998-07-28 Microsoft Corporation Method and apparatus for database filter generation by display selection
US6493700B2 (en) 1997-10-14 2002-12-10 International Business Machines Corporation System and method for specifying custom qualifiers for explain tables
KR20030047889A (ko) * 2000-05-26 2003-06-18 컴퓨터 어소시에이츠 싱크, 인코포레이티드 데이터베이스 질의를 자동으로 생성하는 시스템 및 방법
US6925608B1 (en) * 2000-07-05 2005-08-02 Kendyl A. Roman Graphical user interface for building Boolean queries and viewing search results
US6785668B1 (en) * 2000-11-28 2004-08-31 Sas Institute Inc. System and method for data flow analysis of complex data filters
US20020174296A1 (en) 2001-01-29 2002-11-21 Ulrich Thomas R. Disk replacement via hot swapping with variable parity
US6778977B1 (en) * 2001-04-19 2004-08-17 Microsoft Corporation Method and system for creating a database table index using multiple processors
US6789071B1 (en) * 2001-04-20 2004-09-07 Microsoft Corporation Method for efficient query execution using dynamic queries in database environments
US20020194166A1 (en) * 2001-05-01 2002-12-19 Fowler Abraham Michael Mechanism to sift through search results using keywords from the results
US7315894B2 (en) 2001-07-17 2008-01-01 Mcafee, Inc. Network data retrieval and filter systems and methods
AU2002322835A1 (en) 2001-08-01 2003-02-17 Kim Updike Methods and apparatus for fairly placing players in bet positions
US7024414B2 (en) * 2001-08-06 2006-04-04 Sensage, Inc. Storage of row-column data
US8868544B2 (en) * 2002-04-26 2014-10-21 Oracle International Corporation Using relational structures to create and support a cube within a relational database system
US7136850B2 (en) * 2002-12-20 2006-11-14 International Business Machines Corporation Self tuning database retrieval optimization using regression functions
US7584264B2 (en) 2003-08-19 2009-09-01 Google Inc. Data storage and retrieval systems and related methods of storing and retrieving data
US20070078826A1 (en) * 2005-10-03 2007-04-05 Tolga Bozkaya Analytic enhancements to model clause in structured query language (SQL)
US20050131893A1 (en) * 2003-12-15 2005-06-16 Sap Aktiengesellschaft Database early parallelism method and system
US20050192942A1 (en) * 2004-02-27 2005-09-01 Stefan Biedenstein Accelerated query refinement by instant estimation of results
US7299220B2 (en) * 2004-03-31 2007-11-20 Microsoft Corporation Constructing database object workload summaries
US7650331B1 (en) 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
US7756881B2 (en) * 2006-03-09 2010-07-13 Microsoft Corporation Partitioning of data mining training set
JP4696011B2 (ja) * 2006-03-24 2011-06-08 パナソニック株式会社 グラビア塗工装置
US7461050B2 (en) * 2006-03-30 2008-12-02 International Business Machines Corporation Methods of cost estimation using partially applied predicates
US20070250470A1 (en) * 2006-04-24 2007-10-25 Microsoft Corporation Parallelization of language-integrated collection operations
US8555288B2 (en) * 2006-05-17 2013-10-08 Teradata Us, Inc. Managing database utilities to improve throughput and concurrency
US7624118B2 (en) * 2006-07-26 2009-11-24 Microsoft Corporation Data processing over very large databases
US7962442B2 (en) * 2006-08-31 2011-06-14 International Business Machines Corporation Managing execution of a query against selected data partitions of a partitioned database
US8700579B2 (en) * 2006-09-18 2014-04-15 Infobright Inc. Method and system for data compression in a relational database
GB0625641D0 (en) 2006-12-21 2007-01-31 Symbian Software Ltd Dynamic filtering for partially trusted servers
JP2008181243A (ja) * 2007-01-23 2008-08-07 Hitachi Ltd ストレージシステムのキャッシュパーティション領域の設定を制御するデータベース管理システム
US8156107B2 (en) * 2007-02-02 2012-04-10 Teradata Us, Inc. System and method for join-partitioning for local computability of query over shared-nothing clusters
US20080201303A1 (en) 2007-02-20 2008-08-21 International Business Machines Corporation Method and system for a wizard based complex filter with realtime feedback
US20090006347A1 (en) * 2007-06-29 2009-01-01 Lucent Technologies Inc. Method and apparatus for conditional search operators
US7895151B2 (en) * 2008-06-23 2011-02-22 Teradata Us, Inc. Fast bulk loading and incremental loading of data into a database
US8250088B2 (en) * 2007-10-05 2012-08-21 Imation Corp. Methods for controlling remote archiving systems
US8386508B2 (en) * 2008-04-28 2013-02-26 Infosys Technologies Limited System and method for parallel query evaluation
JP4207096B2 (ja) 2008-06-12 2009-01-14 株式会社日立製作所 データベース管理方法
US8364751B2 (en) * 2008-06-25 2013-01-29 Microsoft Corporation Automated client/server operation partitioning
US8041714B2 (en) 2008-09-15 2011-10-18 Palantir Technologies, Inc. Filter chains with associated views for exploring large data sets
CN102203773B (zh) * 2008-09-19 2014-03-19 甲骨文国际公司 在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接
EP2169563A1 (en) * 2008-09-26 2010-03-31 Siemens Aktiengesellschaft Method for performing a database query in a relational database
US8478775B2 (en) 2008-10-05 2013-07-02 Microsoft Corporation Efficient large-scale filtering and/or sorting for querying of column based data encoded structures
US7917463B2 (en) * 2008-10-10 2011-03-29 Business.Com, Inc. System and method for data warehousing and analytics on a distributed file system
US20100121869A1 (en) * 2008-11-07 2010-05-13 Yann Le Biannic Normalizing a filter condition of a database query
US10831724B2 (en) * 2008-12-19 2020-11-10 Bmc Software, Inc. Method of reconciling resources in the metadata hierarchy
US8533181B2 (en) * 2009-04-29 2013-09-10 Oracle International Corporation Partition pruning via query rewrite
US8103638B2 (en) * 2009-05-07 2012-01-24 Microsoft Corporation Partitioning of contended synchronization objects
CN101963965B (zh) * 2009-07-23 2013-03-20 阿里巴巴集团控股有限公司 基于搜索引擎的文档索引方法、数据查询方法及服务器
US9135299B2 (en) * 2009-09-01 2015-09-15 Teradata Us, Inc. System, method, and computer-readable medium for automatic index creation to improve the performance of frequently executed queries in a database system
US8874600B2 (en) * 2010-01-30 2014-10-28 International Business Machines Corporation System and method for building a cloud aware massive data analytics solution background
JP5593792B2 (ja) * 2010-03-31 2014-09-24 富士通株式会社 Raid装置、記憶制御方法、および、記憶制御プログラム
US8606756B2 (en) * 2010-04-09 2013-12-10 Ca, Inc. Distributed system having a shared central database
US8386471B2 (en) * 2010-05-27 2013-02-26 Salesforce.Com, Inc. Optimizing queries in a multi-tenant database system environment
US20120011144A1 (en) * 2010-07-12 2012-01-12 Frederik Transier Aggregation in parallel computation environments with shared memory
US8392399B2 (en) * 2010-09-16 2013-03-05 Microsoft Corporation Query processing algorithm for vertically partitioned federated database systems
US8413145B2 (en) * 2010-09-30 2013-04-02 Avaya Inc. Method and apparatus for efficient memory replication for high availability (HA) protection of a virtual machine (VM)
US8818989B2 (en) * 2010-11-30 2014-08-26 International Business Machines Corporation Memory usage query governor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931389B1 (en) * 1997-10-14 2005-08-16 International Business Machines Corporation System and method for filtering query statements from multiple plans and packages according to user-defined filters of query explain data
US20050038784A1 (en) * 2001-02-27 2005-02-17 Oracle International Corporation Method and mechanism for database partitioning
US20080288524A1 (en) * 2007-05-18 2008-11-20 Microsoft Corporation Filtering of multi attribute data via on-demand indexing
US20090125482A1 (en) * 2007-11-12 2009-05-14 Peregrine Vladimir Gluzman System and method for filtering rules for manipulating search results in a hierarchical search and navigation system

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257987A (zh) * 2012-12-30 2013-08-21 北京讯鸟软件有限公司 基于规则的分布式日志服务实现方法
CN106062739A (zh) * 2013-11-12 2016-10-26 皮沃塔尔软件公司 动态流计算拓扑
CN106062739B (zh) * 2013-11-12 2020-02-28 皮沃塔尔软件公司 动态流计算拓扑
US10210196B2 (en) 2013-11-28 2019-02-19 Samsung Electronics Co., Ltd. Data storage device having internal hardware filter, data storage method and data storage system
CN104679813A (zh) * 2013-11-28 2015-06-03 三星电子株式会社 数据储存设备、数据储存方法和数据储存系统
CN104679813B (zh) * 2013-11-28 2019-05-31 三星电子株式会社 数据储存设备、数据储存方法和数据储存系统
CN106462591A (zh) * 2014-03-27 2017-02-22 微软技术许可有限责任公司 使用存储器中的智能索引的分区过滤
CN106462591B (zh) * 2014-03-27 2020-06-19 微软技术许可有限责任公司 使用存储器中的智能索引的分区过滤
CN107004016A (zh) * 2014-11-28 2017-08-01 微软技术许可有限责任公司 有效的数据操纵支持
CN107004016B (zh) * 2014-11-28 2021-01-22 微软技术许可有限责任公司 有效的数据操纵支持
CN108351806A (zh) * 2015-09-28 2018-07-31 亚马逊技术有限公司 分布式基于流的数据库触发器
US11258725B2 (en) 2015-09-28 2022-02-22 Amazon Technologies, Inc. Distributed stream-based database triggers
CN108351806B (zh) * 2015-09-28 2022-06-07 亚马逊技术有限公司 分布式基于流的数据库触发器
US11588755B2 (en) 2015-09-28 2023-02-21 Amazon Technologies, Inc. Distributed stream-based database triggers
CN107451204A (zh) * 2017-07-10 2017-12-08 阿里巴巴集团控股有限公司 一种数据查询方法、装置及设备
CN107451204B (zh) * 2017-07-10 2021-01-05 创新先进技术有限公司 一种数据查询方法、装置及设备
CN108920602A (zh) * 2018-06-28 2018-11-30 北京京东尚科信息技术有限公司 用于输出信息的方法和装置
CN108920602B (zh) * 2018-06-28 2021-12-14 北京京东尚科信息技术有限公司 用于输出信息的方法和装置

Also Published As

Publication number Publication date
WO2012092224A3 (en) 2012-10-11
US20120166447A1 (en) 2012-06-28
US10311105B2 (en) 2019-06-04
CA2822900A1 (en) 2012-07-05
HK1174111A1 (zh) 2013-05-31
EP2659403A2 (en) 2013-11-06
CA2822900C (en) 2020-01-07
WO2012092224A2 (en) 2012-07-05
US20190266195A1 (en) 2019-08-29
JP2014502762A (ja) 2014-02-03
EP2659403A4 (en) 2017-06-07
JP5990192B2 (ja) 2016-09-07
CN102682052B (zh) 2015-08-19

Similar Documents

Publication Publication Date Title
CN102682052A (zh) 过滤数据存储上的查询数据
US10089488B2 (en) Systems, methods, and apparatuses for implementing cross-organizational data sharing
CN109997126B (zh) 事件驱动提取、变换、加载(etl)处理
CN109716320A (zh) 用于分布式事件处理系统的图生成
Lublinsky et al. Professional hadoop solutions
CN107247778A (zh) 用于实施可扩展数据存储服务的系统和方法
CN104160381A (zh) 多租户环境中租户特定数据集的管理
US20130173541A1 (en) Database version management system
Achari Hadoop essentials
US20110314085A1 (en) Offline modification of business data
CN104769607B (zh) 利用预定义的查询来过滤视图
Schmutz et al. Service-oriented architecture: an integration blueprint: a real-world SOA strategy for the integration of heterogeneous enterprise systems: successfully implement your own enterprise integration architecture using the trivadis integration architecture blueprint
CA2997071A1 (en) Metadata-driven data management platform
CN103946794A (zh) 数据特征的滚动升级的系统和方法
CN1826599B (zh) 数据处理方法及系统
Challawala et al. MySQL 8 for Big Data: Effective Data Processing with MySQL 8, Hadoop, NoSQL APIs, and Other Big Data Tools
El Aissi et al. Data lake versus data warehouse architecture: A comparative study
US11636124B1 (en) Integrating query optimization with machine learning model prediction
CN102426680A (zh) 使用求散列的逻辑帐户表
US9632837B2 (en) Systems and methods for system consolidation
Balakrishnan et al. Implementing data strategy: design considerations and reference architecture for data-enabled value creation
US11657069B1 (en) Dynamic compilation of machine learning models based on hardware configurations
US20140172955A1 (en) Distributed mobile enterprise application platform
Dhanda Big data storage and analysis
Szafir Digital Transformation Enabled by Big Data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1174111

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

C14 Grant of patent or utility model
C41 Transfer of patent application or patent right or utility model
GR01 Patent grant
TA01 Transfer of patent application right

Effective date of registration: 20150727

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1174111

Country of ref document: HK