在映射缩减过程中汇合表的制作方法

文档序号:6495696阅读:154来源:国知局
在映射缩减过程中汇合表的制作方法
【专利摘要】可以用来在映射缩减过程中汇合表的系统和技术。在一些实现方式中,在大的业务数据表(例如,具有十亿个事务记录或者更多)将与大的客户数据表(例如,具有数亿个客户记录)汇合时,则可以在映射缩减过程之前组织这两个表以加速表汇合。例如,可以基于相同关键字将业务数据和客户数据二者分别哈希分割成业务数据碎片和客户数据碎片。在这两组中的碎片数目相互具有整体关系:例如,从而使得有用于每个客户数据碎片的两个业务数据碎片,或者反之亦然。
【专利说明】在映射缩减过程中汇合表
[0001]相关申请的交叉引用
[0002]本申请要求对通过引用将其全部内容结合于此、名称为“Joining Tables in aMapreduce Procedure”、于2011年4月29日提交的第61/480,563号美国临时申请和名称为 “Joining Tables in a Mapreduce Procedure”、于 2011 年 8 月 15 日提交的第13/209,567号美国申请的优先权。
【技术领域】
[0003]本公开内容涉及在映射缩减(mapreduce)过程中汇合表。
【背景技术】
[0004]在Google公司开发映射缩减模型作为一种用于简化大规模数据处理的方式。根据映射缩减模型完成映射缩减过程的实现方式。

【发明内容】

[0005]实现方式可以提供以下优点中的任何或者所有优点。可以更快完成映射缩减框架中的数据处理。可以减少将为映射缩减过程加载的数据量。可以执行映射缩减过程中的表汇合而不进一步分割数据。更少映射缩减操作可能是必要的,从而导致更少资源使用。可以用加载到存储器中的全部数据或者作为对排序的数据的两个集合的合并汇合执行映射缩减框架中的汇合过程。
[0006]在附图和以下描述中阐述一个或者多个实施例的细节。其它特征和优点将从描述和附图以及从权利要求变得清楚。
【专利附图】

