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

数据的增量并行处理制造技术

技术编号:14055478 阅读:302 留言:0更新日期:2016-11-26 23:33
一个示例方法包括:识别包括指定要对数据集执行的计算操作的指令的同步代码;将所述同步代码变换成包括一个或多个流水线对象的流水线应用;识别要对其执行所述流水线应用的第一输入数据集;对第一输入数据集执行所述流水线应用以产生第一输出数据集;在对所述第一输入数据集执行所述流水线应用之后,识别要对其执行所述流水线应用的第二输入数据集;确定所述第一输入数据集与所述第二输入数据集之间的差异的集合;以及对所述差异集合执行所述流水线应用以产生第二输出数据集。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
大规模数据处理可以包括并行处理,其通常涉及同时对大数据集的每个元素执行某个操作。可以在数据并行流水线中将各种操作链在一起,以创建用于对数据集进行处理的高效机制。数据集的产生可能涉及在一组大进化输入上周期性地运行的“批量作业”。随着输入被更新,前一个输出变得越来越陈旧,所以在定期基础上重新运行流水线。
技术实现思路
本公开涉及在并行处理系统中执行数据的增量处理。一般而言,本说明书中所描述的主题的一个创新方面能够用包括以下动作的方法加以具体化:识别包括指定要对数据集执行的计算操作的指令的同步代码;将所述同步代码变换成包括一个或多个流水线对象的流水线应用,所述流水线应用被配置成跨越多个计算设备并行执行,所述一个或多个流水线对象中的每一个流水线对象被配置成接收输入数据集并且产生输出数据集;识别要对其执行所述流水线应用的第一输入数据集;对第一输入数据集执行所述流水线应用以产生第一输出数据集,所述执行所述流水线应用包括按照前一个流水线对象将其输出数据集提供给下一个流水线对象作为其输入数据集的次序执行所述一个或多个流水线对象中的每一个流水线对象;在对所述第一输入数据集执行所述流水线应用之后,识别要对其执行所述流水线应用的第二输入数据集;确定所述第一输入数据集与所述第二输入数据集之间的差异的集合;以及对所述差异集合执行所述流水线应用以产生第二输出数据集,所述对差异的集合执行所述流水线应用包括:执行所述一个或多个流水线对象中的每一个流水线对象,包括每一个前一个流水线对象按照将与其前一个输出数据集的差异提供给所述下一个流水线对象作为其输入数据集的次序,并且所述第二输出数据集包括与所述第一输出数据集的差异。这个方面的其它实施例包括被配置成执行在计算机存储设备上编码的方法的动作的对应的系统、装置以及计算机程序。能够实现本说明书中所描述的主题的特定实施例以便实现以下优点中的一个或多个。每当流水线被重新运行时对完整输入数据集进行再处理可能是浪费的,并且对于大流水线来说,它运行流水线花费的时间量限制它能够被运行有多频繁。然而,通过对第一输入数据集与第二输入数据集之间的差异进行处理,可以减少对后续数据集进行处理所必需的时间量,从而允许流水线更迅速地产生更新的输出数据集。另外,当设计者仅写入并维护同步代码的一个版本时,可以避免维护分离的批量和增量系统的隐患。该系统能够自动地得到需要考虑到输入中的改变对输出所做的改变。这减少或者消除对流水线的人工维护,这进而也减少成本。还可以减轻与维护流水线的多个版本有关的正确性问题。此外,仅对输入集的改变进行处理可能在输入集尚未显著地改变的情况下导致流水线的后续执行所必需的计算资源的减少。还可以通过仅对输入集的改变进行处理来获得较低的时延。在下面的附图和描述中阐述本说明书中所描述的主题的一个或多个实施例的细节。主题的其它特征、方面和优点从本说明书、附图和权利要求书将变得显而易见。附图说明图1是可能在其中发生增量数据处理的环境的框图。图2是输入数据集通过流水线实例被并行处理的系统的框图。图3是流水线以及包括在其中的流水线对象存储状态以用于在增量数据处理中使用的环境的框图。图4是针对增量数据处理的示例过程的流程图。图5是示例计算设备的框图。各个附图中的相同的附图标记和名称指示相同的元件。具体实施方式本公开涉及在并行处理系统中执行数据的增量处理。在一些实施方式中,被视为执行计划(作为要应用于记录的某个合集的步骤的系列)的批量流水线被变换成增量执行计划,能够对差异(来自原始合集的添加或去除)的集合执行所述增量执行计划,以产生差异的集合,该差异的集合能够被应用于前一个输出合集以产生与会通过对整个新输入运行原始流水线而产生的合集相等的合集。在一些实施方式中,该系统还检测对输入的改变是什么,并且将输出差异的集合应用于最终输出。并行处理框架提供用于由多个计算设备并行对大量的数据进行处理的平台。用户可以定义流水线或包括用于对输入数据集进行处理以产生输出数据集的步骤的流水线应用。一个常见的并行处理框架是MapReduce框架,在所述MapReduce框架中分布式计算被划分成用于将输入集划分成较小组的映射步骤,以及用于对这些组中的每一个执行操作的简化步骤。这样的框架通常在批量模式下操作,使得即使自流水线被最后运行以来已添加、改变或者删除了输入数据集中的仅几个值,每当流水线被运行时也必须处理整个输入数据集以产生输出数据集。这可能导致输入的重复处理,并且对于大输入数据集导致高时延。对于某些应用,比能够运行流水线的频率更新的输出数据可能是必要的。在这种情况下,可以构建第二系统以处理这样的增量更新。尤其随着原始流水线演进,这种方法常常增加复杂性和维护开销。能够在单个框架中表达计算并且在批量模式和增量模式两者下运行相同代码将是有利的。此外,在同步代码中定义操作的两个模式的能力也是所希望的。同步代码包含呈现一系列顺序步骤的编程指令。这与可以作为涉及等待并对输入做出响应的有限状态机、事件处理机、或其它编程概念被实现的“异步”代码相反。通常,同步代码对于人类来说比异步代码更易于编辑和理解,因为可能不可容易地从代码它本身识别异步代码的操作和程序流。因此,本公开描述了允许在同步代码中定义批量和增量处理操作的并行数据处理框架。一个示例方法包括识别同步代码并且将它变换成包括流水线对象的流水线。然后可以对第一输入数据集执行流水线以产生第一输出数据集。当对第二输入数据集执行流水线时,第一输入数据集与第二输入数据集之间的差异的集合被确定。然后对这些差异执行流水线以产生第二输出数据集。通过对第一输入数据集与第二输入数据集之间的差异进行处理,可以减少对后续数据集进行处理所必需的时间量,从而允许流水线更迅速地产生更新的输出数据集。另外,当设计者仅写入并维护同步代码的一个集合时,可以避免维护分立的批量和增量系统的隐患。图1是可能在其中发生增量数据处理的环境100的框图。环境100包括优化器104,优化器104分析包括用于在产生输出数据集112时对输入数据集110进行处理的指令的同步代码102。在操作中,优化器104分析同步代码102以产生可以在不同的计算设备上被并行执行的流水线106。流水线106包括对输入数据集110执行由同步代码102定义的处理步骤的一个或多个流水线对象108a-c。环境100包括优化器104。如所示,优化器104可操作用于分析同步代码102并且产生流水线106。在一些实施方式中,优化器104可以是可操作用于分析同步代码102并且产生所对应的流水线106以执行由同步代码102定义的数据处理动作的软件程序或软件程序的集合。优化器104也可以是可以由作者导入到同步代码102中并且可以在同步代码102被编译和运行时被执行的软件库。在一些实施方式中,优化器104可以是服务器或服务器的集合,可以诸如通过应用编程接口(API)、经由一个或多个网络协议而通过网络、或者通过其它机制将同步代码102提交给所述服务器或服务器的集合。在一些实施方式中,优化器104可以确定是否产生流水线,所述流水线在批量模式下操作,使得每当流水线被运行时整个输入数据集110被处理,或者在增量模式下操作,使得仅从最后运行起的输入数据集110中的差异被处理。在一些情况本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201480077823.html" title="数据的增量并行处理原文来自X技术">数据的增量并行处理</a>

