[发明专利]用于基于列的数据编码的结构的查询的高效大规模联接无效
申请号: | 200980139991.9 | 申请日: | 2009-09-30 |
公开(公告)号: | CN102171695A | 公开(公告)日: | 2011-08-31 |
发明(设计)人: | C·佩特克勒斯克;A·耐茨 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F17/00 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 钱静芳 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 基于 数据 编码 结构 查询 高效 大规模 联接 | ||
技术领域
本发明一般涉及与对大量数据的查询有关的高效的基于列的联接运算。
背景技术
作为关于常规数据查询系统的背景,当大量数据被存储在数据库中时,如当服务器计算机收集很长时间段内的大量数据记录或事务时,其他计算机有时候希望访问该数据或该数据的目标子集。在这一情况下,其他计算机可经由一个或多个查询运算符来查询所需数据。在这一方面,历史上,关系型数据库已经出于此目的而演变,并且已经被用于此类大规模数据集合,并且已经开发了指示数据库管理软件代表查询客户机从关系型数据库或一组分布式数据库中检索数据的各种查询语言。
传统上,关系型数据库是根据对应于记录的、具有字段的行来组织的。例如,第一行可能包括关于其对应于各列的字段的各种信息(姓名1、年龄1、地址1、性别1等),这些信息定义了该第一行的记录;而第二行可能包括关于第二行的各个字段的各种不同信息(姓名2、年龄2、地址2、性别2等)。然而,客户机对巨大量的数据的常规查询或对本地查询或本地商业智能检索巨大量的数据受到限制,因为它们无法满足实时或近乎实时的要求。尤其是在客户机希望具有来自服务器的最新数据的本地副本的情况下,在给定有限的网络带宽和有限的客户机高速缓存存储的情况下,从服务器传输这样大规模量的数据对于许多应用迄今仍是不切实际的。
作为进一步的背景,由于将不同的行概念化为不同记录对于作为体系结构的一部分的关系型数据库是很方便的,因此由于关系型数据库是如何组织的本质,用于减小数据集大小的技术迄今已聚焦于行。换言之,行信息通过将每一记录的所有字段一起保持在一行上来保存每一记录,并且用于减小聚集数据的大小的传统技术将字段保持在一起来作为编码其自身的一部分。
因此,期望提供一种在数据大小减小和查询处理速度方面达到同时增益的解决方案。除了以产生对大量数据的非常高效的查询的方式来应用压缩之外,还期望在其中可以预期将执行相同或相似查询的查询环境中提供改进的数据查询技术。在这一点上,在其中许多查询根据各种数据密集型应用来运行的环境中当一组分开的查询蕴含了相同或相似的数据或数据子集时,期望试图重复使用结果。
更具体地,在查询处理中,在大多数情况下,查询将蕴含联接多个表以便达到组合来自多个表的结果集的目标的需求。例如,如果销售(sales)数据被存储在销售表中而产品(product)细节被存储在产品表中,则应用可能希望报告按照产品类别来拆分的销售。在SQL中,这可被表达为“select from”构造,如:
Select产品类别,和(数量)from销售内部联接产品on sales.sku=product.sku。
对于以上示例,满足该联接运算的常规方式包括散列联接、合并联接和嵌套循环联接运算。散列联接按照库存单位(SKU)到产品类别来在产品上构建散列结构,并在销售表中查找来自该散列结构的每一SKU。合并联接按照SKU对销售记录和产品表两者进行排序,然后同时扫描这两个集合。嵌套循环联接扫描产品表来寻找销售表中的每一行,即,嵌套循环联接对销售表中的每一行在产品上运行查询。然而,这些常规方式或者不是特别高效的,例如,嵌套循环联接,或者在该过程的前端引入显著的开销,这对于对大量数据的实时查询要求可能是不合需要的。由此,需要用于数据密集型应用环境中的对大量数据的查询的快速且可伸缩算法。
当今的关系型数据库和对应的查询技术的上述缺点仅旨在提供常规系统的一些问题的概览,并且不旨在是穷尽性的。常规系统的其他问题以及此处所描述的各非限制性实施例的对应的益处可以在审阅以下描述后变得更显而易见。
概述
此处提供了简化概述以帮助能够对以下更详细的描述和附图中的示例性、非限制性实施例的各方面有基本或大体的理解。然而,本概述并不旨在作为详尽的或穷尽的概观。相反,本概述的唯一目的是以简化的形式来提出与一些示例性非限制性实施例相关的一些概念,作为以下各实施例的更为详细的描述的序言。
描述了基于列的数据编码的结构的查询的各实施例,这些实施例允许对大规模数据存储的高效查询处理,尤其是关于联接运算。最初,接收根据已经实现实时的非常高效且快速的查询响应的基于列的组织以及各种压缩和数据打包技术来表示数据的压缩结构。除了已经由压缩的面向列的结构实现的快速查询之外,提供了用于存储器中的查询处理的可伸缩的快速算法,该算法构造用于联接运算的辅助数据结构,该辅助数据结构进一步利用了存储器内数据处理和访问的特性,以及压缩数据结构的面向列的特性。
这些和其他实施例在下面将更详细地描述。
附图简述
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200980139991.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:使流体移位的变速器填充件
- 下一篇:矩阵变换器的控制装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置