当前位置: 首页 > 专利查询>微软公司专利>正文

DISCOSQL:结构化查询的分布式处理制造技术

技术编号:4626057 阅读:204 留言:0更新日期:2012-04-11 18:40
结构化查询,诸如使用结构化查询语言(SQL)编写的结构化查询是用于表示设法从数据集合获得的信息的高效机制。本发明专利技术的机制允许使用结构化查询来表示可被并行执行的数据处理以便获得这些处理伴随而来的效率。结构化查询,无论是独立的还是集成到另一程序设计上下文中,都可被翻译成与它们被集成到的程序设计上下文或某种其它高级程序设计语言兼容的或者与这些语言等价的中间形式。该中间翻译形式可使用抽象出可被并行执行的机制的核心命令。这些核心命令包括用于并行地应用函数和并行地分发与联结数据的命令,并且还包括对用于普遍执行的函数的核心命令的聚合。

【技术实现步骤摘要】
【国外来华专利技术】背景因为计算设备在全世界的互连性日益增加,这些计算设备所收集和生成的数据以指数速率增长。使用传统方法处理这一数量日益增加的数据的时间因此也将指数增长。对于企业、教育和政府机构以及提供或者消费从数十亿个单独数据点导出的服务的其它机构而言,以高效的方式管理这样大量的数据变得至关紧要。因而,随着所收集和生成的数据量增长,用于存储、管理和操作这些数据的基础设施也需要扩展。传统上,使用容错存储系统和并行处理算法来高效地处理大量数据。容错存储系统使大量数据能够跨数百或甚至数千廉价的存储介质来存储,而不管这些存储介质中至少一个出现故障而使存储在其上的数据无法访问的风险。并行处理或者算法使大量数据能够通过简单地跨廉价的处理设备诸如存在于现代计算硬件中的多核微处理器来划分必要的运算量来得到高效的收集和处理。然而,尽管容错存储系统可按通用方式实现,使得单个容错存储算法可用于存储任何类型的信息,但并行处理算法按其性质是专用于它们所寻求解决的特定问题或者它们所寻求完成的特定任务的。因而,搜索引擎可使用相同的容错存储机制作为气象预报引擎,但明显地它们各自依赖于极为不同的并行处理算法。概述即使对于有经验的程序设计者而言,生成执行并行处理所需的计算指令也是一项令人气馁的任务。例如,为生成可利用并行处理的算法,程序设计者必须考虑数量不断变化的各独立进程,必须标识和划出其算法中可以并行执行的那些方面,以及必须虑及跨进程边界的信息通信,等等。因此,在一个实施例中,普通的结构化查询命令可以翻译成中间形式,从而允许简化从并行处理中受益的算法的生成。该中间形式可充分利用可包含针对并行处理来优化的、可在没有任何并行处理方法的高级知识的情况下使用的若干核心命令的现有技-->术。这些核心命令可基于在并行或分布式计算中普遍使用的操作,诸如将数据划分成各个集合或者“桶(bucket)”中、聚合并行输出、并行地处理数据、以及联结两个并行输出。在一替换实施例中,提供了支持将结构化查询包含在用诸如可提供针对并行处理来优化的核心命令的语言等较高级程序设计语言编写的程序代码中的机制。该结构化查询最初可被翻译成与该较高级程序设计语言兼容的形式,并且这样的翻译可利用针对并行处理来优化的核心命令。接着,可将原始地以该较高级程序设计语言编程的代码与该结构化查询的翻译形式一起编译成针对并行处理来优化的形式。在另一替换实施例中,提供了支持将结构化查询包含在使用诸如可提供针对并行处理来优化的核心命令的脚本语言等脚本语言编写的脚本中的机制。该结构化查询最初可被翻译成中间形式,诸如与一较高级程序设计语言兼容的形式。接着,该结构化查询的翻译形式可被编译成针对并行处理来优化的形式而脚本可解释成针对并行处理来优化的形式。脚本的解释和结构化查询的翻译形式的编译两者都可以引用用于生成针对并行处理来优化的指令的等价库。提供本概述以便用简化形式介绍在下面的详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。通过参考附图阅读以下详细描述,将使其它特征和优点显而易见。附图描述结合附图阅读下面的详细描述将最好地理解它们,附图中:图1是包括多个互连设备的示例性网络的框图,这些互连设备中的一些可并行地执行操作;图2是示例性计算设备的框图;图3是“处理”核心命令的框图;图4是“分发”核心命令的框图;图5是“聚合”核心命令的框图;图6是在“分发”核心命令之后执行的“聚合”核心命令的框图;-->图7是“联结”核心命令的框图;图8是“叉积”核心命令的框图;图9是示出结构化查询的翻译的框图;以及图10是示出对嵌入式结构化查询的支持的框图。详细描述下面的描述涉及提供用于基于一个或多个结构化查询生成针对并行处理来优化的指令的机制。结构化查询可以基于所使用的结构化查询命令来翻译成中间形式。在一个实施例中,中间形式可以包括高级程序设计语言中的指令或者与之兼容,使得中间形式的后续编译可以充分利用预先存在的用于生成针对并行处理来优化的指令的机制。独立的结构化查询首先可翻译成中间形式且随后可编译成可并行地跨多个进程或处理器执行的较低级的计算机可执行指令。在一替换实施例中,结构化查询可以与用高级程序设计语言或者用脚本语言编写的命令和指令合并。与高级程序设计语言指令合并的结构化查询首先可翻译成与高级程序设计语言兼容或者甚至与之等价的形式,且随后经翻译的结构化查询和其它高级程序设计语言指令可编译成针对并行处理来优化的较低级计算机可执行指令。相反,合并到脚本中的结构化查询首先可翻译成与高级程序设计语言兼容的形式,且随后经翻译的结构化查询可编译成针对并行处理来优化的较低级计算机可执行指令,同时支持脚本可解释成针对并行处理来优化的较低级计算机可执行指令。在一个实施例中,结构化查询的翻译形式的解释和支持脚本的编译都可引用等价的较低级计算机可执行指令库。在此描述的技术集中于但非限制于基于结构化查询语言(SQL)语句生成针对并行处理来优化的指令。然而,下面描述的实施例都不使用在用于结构化查询的其它计算机语言中不存在的SQL的任何方面。因此,尽管下面提供的特定示是使用SQL示出的,但在此提供的描述不旨在受此限制。同样,尽管在下面提供的特定示例示出将SQL语句翻译成C#语句,但所依赖的C#计算机程序设计语言的任何方面都可在诸如Visual或C++等大量其它较高级计算机程序设计语言中找到。因而,仅出于说明目的而对C#的使用不意味着将下面的描述限制于任何特定的较高级计算机程序设计语言。-->转到图1,示出示例性网络系统99,它包括网络90本身、客户机计算设备50、文件系统41、以及诸如服务器计算设备10、20和30等多个服务器计算设备,它们都连接到网络90。文件系统41可以在客户机计算设备50、服务器计算设备10、20和30之一或者某个其它计算设备的本地,或者它可以分布在诸如计算设备10、20、30或50等多个计算设备之间。文件系统41可以包括可用作SQL语句60所针对的输入数据40的一个或多个文件。更具体地,SQL语句60可以包含用于对输入数据40进行排序、分类或其它处理的SQL命令。在一个实施例中,SQL语句60可以由翻译器70处理,翻译器70可以产生在图1中由程序80表示的中间形式。程序80可以包含计算机编程命令,包括针对并行处理来优化的核心命本文档来自技高网...