【技术保护点】
一种由一个或多个处理器执行的计算机实现的方法,所述方法包括:识别包括指令的同步代码,所述指令指定要对数据集执行的计算操作;将所述同步代码变换成包括一个或多个流水线对象的流水线应用,所述流水线应用被配置成跨越多个计算设备并行执行,所述一个或多个流水线对象中的每一个流水线对象被配置成接收输入数据集并且产生输出数据集;识别要被执行所述流水线应用的第一输入数据集;对第一输入数据集执行所述流水线应用以产生第一输出数据集,执行所述流水线应用包括:按照前一个流水线对象将其输出数据集提供给下一个流水线对象作为其输入数据集的次序执行所述一个或多个流水线对象中的每一个流水线对象;在对所述第一输入数据集执行所述流水线应用之后,识别要被执行所述流水线应用的第二输入数据集;确定所述第一输入数据集与所述第二输入数据集之间的差异集合;以及对所述差异集合执行所述流水线应用以产生第二输出数据集,对所述差异集合执行所述流水线应用包括:执行所述一个或多个流水线对象中的每一个流水线对象,包括每一个前一个流水线对象按照将与其前一个输出数据集的差异提供给所述下一个流水线对象作为其输入数据集的次序,并且所述第二输出数据集包括与所述第一输出数据集的差异。...