【附图说明】
[0007]图1是示意地示出用于映射缩减过程的分割的示例的框图。
[0008]图2示意地图示预组织来自第一表和第二表的数据的示例。
[0009]图3是具有执行映射缩减操作的示例的流程图。
[0010]图4是可以结合在本文中描述的计算机实施的方法使用的计算系统的框图。
[0011 ] 在各种附图中的相似标号指示相似要素。
【具体实施方式】
[0012]本文描述可以用来在映射缩减过程中汇合表的系统和技术。在一些实现方式中,在大的业务数据表(例如,具有十亿个事务记录或者更多)将与大的客户数据表(例如,具有数亿个客户记录)汇合时,则可以在映射缩减过程之前组织这两个表以加速表汇合。例如,可以基于相同关键字将业务数据和客户数据二者分别哈希分割成业务数据碎片(shard)和客户数据碎片。在这两组中的碎片数目相互具有整体关系:例如从而使得有用于每个客户数据碎片的两个业务数据碎片,或者反之亦然。这一预组织可以减少向存储器中加载的数据量,并且也可以在映射缩减过程内避免一些分割。
[0013]图1示出具有映射缩减框架102的系统100的示例。映射缩减框架102可以用来根据映射缩减模型执行数据处理以例如对大量数据执行某些类型的分析。如在本文中所用,术语“映射缩减框架”指代如下系统,该系统被配置用于执行(i )至少一个映射操作,该操作根据输入数据生成一个或者多个中间关键字/值对;以及(ii)至少一个缩减操作,该操作根据中间关键字/值对生成一个或者多个输出值。
[0014]映射缩减框架在多个程序部件(有时被称为“工作器”)之间划分映射操作并且向每个工作器指派一个或者多个映射任务。映射缩减框架将缩减操作划分成缩减任务并且向工作器指派它们。在一些实现方式中,在处理设备群集(比如商品PC的网络)上运行映射缩减框架。例如,可以建立数据中心,该数据中心具有机架,这些机架具有数万个处理模块(例如,处理模块可以是商品PC或者其部分),并且可以执行映射缩减过程作为在数千个(或者更多)的处理单元之中分布的大规模数据作业。仅举一个示例,映射缩减作业可以涉及到映射和缩减数万亿字节的数据或者更多。
[0015]这里,用户可以运用计算机设备104以通过任何类型的网络106(比如因特网或者用于移动设备的网络(例如,蜂窝电话网络))接入映射缩减框架102。映射缩减处理可以由计算设备上的用户程序108发起。在一些实现方式中,组织可以使用程序108以分析大量业务数据。例如,电信公司(比如无线服务提供商)可以具有参与与公司的许多事务的数亿个客户(例如,可以将无线设备的每次使用注册为事务)。在这样的情形中,用于某个时间段(例如,周、月或者年)的累计业务数据可以达到十亿个记录或者更多。映射缩减过程然后可以在分析业务数据时例如用来对源于具体国家的事务数目或者未成功事务数目计数。在这样的情形中,用户程序108标识待使用的业务数据量,并且定义寻求的标准或者特性。
[0016]在一些实现方式中,配置用户程序108以使得用户可以制定将对作为输入数据110而存储的信息汇集中的一些或者所有信息执行的一个或者多个查询(例如,使用结构化查询语言(SQL))。输入数据可以包括可以在映射缩减框架102中处理的任何适当信息。在一些实现方式中,输入数据110中的一些或者所有数据对应于广告供应组织比如通过记录关联用户的在线请求、通过注册向搜索引擎中录入的查询和/或通过自动爬行(crawl)在因特网上可用的页面而收集的数据。例如而非限制,输入数据110可以对应于网络数据、销售数据、观测数据、科学数据、随机数据、人口数据、艺术数据、统计数据及其组合。以下描述通过预组织其它信息(比如原始数据111)获得输入数据110的示例。
[0017]对于其中这里讨论的系统依赖于关于用户的个人信息(例如,查询历史)的情形,可以向用户提供用于选择加入/决定退出可以收集个人信息的程序或者特征的机会。此夕卜,可以在存储或者使用某些数据之前以一种或者多种方式对其进行匿名化,从而使得去除个人可标识信息。例如,可以对用户的身份进行匿名化,从而使得对于用户不能确定个人可标识信息并且从而使得任何标识的用户偏好或者用户交互被广义化(例如,基于用户人口统计来广义化)而不是与特定用户关联。作为另一示例,可以在预定时间段之后删除查询日志中存储的用户查询。
[0018]输入数据110和原始数据111可以具有适合于映射缩减操作的任何数据格式,包括但不限于二进制数据格式、明文格式、标记语言格式(例如,XML)或者图像格式。
[0019]映射缩减框架102包括映射操作112和缩减操作114。在一些实现方式中,映射操作112被配置用于处理输入数据110中的一些或者所有输入数据并且根据该输入数据生成至少一个中间关键字/值对。在一些实现方式中,缩减操作114被配置用于处理中间关键字/值对的至少部分并且根据该部分生成至少一个输出值。一般而言,映射操作112可以检测多个关键字中的每个关键字在输入数据110中的出现,并且缩减操作114可以将来自这样的检测的数据求和或以其它方式聚合成有用输出信息(例如,出现频率表)。
[0020]可以执行映射操作112和/或缩减操作114作为向一个或者多个处理器分发的任务。在一些实现方式中,映射缩减框架102包括处理单元(比如机器118)的群集116或者以其他方式结合该群集116工作。例如,每个机器118可以是商品设备(例如,PC),并且可以使用任何适当通信协议(例如,以太网)来联网它们。机器118中的每个机器具有在设备中集成的或者通过适当连接(例如,系统总线)通信地耦合到设备的至少一个存储器120。例如,在检测关键字在输入数据110中的出现时和/或在对用于生成输出信息的数据求和时使用存储器120。
[0021]系统100在这里包括执行一个或者多个预组织动作以预组织数据以比如用于后续映射缩减操作的预组织模块122。在一些实现方式中,可以普遍出现的是将汇合某些类型的大表作为映射缩减操作的部分。这样的表可以是原始数据111的部分或者可以被存储于别处。在具体示例中,作为映射缩减操作的部分,超过十亿个记录的事务表(有时被称为“事实表”)将与数亿个的记录的客户表(有时被称为维度表)汇合。简言之,可以向预组织模块122提供原始数据111中的一些或者所有原始数据,该预组织模块转而生成输入数据110中的一些或者所有输入数据作为预组织的结果。术语输入数据在这里表示可以使用数据作为用于映射缩减过程的输入。
[0022]现在也将参照图2描述这样的预组织的示例,该图示意地图示根据第一表202和第二表204预组织数据的示例200。在这里,第一表202被标注为事实表并且可以例如包含十亿个或者更多事务记录。相似地,第二表204在这里被标注为维度数据并且可以例如包含数亿个或者更多的客户记录。将按照在两个表中出现的具体关键字(例如,客户ID)执行在这些表之间的汇合。然而,此时,在示例200中,尚未预组织第一表202和第二表204。
[0023]预组织可以如下例如由预组织模块122 (图1)完成。基于除了汇合关键字之外的某个关键字在不同范围中分割事实表202。在一些实现方式中,可以按照日期关键字或者任何其它与时间有关的关键字完成这一分割。例如,可以将相当于一年的事务数据划分成十二个范围分割,一个范围分割用于每个月份。在这里,将事实表分割成数目为M的范围分割206。也就是说,在具有逐月分割的示例中,范围分割206中的每个范围分割将包含涉及具体月份的事务记录。
[0024]维度表204是按照汇合关键字分割的哈希。在一些实现方式中,选择汇合关键字作为分割关键字,因为预计将在事实表与维度表之间执行汇合。例如,可以在其中预计以后将在汇合表时使用客户ID关键字的情形中使用该关键字哈希分割客户记录。在这里,将维度表204分割成数目为K的哈希碎片208。也就是说,在具有客户记录的示例中,哈希碎片208中的每个碎片将包含涉及具体客户ID组的事务记录。
[0025]在一些实现方式中,可以在哈希分割中使用模数(即a mod b,其中a和b是正数)。例如,假设希望在维度数据中具有250个哈希分割(即,具有K=IOOO)。然后选择来自每个维度数据的唯一值(例如,客户ID),并且在这一示例中关于250对客户ID执行模数。用于每个维度数据记录的结果(即,在客户ID除以250时的余数)可以用来向250个哈希分割之一指派该特定维度数据记录。
[0026]也按照汇合关键字哈希分割范围分割206中的每个范围分割。这生成数目为M的碎片化的范围分割210。在这一示例中,示出用于第一个碎片化的范围分割(即,用于“范围I”)的碎片。也就是说,在数目为N的哈希碎片212之中划分范围分割206的第一范围分割的事实数据,并且对于所有M个碎片化的范围分割210以此类推。
[0027]数目K、M和N为整数。另外,选择数目K和N以使得K和N之一是另一个的整数倍。也就是说,如果按照特定关键字以K种方式碎片化维度数据(例如,客户记录),则可以用N=I*K种方式碎片化事实数据,其中1=1,2,…。由于哈希碎片208和哈希碎片212基于相同关键字(例如,客户ID),所以整数倍关系建立在哈希碎片208与212之间的对应性。例如,如果在事实数据中有哈希碎片212中的500个哈希碎片,并且在维度数据中有哈希碎片208中的250个哈希碎片,则2:1对应性存在。也就是说,对于250个哈希碎片208中的任何任意哈希碎片,由于公共关键字哈希和在整数之间的关系而已知对应事实记录(例如,具有在该特定哈希碎片208中出现的客户ID的事实记录)位于500个哈希碎片212中的确切两个哈希碎片中。
[0028]换言之,对于500个哈希碎片212中的任何任意哈希碎片,已知对应维度数据记录位于250个哈希碎片208中的确切一个哈希碎片中。出于这一原因,涉及到特定哈希碎片212的事务记录的汇合无需访问所有250个哈希碎片208。实际上,只要至少单个对应哈希碎片212可用就可以执行汇合。换言之,用于这一事务哈希碎片的汇合操作仅需从维度数据表加载记录的一部分;并且已知维度数据的该部分位于哈希碎片208中的特定哈希碎片中。
[0029]在一个或者多个操作214中,向映射缩减框架102提供关于碎片化的范围分割210和关于哈希碎片208的元数据。也就是说,这样的元数据在将执行后续映射缩减操作时可用。例如,元数据可以包含如下信息:按照第一关键字将事实表202范围碎片化成数目为M的范围分割206 ;按照第二关键字将`范围分割206中的每个范围分割哈希分割成数目为N的哈希碎片212 ;并且按照第二关键字将维度表204哈希分割成数目为K的哈希碎片208。
[0030]图3是具有执行映射缩减操作的示例的流程图300。可以将操作实施为在有形计算机可读介质上存储的计算机可读代码以用于由例如系统100 (图1)中的一个或者多个处理器执行。
[0031]在310处,接收映射缩减查询。例如,可以生成这样的查询以发起大规模数据处理作业。也接收或者可以已经更早加载或者存储了对应数据,例如,事实表202 (图2)和/或维度表204 (图2)。
[0032]在320处,按照用于第一关键字的值范围过滤事实表。例如,可以基于映射缩减查询加载具有用于四月的所有事务的范围分割,并且可以出于这一映射缩减查询的目的忽略其它范围分割。
[0033]在330-350处对于在相关范围分割中的每个哈希碎片执行操作。在330处,发现维度数据中的对应哈希碎片。例如,基于知道事实数据哈希碎片数目是维度数据哈希碎片数目的某个整数倍来标识哈希碎片。
[0034]在340处,向存储器中加载标识的维度数据碎片。例如,当在群集116 (图1)中的机器之中分发映射操作时,可以向机器中的一个机器上的特定映射操作指派标识的数据碎片,该机器向它的本地存储器中加载维度数据碎片。在这样做时,可以执行过滤操作。例如,如果维度数据包含客户记录并且仅以具体国家为基地的客户对于查询是相关的,则过滤提供向存储器中仅加载具体国家的来自标识的维度数据碎片的客户记录。这样的过滤可以使加载更快和/或减少对于存储器容量的需要。
[0035]在350处,执行汇合。如果维度数据在可用存储器中相配(即,考虑总可用自由存储器),则在哈希表中向存储器中加载数据,并且通过流传输事实数据和查找每个条目来执行汇合。在另一方面,如果事实数据碎片未一次全部在存储器中相配,则用另一方式执行汇合。例如,如果按照汇合关键字对事实和维度碎片排序,则可以打开输入和汇合数据集上的两个指针,并且可以执行合并汇合。否则,可以在流传输事实数据之时用维度数据和向这一结构发出的查找创建盘上结构(比如B树)。在这一情况下,LRU高速缓存经常用来减少盘访问。
[0036]在360处,执行一个或者多个映射缩减操作。在一些实现方式中,每个本地映射器可以处理从汇合可用的数据并且根据数据生成一个或者多个中间关键字/值对,并且在后续缩减操作中,来自这些对的值可以相互合并、聚合或者以其他方式关联以生成一个或者多个有意义的输出值。例如,在映射操作对于与映射缩减查询相关的每个事务配对客户名与销售额时,缩减操作可以在逐个客户的基础上对那些销售额求和并且生成总销售列表。
[0037]在370处,生成对映射缩减查询的响应。在一些实现方式中,标识和存储映射缩减过程的一个或者多个相关输出。例如,可以显示、打印、可听地读取和/或存储报告。
[0038]在一些实现方式中,可以按不同顺序执行流程图300中的一些操作。
[0039]图4是通用计算机系统400的示意图。系统400可以用于根据根据一个实现方式的与先前描述的计算机实施的方法中的任何方法关联地描述的操作。系统400包括处理器410、存储器420、存储设备430和输入/输出设备440。使用系统总线450来互连部件410、420,430和440中的每个部件。处理器410能够处理指令以用于在系统400内执行。在一个实现方式中,处理器410是单线程处理器。在另一实现方式中,处理器410是多线程处理器。处理器410能够处理存储器420中或者存储设备430上存储的指令以在输入/输出设备440上显示用于用户界面的图形信息。
[0040]存储器420存储系统400内的信息。在一些实现方式中,存储器420是计算机可读介质。存储器420在一些实现方式中为易失性存储器单元并且在其它实现方式中为非易失性存储器单元。
[0041]存储设备430能够为系统400提供海量存储。在一个实现方式中,存储设备430是计算机可读介质。在各种不同实现方式中,存储设备430可以是软盘设备、硬盘设备、光盘设备或者带设备。
[0042]输入/输出设备440为系统400提供输入/输出操作。在一个实现方式中,输入/输出设备440包括键盘和/或指点设备。在另一实现方式中,输入/输出设备440包括用于显示图形用户界面的显示单元。
[0043]可以在数字电子电路装置中或者在计算机硬件、固件、软件中或者在它们的组合中实施描述的特征。可以在信息载体中(例如,在机器可读存储设备中)有形地体现的用于由可编程处理器执行的计算机程序产品中实施装置;并且方法步骤可以由可编程处理器执行,可编程处理器执行指令的程序以通过对输入数据操作并且生成输出来执行描述的实现方式的功能。可以有利地在可在可编程系统上执行的一个或者多个计算机程序中实施描述的特征,可编程系统包括至少一个可编程处理器、至少一个输入设备和至少一个输出设备,至少一个可编程处理器被耦合用于从数据存储系统接收数据和指令以及向数据存储系统传输数据和指令。计算机程序是可以在计算机中直接或者间接用来执行某个活动或者产生某个结果的指令集。可以用包括编译或者解译语言的任何形式的编程语言编写计算机程序,并且可以用任何形式部署它,包括作为适合于在计算环境中使用的单独程序或者作为模块、部件、子例程或者其它单元。
[0044]用于执行指令的程序的适当处理器例如包括通用和专用微处理器以及任何种类的计算机的唯一处理器或者多个处理器之一。一般而言,处理器将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的基本单元是用于执行指令的处理器以及用于存储指令和数据的一个或者多个存储器。一般而言,计算机也将包括用于存储数据文件的一个或者多个海量存储设备或者被操作地耦合用于与该一个或者多个海量存储设备通信;这样的设备包括磁盘,比如内部硬盘和可拆卸盘;磁光盘;以及光盘。适合于有形地体现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,例如包括半导体存储器设备,比如EPROM、EEPROM和闪存设备;磁盘,比如内部硬盘和可拆卸盘;磁光盘;以及⑶-ROM和DVD-ROM盘。处理器和存储器可以由ASIC (专用集成电路)补充或者并入于ASIC中。
[0045]为了提供与用户的交互,可以在计算机上实施特征,计算机具有用于向用户显示信息的显示器设备,比如CRT (阴极射线管)或者LCD (液晶显示器)监视器以及用户可以用来向计算机提供输入的键盘和指点设备,比如鼠标或者跟踪球。
[0046]可以在计算机系统中实施特征,计算机系统包括后端部件(比如数据中心),或者包括中间部件(比如应用服务器或者因特网服务器),或者包括前端部件(比如客户端计算机,客户端计算机具有图形用户界面或者因特网浏览器),或者它们的任何组合。系统的部件可以由任何数字数据通信形式或者介质(比如通信网络)连接。通信网络的示例例如包括LAN、WAN以及形成因特网的计算机和网络。
[0047]计算机系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过网络(比如描述的网络)交互。客户端和服务器的关系借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序而产生。
[0048]已经描述了本发明的多个实施例。然而,将理解,可以进行各种修改而未脱离本发明的精神实质和范围。因而,其它实施例在所附权利要求的范围内。
【权利要求】
1.一种用于为映射缩减过程预备第一表和第二表的计算机实施的方法,所述方法包括: 接收具有第一数据的第一表; 在接收所述第一表之时,基于所述第一数据中的第一关键字的范围将所述第一数据按范围分割成范围分割; 基于第二关键字将所述范围分割中的每个范围分割内的所述第一数据哈希分割成第一数目的哈希分割; 接收具有第二数据的第二表; 在接收所述第二表之时,基于所述第二关键字将所述第二数据哈希分割成第二数目的哈希分割,其中所述第一数目和所述第二数目之一是另一个的整数倍;以及 使关于所述范围分割以及所述第一数目和所述第二数目的哈希分割的元数据可用于映射缩减引擎。
2.根据权利要求1所述的计算机实施的方法,其中所述第一关键字是日期或者时间参数,所述方法还包括关联所述范围分割中的每个范围分割与日期范围或者时间范围。
3.根据权利要求1所述的计算机实施的方法,其中所述第一数据对应于业务事务并且所述第二数据是关于所述业务事务中的参与者的文件记录。
4.根据权利要求3所述的计算机实施的方法,其中所述第二关键字是客户标识符。
5.一种在计算机可读存储介质中有形地体现的并且包括指令的计算机程序产品,所述指令在由处理器执行时执行用于为映射缩减`过程预备第一表和第二表的方法,所述方法包括: 接收具有第一数据的第一表; 在接收所述第一表之时,基于所述第一数据中的第一关键字的范围将所述第一数据按范围分割成范围分割; 基于第二关键字将所述范围分割中的每个范围分割内的所述第一数据哈希分割成第一数目的哈希分割; 接收具有第二数据的第二表; 在接收所述第二表之时,基于所述第二关键字将所述第二数据哈希分割成第二数目的哈希分割,其中所述第一数目和所述第二数目之一是另一个的整数倍;以及 使关于所述范围分割以及所述第一数目和所述第二数目的哈希分割的元数据可用于映射缩减引擎。
6.根据权利要求5所述的计算机程序产品,其中所述第一关键字是日期或者时间参数,所述方法还包括关联所述范围分割中的每个范围分割与日期范围或者时间范围。
7.根据权利要求5所述的计算机程序产品,其中所述第一数据对应于业务事务并且所述第二数据是关于所述业务事务中的参与者的文件记录。
8.根据权利要求7所述的计算机实施的方法,其中所述第二关键字是客户标识符。
9.一种计算机系统,包括: 处理器;以及 计算机可读存储介质,具有在其中存储的指令,所述指令在由所述处理器执行时执行用于在映射缩减过程中汇合第一表和第二表的方法,所述方法包括:接收具有第一数据的第一表; 在接收所述第一表之时,基于所述第一数据中的第一关键字的范围将所述第一数据按范围分割成范围分割; 基于第二关键字将所述范围分割中的每个范围分割内的所述第一数据哈希分割成第一数目的哈希分割; 接收具有第二数据的第二表; 在接收所述第二表之时,基于所述第二关键字将所述第二数据哈希分割成第二数目的哈希分割,其中所述第一数目和所述第二数目之一是另一个的整数倍;以及 使关于所述范围分割以及所述第一数目和所述第二数目的哈希分割的元数据可用于映射缩减引擎。
10.一种用于执行映射缩减查询的计算机实施的方法,所述方法包括: 接收要求汇合第一表和第二表的映射缩减查询,所述第一表具有基于第一关键字的范围分割; 将所述范围分割中的至少一个范围分割标识为与所述映射缩减查询相关,所述范围分割具有基于第二关键字的第一数目的哈希分割,其中所述第二表具有基于所述第二关键字的第二数目的哈希分割,所述第一数目和所述第二数目之一是另一个的整数倍; 对于所述第一数目的哈希分割中的每个哈希分割: 基于所述第一数目和所述第二数目从所述第二数目的哈希分割标识至少一个对应哈希分割; 向存储器中加载标识的所述对应哈希分割的至少部分;以及 汇合所述第一数目的哈希分割中的所述一个哈希分割和标识的所述对应哈希分割;以及 使用汇合的所述哈希分割来生成对所述映射缩减查询的响应。
11.根据权利要求10所述的计算机实施的方法,其中所述映射缩减查询指定对于所述第二表中的数据的至少一个限制,所述方法还包括应用过滤以使得向所述存储器中仅加载标识的所述对应哈希分割的所述部分。
12.根据权利要求10所述的计算机实施的方法,其中所述第一关键字是日期或者时间参数,还包括关联所述范围分割中的每个范围分割与日期范围或者时间范围。
13.根据权利要求10所述的计算机实施的方法,其中所述第一数据对应于业务事务并且所述第二数据是关于所述业务事务中的参与者的文件记录。
14.根据权利要求13所述的计算机实施的方法,其中所述第二关键字是客户标识符。
15.一种在计算机可读存储介质中有形地体现的并且包括指令的计算机程序产品,所述指令在由处理器执行时执行用于执行映射缩减查询的方法,所述方法包括: 接收要求汇合第一表和第二表的映射缩减查询,所述第一表具有基于第一关键字的范围分割; 将所述范围分割中的至少一个范围分割标识为与所述映射缩减查询相关,所述范围分割具有基于第二关键字的第一数目的哈希分割,其中所述第二表具有基于所述第二关键字的第二数目的哈希分割,所述第一数目和所述第二数目之一是另一个的整数倍; 对于所述第一数目的哈希分割中的每个哈希分割:基于所述第一数目和所述第二数目从所述第二数目的哈希分割标识至少一个对应哈希分割; 向存储器中加载标识的所述对应哈希分割的至少部分;以及 汇合所述第一数目的哈希分割中的所述一个哈希分割和标识的所述对应哈希分割;以及 使用汇合的所述哈希分割来生成对所述映射缩减查询的响应。
16.根据权利要求15所述的计算机程序产品,其中所述映射缩减查询指定对于所述第二表中的数据的至少一个限制,所述方法还包括应用过滤以使得向所述存储器中仅加载标识的所述对应哈希分割的所述部分。
17.根据权利要求15所述的计算机程序产品,其中所述第一关键字是日期或者时间参数,所述方法还包括关联所述范围分割中的每个范围分割与日期范围或者时间范围。
18.根据权利要求15所述的计算机程序产品,其中所述第一数据对应于业务事务并且所述第二数据是关于所述业务事务中的参与者的文件记录。
19.根据权利要求18所述的计算机程序产品,其中所述第二关键字是客户标识符。
20.一种计算机系统,包括: 处理器;以及 计算机可读存储介质,具有在其中存储的指令,所述指令在由所述处理器执行时执行用于在映射缩减过程中汇合第一表和第二表的方法,所述方法包括: 接收要求汇合第一表和第二表的映射缩减查询,所述第一表具有基于第一关键字的范围分割; 将所述范围分割中的至少一个范围分割标识为与所述映射缩减查询相关,所述范围分割具有基于第二关键字的第一数目的哈希分割,其中所述第二表具有基于所述第二关键字的第二数目的哈希分割,所述第一数目和所述第二数目之一是另一个的整数倍; 对于所述第一数目的哈希分割中的每个哈希分割: 基于所述第一数目和所述第二数目从所述第二数目的哈希分割标识至少一个对应哈希分割; 向存储器中加载标识的所述对应哈希分割的至少部分;以及 汇合所述第一数目的哈希分割中的所述一个哈希分割和标识的所述对应哈希分割;以及 使用汇合的所述哈希分割来生成对所述映射缩减查询的响应。
【文档编号】G06F17/30GK103620601SQ201280031211
【公开日】2014年3月5日 申请日期:2012年3月28日 优先权日:2011年4月29日
【发明者】B·查托帕迪亚, 林亮 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1