【技术保护点】
一个或多个包含用于从一个或多个结构化查询生成具有并行处理能力的命令的计算机可执行指令的计算机可读介质,所述计算机可执行指令用于下列步骤: 解析所述一个或多个结构化查询以标识输入数据源(40); 解析所述一个或多个结构化查询以标识 所述输入数据源的模式,所述模式指定来自所述输入数据源的一个或多个数据部分的名称和数据类型;以及 将所述一个或多个结构化查询翻译成包括下列至少之一的中间形式:处理命令(210),用于跨一个或多个进程并行地应用所述处理命令指定的函数(22 0);分发命令(310),用于跨一个或多个进程并行地将数据划分成两个或多个子部分;聚合命令(410),用于跨一个或多个进程并行地组合两个或多个离散的数据集合;联结命令(610),用于跨一个或多个进程并行地将第一联结输入数据的每一段与第二联结输入数据的对应段组合起来;以及叉积命令(710),用于跨一个或多个进程并行地将第一叉积输入数据的每一段与第二叉积输入数据的每一段组合起来。

【技术特征摘要】
【国外来华专利技术】US 2007-6-12 11/761,4071.一个或多个包含用于从一个或多个结构化查询生成具有并行处理能力
的命令的计算机可执行指令的计算机可读介质,所述计算机可执行指令用于下
列步骤:
解析所述一个或多个结构化查询以标识输入数据源(40);
解析所述一个或多个结构化查询以标识所述输入数据源的模式,所述模式
指定来自所述输入数据源的一个或多个数据部分的名称和数据类型;以及
将所述一个或多个结构化查询翻译成包括下列至少之一的中间形式:处理
命令(210),用于跨一个或多个进程并行地应用所述处理命令指定的函数
(220);分发命令(310),用于跨一个或多个进程并行地将数据划分成两个
或多个子部分;聚合命令(410),用于跨一个或多个进程并行地组合两个或
多个离散的数据集合;联结命令(610),用于跨一个或多个进程并行地将第
一联结输入数据的每一段与第二联结输入数据的对应段组合起来;以及叉积命
令(710),用于跨一个或多个进程并行地将第一叉积输入数据的每一段与第
二叉积输入数据的每一段组合起来。
2.如权利要求1所述的计算机可读介质,其特征在于,所述一个或多个结
构化查询表示用于生成所述具有并行处理能力的命令的程序设计上下文。
3.如权利要求1所述的计算机可读介质,其特征在于,所述一个或多个结构
化查询被包括在用于生成所述具有并行处理能力的命令的较大的程序设计上
下文中,所述较大的程序设计上下文包含所述处理命令、所述分发命令、所述聚
合命令、所述联结命令和所述叉积命令中的至少一个。
4.如权利要求3所述的计算机可读介质,其特征在于,所述中间形式和所
述较大的程序设计上下文属于同一较高级计算机程序设计语言。
5.如权利要求3所述的计算机可读介质,其特征在于,所述较大的程序设
计上下文是脚本。
6.如权利要求5所述的计算机可读介质,其特征在于,还包括用于根据相
同的库编译所述中间形式和解释所述脚本的计算机可执行指令。
7.如权利要求3所述的计算机可读介质,其特征在于,所述较大的程序设
计上下文的第一部分的输出被指定为所述一个或多个结构化查询的输入,且其...

【专利技术属性】
技术研发人员:WD拉姆塞RI查科恩
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1