批处理元组的制作方法

文档序号:8947427阅读:359来源:国知局
批处理元组的制作方法
【专利说明】批处理元组
【背景技术】
[0001] 从数据源接收的数据可以作为流被传递。在相对大量的数据将被处理的情况下, 可以提供具有多个处理节点的分布式流传输系统,以并行执行数据流的不同部分的处理。
【附图说明】
[0002] 图1是根据本公开用于批处理元组的示例过程的流程图。
[0003] 图2是根据本公开使用垂直布局批处理元组的示例过程的示意图。
[0004] 图3是根据本公开针对多个用户操作器实例利用独特批处理的分布式流传输系 统的示例的示意图。
[0005] 图4是根据本公开针对多个用户操作器实例利用共享批处理的分布式流传输系 统的示例的示意图。
[0006] 图5不出根据本公开的系统的不例。
【具体实施方式】
[0007] 由于实时或近实时处理多个数据片段的应用程序的普及,流传输系统的使用逐渐 增加。流传输系统可以将从多个数据源接收的数据作为数据流传递(例如,以数据和/或 信息的数字编码包的序列)。例如,检索引擎和社交媒体应用程序可以使用流传输系统来实 时处理多个查询和消息。在一些示例中,流传输系统可以包括可以执行并行处理(例如,同 时执行数据流中的部分数据流的处理)的分布式流传输系统。利用并行处理的分布式流传 输系统可以增加整个系统的性能。
[0008] 流传输系统可以包括多个流操作器。流操作器可以包括产生要发送至用户操作器 以进行消费的数据流的发布者操作器。用户操作器可以从另一流操作器接收数据流(例 如,从发布者操作器和/或另一用户操作器)。流操作器(例如,发布者操作器和/或用户 操作器)可以包括多个实例。实例可以包括程序(例如,计算机可读指令)的可执行版本 的拷贝和/或载入到计算设备上的存储器中的进程。
[0009] 流操作器之间的数据流可以被建模为包括节点和边缘的有向无环图(DAG),其中 节点表示流操作器,而边缘表示节点之间的连接。流操作器可以包括在处理器上执行以执 行特定功能(诸如特定算术功能)的机器可读指令。另外,流操作器可以产生将被发送至 其它流操作器的输出流,输出流将被发送至其它流操作器。例如,流操作器可以从源操作器 接收包括数据的元组,并且可以处理该元组,以产生输出元组,输出元组将被发送至另一流 操作器以进行处理。
[0010] 通常,分布式流传输系统可将元组从发布者操作器独立地传输至用户操作器。然 而,这个过程可能耗时且占用资源。相反,分布式流传输系统可以批处理元组,与独立输送 元组相比,其可以改进流传输系统的吞吐量。批处理可以包括把元组聚集在一起(例如,作 为一批),以同时和/或更有效地处理这些元组。
[0011] 在非数据并行流传输系统中,批处理可以在不考虑元组的内容的情况下(例如, 在不考虑元组的属性的情况下)被完成。然而,在分布式流传输系统中,元组不可以被任意 批处理。为了实现分布式流传输系统的有效操作,具有特定属性(例如,用于识别元组的值 和/或质量)的元组可以被一致地路由至对应的用户操作器实例。对应的用户操作器实例 可以处理数据且可能缓存给定元组的数据。如果给定元组的数据不被路由至对应的用户操 作器实例,则数据分组语义不可能实现,这可导致通过不止一个流操作器来处理给定数据 片段。虽然性能优化系统可以被用于确定数据流中的哪些元组要批处理并确定最优批处理 大小,但这可导致许多批处理被发送至相同的客户,这增加了延迟并增加存储器利用率。此 外,这种技术可能要求用户在书写数据流要求时考虑批处理,这是因为批处理方案不是透 明的。
[0012] 相反,根据本公开的多个示例,元组可以基于特定主键(例如,多个属性和/或特 征)被一起批处理,并基于该主键而发送至用户操作器实例。这可以通过计算批处理元组 的数字和/或字母数字的值(例如,哈希值)来确定向哪个用户操作器实例发送批处理元 组。以这种方式批处理元组可以使批处理的数目最小化,同时满足分区要求和减少延迟。另 外,这个技术可以相对于底层的流传输系统和用户代码实现透明的实施方式,由此在不改 变流传输系统的代码或用户程序的代码的情况下实现批处理。此外,以这种方式批处理元 组可以独立于底层的流传输系统的实施方式而实施。以下结合附图描述另外的示例、优点、 特征、修改例等。
[0013] 在本公开的以下具体描述中,参考了形成本公开一部分并且其中通过图示示出怎 样可以实践本公开的示例的附图。这些示例被足够仔细的描述,以使得本领域普通技术人 员能够实施本公开的示例,并且可以理解的是,其它示例可以被使用,并且在不偏离本公开 的范围的情况下,可以作出过程、电性和/或结构的改变。
[0014] 这里的附图遵循编号法则,其中第一数字对应于图号,并且剩下的数字识别附图 中的元件或部件。不同的附图之间类似的元件或部件可以通过使用类似的数字来识别。在 这里的各个示例中示出的元件可以被添加、交换和/或消除,以提供本公开中的多个附加 示例。
[0015] 此外,附图中提供的元件的比例和相对尺寸旨在示出本公开的示例,并且不应该 以限制意义来考虑。如这里使用,标识符"N",特别是相对于附图中的附图标记,指示如此 指定的多个特定特征可以为本公开的多个示例所包括。同样,如这里使用,"多个"元件和/ 或特征可以指这些元件和/或特征中的一个或多个。
[0016] 图1是根据本公开的用于批处理元组的方法100的流程图。在101,方法100可以 包括确定多个元组的多个主键属性。在一些示例中,多个元组的多个属性可以由处理节点 确定。这里使用的处理节点可以包括通信地联接在网络基础设施中的多个计算机和/或处 理器。每个处理节点可以执行流操作器,流操作器将相应操作应用于由处理节点接收的数 据。在多个示例中,在处理节点中执行的流操作器可以转换接收的数据和/或可以基于接 收的数据计算结果数据。
[0017] 处理节点还可以处理数据流输入。例如,数据流输入可以包括由处理节点处理的 连续的数据流。分布式流传输系统可以使用处理节点处理数据流输入,并将处理的数据作 为数据流输出而输出。在一些示例中,处理节点可以包括可以执行诸如指令流水线的并行 处理的多个多核中央处理单元(CPU)。
[0018] 在各种示例中,处理节点可以确定数据流中多个元组中的每一个元组的多个属 性。确定多个元组中的每一个元组的多个属性可以包括执行计算机可读指令,以将特定的 分类(例如,属性)分配给该元组。属性可以描述元组中包括的数据的类型和/或分类。元 组可以包括多个属性,其中每个相应的属性包括多个值。例如,元组的涉及企业员工的属性 可以包括员工标识符、员工姓名和/或部门标识符(以识别员工工作的部门)。在这个示例 中,元组中的每个属性可以包括诸如员工标识符数字、员工姓名的拼写和/或相应员工的 部门标识符的字母数字值的值。然而,示例不会是如此限制性的,属性可以包括用于识别元 组的各种不同值。
[0019] 在一些示例中,元组可以包括多个属性,该多个属性中的至少一些是主键属性。主 键属性可以包括用于将元组匹配至主键的属性,以识别元组所属于的组(例如,批处理元 组)。作为示例,如果元组包括属性X、Y和Z,并且主键包括属性X,则X可以是元组的主键 属性。在不同示例中,主键可以包括多个属性,诸如X和Y,在此例子中,X和Y可以是元组 的主键属性。
[0020] 在103,方法100可以包括通过发布者操作器创建包含基于多个属性的多个列表 的批处理元组。每个列表可以包括多个属性和/或主键属性。
[0021] 多个元组可以被结合(例如,批处理)到较大的消息(例如,批处理元组)内,以 从第一流操作器实例发送至第二流操作器实例。元组可以基于元组属于哪个组而一起被批 处理(例如,基于主键的数据分布)。换言之,元组可以基于主键被批处理,其中该主键可以 识别批处理元组的多个主键属性。作为示例,如果主键包括属性X,则基于该主键创建的批 处理元组可以包括包含主键属性X的元组
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1