【技术特征摘要】
【国外来华专利技术】2014.04.01 US 14/231,9831.一种由一个或多个处理器执行的计算机实现的方法,所述方法包括:识别包括指令的同步代码,所述指令指定要对数据集执行的计算操作;将所述同步代码变换成包括一个或多个流水线对象的流水线应用,所述流水线应用被配置成跨越多个计算设备并行执行,所述一个或多个流水线对象中的每一个流水线对象被配置成接收输入数据集并且产生输出数据集;识别要被执行所述流水线应用的第一输入数据集;对第一输入数据集执行所述流水线应用以产生第一输出数据集,执行所述流水线应用包括:按照前一个流水线对象将其输出数据集提供给下一个流水线对象作为其输入数据集的次序执行所述一个或多个流水线对象中的每一个流水线对象;在对所述第一输入数据集执行所述流水线应用之后,识别要被执行所述流水线应用的第二输入数据集;确定所述第一输入数据集与所述第二输入数据集之间的差异集合;以及对所述差异集合执行所述流水线应用以产生第二输出数据集,对所述差异集合执行所述流水线应用包括:执行所述一个或多个流水线对象中的每一个流水线对象,包括每一个前一个流水线对象按照将与其前一个输出数据集的差异提供给所述下一个流水线对象作为其输入数据集的次序,并且所述第二输出数据集包括与所述第一输出数据集的差异。2.根据权利要求1所述的方法,还包括:响应于对所述第一输入数据集执行所述流水线而确定流水线状态,所述流水线状态包括所述第一输入数据集和所述第一输出数据集的表示。3.根据权利要求2所述的方法,还包括:响应于对与所述第一输入数据集的所述差异集合执行所述流水线而更新所述流水线状态以生成更新的流水线状态,所述更新的流水线状态包括所述第二输入数据集和所述第二输出数据集的表示。4.根据权利要求1所述的方法,还包括:响应于对所述第一输入数据集执行所述流水线而针对所述一个或多个流水线对象中的每一个流水线对象确定流水线对象状态,所述流水线对象状态包括所述流水线对象的所述输入数据集和所述输出数据集的表示。5.根据权利要求4所述的方法,还包括:响应于对与所述第一输入数据集的所述差异集合执行所述流水线而更新所述流水线对象状态以生成更新的流水线对象状态,所述更新的流水线对象状态包括与所述流水线对象的所述输入数据集和所述输出数据集的差异。6.根据权利要求1所述的方法,其中,识别要被执行所述流水线的所述第一输入数据集包括:将所述第一输入数据集变换成密钥值对的第一集合;以及将密钥值对的所述第一集合存储在密钥值储存器中。7.根据权利要求1所述的方法,其中,确定所述第一输入数据集与所述第二输入数据集之间的所述差异集合包括:将所述第二输入数据集变换成密钥值对的第二集合;将密钥值对的所述第二集合与密钥值对的所述第一集合进行比较;以及识别相对于密钥值对的所述第一集合已被从密钥值对的所述第二集合中添加或者删除的密钥值对。8.根据权利要求1所述的方法,其中,确定所述第一输入数据集与所述第二输入数据集之间的所述差异集合包括:确定所述流水线的最后执行时间戳,所述最后执行时间戳表示对所述第一输入数据集执行所述流水线的时间;以及识别包括在所述最后执行时间戳之后的时间戳的所述第二输入数据集中的项集合。9.一种存储指令的非暂时性计算机可读介质,所述指令在被执行时能够操作用于致使至少一个处理器执行操作,所述操作包括:识别包括指令的同步代码,所述指令指定要对数据集执行的计算操作;将所述同步代码变换成包括一个或多个流水线对象的流水线应用,所述流水线应用被配置成跨越多个计算设备并行执行,所述一个或多个流水线对象中的每一个流水线对象被配置成接收输入数据集并且产生输出数据集;识别要被执行所述流水线应用的第一输入数据集;对第一输入数据集执行所述流水线应用以产生第一输出数据集,执行所述流水线应用包括:按照前一个流水线对象将其输出数据集提供给下一个流水线对象作为其输入数据集的次序执行所述一个或多个流水线对象中的每一个流水线对象;在对所述第一输入数据集执行所述流水线应用之后,识别要被执行所述流水线应用的第二输入数据集;确定所述第一输入数据集与所述第二输入数据集之间的差异集合;以及对所述差异集合执行所述流水线应用以产生第二输出数据集,所述对差异集合执行所述流水线应用包括:执行所述一个或多个流水线对象中...

【专利技术属性】
技术研发人员:伯特·布拉德肖克雷格·D·钱伯斯以斯拉·库伯阿希什·拉尼瓦拉弗朗西丝·J·佩里
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国;US

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

1