发明名称 DISCOSQL:结构化查询的分布式处理
摘要 结构化查询,诸如使用结构化查询语言(SQL)编写的结构化查询是用于表示设法从数据集合获得的信息的高效机制。本发明的机制允许使用结构化查询来表示可被并行执行的数据处理以便获得这些处理伴随而来的效率。结构化查询,无论是独立的还是集成到另一程序设计上下文中,都可被翻译成与它们被集成到的程序设计上下文或某种其它高级程序设计语言兼容的或者与这些语言等价的中间形式。该中间翻译形式可使用抽象出可被并行执行的机制的核心命令。这些核心命令包括用于并行地应用函数和并行地分发与联结数据的命令,并且还包括对用于普遍执行的函数的核心命令的聚合。
申请公布号 CN101689196B 申请公布日期 2012.06.20
申请号 CN200880020179.X 申请日期 2008.06.03
申请人 微软公司 发明人 W·D·拉姆塞;R·I·查科恩
分类号 G06F17/30(2006.01)I;G06F17/00(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 上海专利商标事务所有限公司 31100 代理人 顾嘉运;钱静芳
主权项 一种用于从一个或多个结构化查询生成具有并行处理能力的命令的系统,其中所述一个或多个结构化查询被包括在用于生成所述具有并行处理能力的命令的较大的程序设计上下文中,所述系统包括:用于解析所述一个或多个结构化查询以标识输入数据源(40)的装置;用于解析所述一个或多个结构化查询以标识所述输入数据源的模式的装置,所述模式指定来自所述输入数据源的一个或多个数据部分的名称和数据类型;用于将所述一个或多个结构化查询翻译成包括下列至少之一的中间形式的装置:处理命令(210),用于跨一个或多个进程并行地应用所述处理命令指定的函数(220);分发命令(310),用于跨一个或多个进程并行地将数据划分成两个或多个子部分;聚合命令(410),用于跨一个或多个进程并行地组合两个或多个离散的数据集合;联结命令(610),用于跨一个或多个进程并行地将第一联结输入数据的每一段与第二联结输入数据的对应段组合起来;以及叉积命令(710),用于跨一个或多个进程并行地将第一叉积输入数据的每一段与第二叉积输入数据的每一段组合起来;用于如果所述较大的程序设计上下文是用较高级程序设计语言编写的程序代码,则将所述较大的程序设计上下文中原始以该较高级程序设计语言编写的代码与所述中间形式一起编译成针对并行处理来优化的形式的装置;以及用于如果所述较大的程序设计上下文是用脚本语言编写的脚本,则将所述中间形式编译成针对并行处理来优化的形式而将所述较大的程序设计上下文中原始以该脚本语言编写的脚本解释成针对并行处理来优化的形式的装置。
地址 美国华盛顿州