CN109643307B - 流处理系统和方法 - Google Patents
流处理系统和方法 Download PDFInfo
- Publication number
- CN109643307B CN109643307B CN201780017236.8A CN201780017236A CN109643307B CN 109643307 B CN109643307 B CN 109643307B CN 201780017236 A CN201780017236 A CN 201780017236A CN 109643307 B CN109643307 B CN 109643307B
- Authority
- CN
- China
- Prior art keywords
- event
- operator
- stream
- operators
- events
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
Abstract
一种处理事件流的系统,所述系统包括用于接收多个流的多个操作符,所述系统用于:由第一操作符接收第一流;由所述第一操作符通过从所述接收到的第一流中选择满足过滤测试的第一事件集来生成第一事件窗口;由所述第一操作符通过从所述接收到的第一流中选择不满足所述过滤测试的第二事件集来生成第一驱逐流;在第二操作符处接收所述第一驱逐流;由所述第一操作符在所述第一事件集上应用第一计算函数以获取第一输出流;以及由所述第二操作符在所述第一驱逐流上应用第二过滤器和第二计算函数中的至少一个,以获取第二输出流。
Description
背景技术
本发明在其一些实施例中涉及一种处理数据流的系统,更具体地,不仅仅涉及大数据系统中对数据进行分布式处理。
术语“大数据”用于指如此大量和/或如此复杂的数据集合,以至于传统数据处理应用软件无法充分处理这种集合。处理大数据的挑战之一是分析集合中的大量数据。在一些系统中,数据是数据实例或事件的有序序列,称之为数据流或事件流。
在典型的批处理系统中,可根据需要多次访问数据以执行所需的处理。在流处理系统中,数据连续到达,但不能存储以供将来参考。可能需要不断在运行时计算事件流内的数学或统计分析。在一些系统中,需要实时处理大量数据。另外,可能需要系统可扩展并具有容错架构。
一些流处理系统使用窗口流操作符。窗口流操作符是用于处理一组数据实例(也称为事件)的软件对象,该组数据实例通过对事件流中的一些事件应用过滤器来进行选择。所选事件集称为事件窗口。在应用过滤器之后,典型的窗口流操作符丢弃剩余事件,即超出过滤器范围的事件。在一些系统中,一个数据实例只能被读取一次。在这些系统中,当系统包括一个以上的窗口流操作符时,可能需要复制整个事件流以便从相同的事件流中选择一个以上的事件窗口。
发明内容
本发明的目的在于提供一种处理数据流的系统和方法。
前述和其它目的通过独立权利要求的特征来实现。进一步的实施方式在从属权利要求、说明书和附图中显而易见。
根据本发明第一方面,一种处理事件流的系统包括用于接收多个事件流的多个操作符,所述系统用于:由所述多个操作符中的第一操作符接收第一事件流;由所述第一操作符通过从所述接收到的第一事件流中选择满足过滤测试的第一事件集来生成第一事件窗口;由所述第一操作符通过从所述接收到的第一事件流中选择不满足所述过滤测试的第二事件集来生成第一驱逐事件流;在所述多个操作符中的第二操作符处从所述第一操作符接收所述第一驱逐事件流;由所述第一操作符在所述第一事件集上应用第一计算函数以获取第一输出事件流;以及由所述第二操作符在所述第一驱逐流上应用第二过滤器和第二计算函数中的至少一个,以获取第二输出事件流。将剩余事件引导至驱逐事件流允许其它软件对象处理剩余事件,从而有利于基于事件流的动态划分进行处理。
根据本发明第二方面,一种由多个操作符处理事件流的方法包括:由所述多个操作符中的第一操作符接收第一事件流;由所述第一操作符通过从所述接收到的第一事件流中选择满足过滤测试的第一事件集来生成第一事件窗口;由所述第一操作符通过从所述接收到的事件流中选择不满足所述过滤测试的第二事件集来生成第一驱逐事件流;在所述多个操作符中的第二操作符处从所述第一操作符接收所述第一驱逐事件流;由所述第一操作符在所述第一事件集上应用计算函数以获取第一输出事件流;由所述第二操作符在所述第一驱逐流上应用第二过滤器和第二计算函数中的至少一个,以获取第二输出事件流。
结合所述第一方面和所述第二方面,在本发明所述第一方面和所述第二方面的第一种可能的实施方式中,所述系统还用于:由所述第一操作符接收第二事件流;由所述第一操作符通过从所述第一事件窗口和所述第二事件流中选择满足所述过滤测试的第三事件集来生成第二事件窗口;由所述第一操作符通过从所述第一事件窗口和所述第二事件流中选择不满足所述过滤测试的第四事件集来生成第二驱逐事件流;在所述第二操作符处从所述第一操作符接收所述第二驱逐事件流;由所述第一操作符在所述第三事件集上应用所述第一计算函数以获取第三输出事件流;以及由所述第二操作符在所述第二驱逐流上应用所述第二过滤器和所述第二计算函数中的至少一个,以获取第四输出事件流。在接收到更多一些事件后产生新的事件窗口允许连续处理,这对于处理连续性事件流是必需的。
结合所述第一方面和所述第二方面,或者所述第一方面和所述第二方面的所述第一种可能的实施方式,在本发明所述第一方面和所述第二方面的第二种可能的实施方式中,所述多个操作符中的至少一个是由至少一个硬件处理器执行的软件对象。使用软件对象允许处理中复杂而动态的变化。
结合所述第一方面和所述第二方面,或者所述第一方面和所述第二方面的所述第一种或第二种可能的实施方式,在本发明所述第一方面和所述第二方面的第三种可能的实施方式中,所述第一操作符用于产生多个输出流;所述多个输出流中的一个输出流由所述多个操作符中的至少一个第三操作符接收;以及所述多个输出流中的第二输出流由所述多个操作符中的至少一个第四操作符接收。可选地,将一个以上的输出结果流引导至一个以上的操作符有利于比单一路径更复杂的系统拓扑。在一个硬件处理器上执行一个以上的软件对象可降低创建系统的成本,并减少系统功耗。
结合本发明所述第一方面和所述第二方面,或者本发明所述第一方面和所述第二方面的所述第一种、第二种或第三种可能的实施方式,在本发明所述第一方面和所述第二方面的第四种可能的实施方式中,所述多个其它硬件处理器以有向无环图(directed-acyclic-graph,DAG)拓扑或有向带环图拓扑连接。带环图拓扑和无环图拓扑是处理算法的常见拓扑。
结合本发明所述第一方面和所述第二方面,或者本发明所述第一方面和所述第二方面的所述第一种、第二种、第三种或第四种可能的实施方式,在本发明所述第一方面和所述第二方面的第五种可能的实施方式中,所述多个其它硬件处理器以管道拓扑连接。管道拓扑有利于通过启用同步处理来提高性能。
结合本发明所述第一方面和所述第二方面,或者本发明所述第一方面和所述第二方面的所述第一种、第二种、第三种、第四种或第五种可能的实施方式,在本发明所述第一方面和所述第二方面的第六种可能的实施方式中,所述多个其它硬件处理器以网格拓扑和网状拓扑中的一种拓扑连接。网格拓扑和网状拓扑支持复杂的处理算法。
结合本发明所述第一方面和所述第二方面,或者本发明所述第一方面和所述第二方面的所述第一种、第二种、第三种、第四种、第五种或第六种可能的实施方式,在本发明所述第一方面和所述第二方面的第七种可能的实施方式中,所述多个事件流中每个流的每个事件具有事件序列中的序列号,所述过滤测试包括将所述序列号和最后接收到的事件的第二序列号之间的差值与特定数量阈值进行比较。使用事件序列中的序列号允许按照事件数量来动态划分事件流中的事件。
结合本发明所述第一方面和所述第二方面,或者本发明所述第一方面和所述第二方面的所述第一种、第二种、第三种、第四种、第五种、第六种或第七种可能的实施方式,在本发明所述第一方面和所述第二方面的第八种可能的实施方式中,所述事件流中的每个事件具有时间,所述时间是事件发生时间或事件接收时间,所述过滤测试包括将所述时间与当前时间之间的差值与特定时间差阈值进行比较。使用时间差可以按时间动态划分事件流中的事件。
结合本发明所述第一方面和所述第二方面,或者本发明所述第一方面和所述第二方面的所述第一种、第二种、第三种、第四种、第五种、第六种、第七种或第八种可能的实施方式,在本发明所述第一方面和所述第二方面的第九种可能的实施方式中,所述系统还包括至少一个传感器。所述事件流中的事件包括由所述至少一个传感器收集的信息。使用传感器允许在用于分析温度和速度等物理属性的系统中使用本发明。
结合本发明所述第一方面和所述第二方面,或者本发明所述第一方面和所述第二方面的所述第一种、第二种、第三种、第四种、第五种、第六种、第七种、第八种或第九种可能的实施方式,在本发明所述第一方面和所述第二方面的第十种可能的实施方式中,所述事件流中的事件包括以下一组信息:温度、水位、网站访问量、价格、人数、年龄、长度、高度、重量,周长、光量、声音量、金额、地理位置、购买量、对象数量、时间戳、互联网协议地址、媒体访问控制器地址、识别号码、识别名称、电话号码、电话呼叫元数据、商家名称和商家识别号码。
本发明的其它系统、方法、特征和优点对于本领域技术人员在研究以下附图和详细描述后变得显而易见。所有这些其它系统、方法、特征和优点旨在包括在本说明书内、在本发明的范围内、并且受所附权利要求书保护。
除非另有定义,本文所使用的所有技术和/或科学术语的含义与本发明所属领域的普通技术人员通常理解的相同。尽管本发明实施例的实践或测试中可以使用与本文所描述的方法和材料相似或等同的方法和材料,但是下文描述了示例性方法和/或材料。在有冲突的情况下,以包括定义在内的专利说明书为准。此外,材料、方法和示例仅为说明性,并非意指必然限制。
附图说明
此处仅作为示例,结合附图描述了本发明的一些实施例。现在具体结合附图,需要强调的是所示的项目作为示例,为了说明性地讨论本发明的实施例。这样,根据附图说明,如何实践本发明实施例对本领域技术人员而言是显而易见的。
在附图中:
图1A、1B和1C为根据本发明一些实施例的事件流到操作符的示例性映射的示意图;
图2为根据本发明一些实施例的示例性系统的示意图;
图3为根据本发明一些实施例的第二示例性系统的示意图;
图4为根据本发明一些实施例的第三示例性系统的示意图;
图5为根据本发明一些实施例的示意性表示处理事件流的操作的可选流程的流程图;
图6为根据本发明一些实施例的示意性表示处理与连续事件流相关的事件流的操作的第二可选流程的流程图;
图7为根据本发明一些实施例的示意性表示处理事件流的操作的第三可选流程的流程图;以及
图8为根据本发明一些实施例的示意性表示处理与连续事件流相关的事件流的操作的第四可选流程的流程图。
具体实施方式
本发明在其一些实施例中涉及一种处理数据流的系统,并且更具体地但不仅仅涉及大数据系统中对数据进行分布式处理。
本文所使用的术语“事件”是指数据实例,术语“事件流”是指数据实例或事件的连续有序序列。
窗口流操作符是用于处理数据实例(也称为事件)窗口的软件对象,这些数据实例通过对事件流中的一些事件应用过滤器来进行选择。本文所使用的术语“操作符”是指窗口流操作符。
在使用窗口流操作符的典型系统中,一个操作符将其输出发送给第二个操作符以由第二个操作符进行处理。在基于窗口操作符的流处理的典型解决方案中,每个操作符最多只对其接收的事件应用一个函数,并且最多产生一个输出事件流。典型的操作符具有工作事件集。该最多一个函数可以是计算函数,应用于该工作事件集并导致结果事件发送给操作符的输出结果流上的另一个操作符。当操作符接收连续事件流中的事件时,操作符将接收到的事件添加到其工作事件集中。在触发器上,操作符通过对其工作事件集应用过滤器并仅选择与过滤器相匹配的事件来选择事件窗口。丢弃在应用过滤器之后的剩余其它事件,即超出过滤器范围的事件。事件窗口通常是一组事件,每个事件都有特定属性,其值在特定有限边界内。触发器可以接收自上次选择事件窗口以来的事件或时间间隔。在一些系统中,操作符在选择事件窗口后应用其计算函数。
此后,术语“窗口”是指“事件窗口”。
在这些系统中,超出一个操作符的过滤器范围的事件被丢弃,并且不能由第二操作符进行处理。因此,这些系统不能支持基于对事件流中的事件的动态划分进行处理,其中,在某个时间,事件符合一个操作符的过滤器,并且在稍后的时间事件符合第二操作符的第二过滤器。例如,这些系统不能支持基于沿事件流的时间轴对事件流中的事件的相对时间划分进行处理。这种划分的一个示例是:“最近1小时的事件”、“从2小时前到1小时前的事件”、“从3小时前到2小时前的事件”等。对事件流中的事件进行动态划分的另一示例是按事件数量划分,例如,“最后50个事件”、“紧跟最后50个事件之前的前50个事件”等。典型的解决方案不支持将事件从一个操作符级联到另一个操作符。一旦操作符丢弃事件,该事件对于系统而言就会为丢失状态,并且不能再进行处理。在这些系统中,应用动态过滤器需要在被接收后存储所有可能在某个时间符合动态过滤器的事件。在具有大量连续数据的系统中,这可能需要的存储比通常在一台计算机上可用的存储更多,并且需要额外计算来管理大量数据。因此,典型的流处理系统不会存储事件供将来参考,从而禁止了对事件流中的事件实施动态划分。
为了解决这个问题,本发明在其一些实施例中向操作符添加驱逐事件流。可以由第二操作符接收驱逐流,从而使第二操作符能够将其过滤器应用于操作符所丢弃的事件。该解决方案允许多个操作符接收事件流中的事件,而不用复制整个事件流也不需要大容量存储。该解决方案允许在多个操作符之间划分事件流中的事件,每个操作符仅接收可能在接收时进行处理的事件,从而降低了存储成本和管理复杂度。
典型操作符的另一个限制是典型操作符最多只能生成一个输出流,因此限制了可能的互连数量。当一个操作符的输出连接到第二个操作符的输入时,这些操作符被认为是邻居。在包含操作符的典型流处理系统中,操作符至多有一个相邻操作符连接到该操作符的输出。在这些系统中,为了将操作符的输出事件流发送给多个其它操作符,必须复制输出事件流。因此,复杂的类似网格的互连(其中,操作符有两个连接到其输出的相邻操作符)和类似神经网络的互连(其中,操作符有两个以上连接到其输出的相邻操作符)实际上不可能实现,因为在存储和处理复杂度方面成本过高。本发明在其一些实施例中通过向操作符添加一个或多个函数并向操作符添加一个或多个附加输出流来解决该问题。因此,具有用于生成事件窗口的特定过滤器的操作符可以将多个函数应用于其窗口,从而产生多种类型的结果事件。操作符可以将所有某种类型的结果事件引导至一个输出流,并将所有第二种类型的结果事件引导至第二输出流。这减少了重复生成窗口和在窗口中存储事件的需要。另外,具有多个输出流允许操作符复制其输出流,而没有添加软件对象以接收输出流并复制输出流带来的复杂操作。降低窗口生成等管理和计算复杂度减少了功耗,并有助于缩短计算时延。
在详细解释本发明至少一个实施例之前,应当理解的是,本发明在其应用中不一定限于以下描述中阐述的和/或附图和/或示例中示出的组件的构造和布置和/或方法的细节。本发明可以包含其它实施例或以各种方式实践或执行。
本发明可以是一种系统、一种方法和/或一种计算机程序产品。该计算机程序产品可以包括其上具有用于使处理器执行本发明各方面的计算机可读程序指令的计算机可读存储介质。
计算机可读存储介质可以是能够保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述任何合适的组合。
本文所述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者通过互联网、局域网、广域网和/或无线网络等网络下载到外部计算机或外部存储设备。
计算机可读程序指令可以完全在用户计算机上执行,作为独立的软件包部分在用户计算机上执行,部分在用户计算机上和部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络连接到用户计算机,包括局域网(local area network,LAN)或广域网(wide area network,WAN),或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(field-programmable gate array,FPGA)或可编程逻辑阵列(programmable logic array,PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,从而执行本发明的各方面。
本文结合根据本发明实施例提供的方法、装置(系统)和计算机程序产品的流程图和/或方框图来描述本发明的各方面。应当理解的是,流程图和/或方框图的每个方框以及流程图和/或方框图中的方框组合可以由计算机可读程序指令实施。
附图中的流程图和方框图示出了根据本发明各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。就此而言,流程图或方框图中的每个方框可以表示指令的模块、段或部分,包括用于实施指定逻辑功能的一个或多个可执行指令。在一些替代性实施方式中,方框中提到的各项功能可以不按照附图中标注的顺序发生。例如,连续示出的两个方框实际上可以基本同时执行,或者方框有时可以相反的顺序执行,这取决于所涉及的功能。还将注意到,方框图和/或流程图中的每个方框以及方框图和/或流程图中的方框组合可以由基于硬件的专用系统来实施,这些系统执行指定的功能或动作,或者执行专用硬件和计算机指令的组合。
为了理解典型的基于窗口操作符的流处理系统中的某个问题以及本发明一些实施例如何解决这个问题,现在参考图1A、1B和1C,图1A、1B和1C示出了根据本发明一些实施例的事件流到操作符的示例性映射的示意图。
现在参照图1A,行330示出了可选时间轴,其中,时间310早于时间311。340、341和342是可选操作符,每个操作符具有用于产生事件窗口的不同过滤器。在本示例中,时间320比时间311晚0:15小时,以及比时间310晚0:35小时。在本示例中,操作符340具有仅选择过去一小时的事件的过滤器,并且在时间320,事件301和事件302符合操作符340的过滤器且可以包括在操作符340的窗口中。在本示例中,操作符341具有仅选择过去一小时之前一小时的事件的过滤器。如果操作符341在事件301和事件302发生时接收到事件301和302,则操作符341可以丢弃事件301和事件302。
现在再参考图1B,差值350指示时间321比时间320晚1:15小时。因此,在本示例中,时间310比时间321早1:50小时,时间311比时间321早1:30小时。在本示例中,事件303和事件304分别发生在时间312和时间313处,并且均在时间321之前。在本示例中,在时间321处,只有事件304符合操作符340的过滤器。操作符340可以丢弃先前在其窗口中的事件301和事件302,以及稍后接收到的事件301。如果操作符341可以接收事件301、302和303,则在时间321处,事件301、302和303将会在操作符341的窗口中。但是,在典型的系统中,某个操作符所丢弃的事件对于系统而言为丢失状态,并且无法由其它操作符处理。操作符341存储事件301、302和303,直到达到这些事件可以符合操作符341的过滤器的时间为止,这需要额外的存储和处理资源来识别存储的事件何时符合操作符的过滤器。
本发明在其一些实施例中为由一个操作符对另一操作符所抛弃的事件进行处理的问题提供了解决方案。
现在再参考图1C,在本发明一些实施例中,操作符340生成发送至操作符341的输入的驱逐流351。在这些实施例中,事件301、302和303可以包括在操作符341的窗口中,而无需操作符341存储事件301、302和303,直到这些事件符合操作符341的过滤器。类似地,操作符341可以生成驱逐流352,同时操作符342可以接收驱逐流352以处理操作符341所丢弃的事件。
本发明在其一些实施例中提供了一种系统,该系统具有处理另一操作符所丢弃的事件的操作符。
现在参考图2,图2示出了根据本发明一些实施例的示例性系统100的示意图。在这些实施例中,操作符是用于处理至少一个硬件处理器所执行的事件流的至少一个软件对象。在这些实施例中,操作符101接收事件流110。可选地,操作符接收仓库数据115。仓库数据可以包括从数据库读取的数据和由操作符接收的非流数据。在这些实施例中,操作符101通过根据一些事件与过滤测试的符合度从事件流的事件中选择一些事件来生成事件窗口。操作符丢弃剩余事件(即不符合过滤测试的事件),并将至少一个计算函数应用于事件窗口以产生一个或多个结果事件。在这些实施例中,操作符101生成至少一个输出流111并且在该至少一个输出流上输出一个或多个结果事件。可选地,该至少一个输出流由至少一个其它操作符103接收。在这些实施例中,操作符101生成至少一个第三操作符102所接收的驱逐事件流113。在这些实施例中,操作符101输出自己丢弃在驱逐流上的事件,从而允许至少一个第三操作符102处理操作符101所丢弃的一些事件。接收驱逐流的操作符102可以连接到第四操作符105。操作符102可以生成至少一个其它输出结果流114,并将该输出结果流114发送给操作符105。可选地,一个硬件处理器执行操作符101、102、103和105中的两个或更多。
在一些实施例中,事件流中的事件具有多个事件属性的多个值。事件属性的示例是事件生成(发生)时间、事件接收时间、事件序列中的序列号和源识别名称或号码。可选地,通过将过滤测试应用于至少一个特定事件属性的每个事件的值来产生事件窗口。在一些实施例中,过滤测试将两个值之间的差值与特定阈值进行比较。例如,特定事件属性可以是事件发生时间。可能的可选过滤测试是在当前时间之前一小时以上但在当前时间之前不到两小时的时间值(这会产生一个窗口,其中包含在过去一小时之前一小时内发生的事件)。特定事件属性的另一示例是事件序列中的序列号。另一种可能的可选过滤测试是序列值比最大序列值小但差值不超过100(这会产生一个窗口,其中包含序列中的最后100个事件)。
本发明在其一些实施例中还为一个操作符生成一个以上的输出事件流的问题提供了解决方案。
现在参考图3,图3示出了根据本发明一些实施例的第二示例性系统200的示意图。在这些实施例中,操作符101产生至少一个以上的操作符104所接收的至少一个以上的输出流112。可选地,操作符101生成驱逐流113。在系统具有多个操作符的实施例中,操作符可以以有向图拓扑连接,其中一个操作符的输出连接到另一个操作符的输入。在图拓扑中,操作符在一个维度(输入或输出)上最多有一个邻居。在一些实施例中,该图可以是循环的。在其它实施例中,该图可以是非循环的。在一些实施例中,多个操作符可以以网格拓扑连接,其中操作符在一个或多个维度上有两个输出邻居。在一些实施例中,多个操作符可以以网状拓扑连接,其中操作符在一个或多个维度上有两个以上邻居。在具有多个操作符的一些实施例中,多个操作符以管道方式连接,其中一个操作符处理新事件,同时另一个操作符处理该操作符的输出。
本发明在其一些实施例中提供了一种解决方案,其中一个操作符生成一个以上的输出结果流而不生成驱逐流。
现在参考图4,图4示出了根据本发明一些实施例的第三示例性系统300的示意图。在这些实施例中,操作符101将至少一个计算函数应用于该操作符101的窗口以产生一个或多个某种类型的结果事件,并且将至少一个附加计算函数应用于该操作符101的窗口,从而产生一个或多个至少一种附加类型的结果事件。在这些实施例中,操作符101将一个或多个某种类型的结果输出到输出流111,并且将该一个或多个至少一种附加类型的结果输出到输出流112。输出流111由103接收,输出流112由104接收。在这些实施例中,系统可以具有多个操作符。在这些实施例中,操作符可以以有向图拓扑连接,其中一个操作符的输出连接到另一个操作符的输入。在图拓扑中,操作符在一个维度(输入或输出)上最多有一个邻居。在一些实施例中,该图可以是循环的。在其它实施例中,该图可以是非循环的。在一些实施例中,多个操作符可以以网格拓扑连接,其中操作符在一个或多个维度上有两个输出邻居。在一些实施例中,多个操作符可以以网状拓扑连接,其中操作符在一个或多个维度上有两个以上邻居。
可选地,事件流中的事件包括以下一组信息:温度、水位、网站访问量、价格、人数、年龄、长度、高度、重量,周长、光量、声音量、金额、地理位置、购买量、对象数量、时间戳、互联网协议地址、媒体访问控制器地址、识别号码、识别名称、电话号码、电话呼叫元数据、商家名称和商家识别号码。电话呼叫元数据的示例包括呼叫开始时间、呼叫持续时间、发送方识别名称或号码、接收方识别名称或号码,以及天线识别名称或号码。
在本发明一些实施例中,系统还包括至少一个传感器,该传感器将物理参数转换为可被测量的电信号,并且可以收集测量值。物理参数的示例是温度、速度和血压。在这些实施例中,事件流中的事件包括由至少一个传感器收集的信息。
为了提供用于处理丢弃事件的解决方案,在本发明一些实施例中,系统实施以下方法。
现在参考图5,图5示出了根据本发明一些实施例的示意性表示处理事件流的操作500的可选流程的流程图。在这些实施例中,操作符接收401事件流中的一些事件,每个事件具有多个事件属性的多个值。在402中,操作符通过从事件流的一些事件中选择事件来产生事件窗口。选择事件以使每个所选事件具有符合过滤测试的至少一个特定事件属性的值。在403中,在这些实施例中,操作符将计算函数应用于事件窗口,以产生一个或多个结果事件。在一些实施例中,操作符生成404一个或多个输出结果流。在这些实施例中,该一个或多个输出结果流中的每个包括一个或多个结果事件中的至少一个。在一些实施例中,操作符生成405驱逐事件流,包括在产生事件窗口之后剩余的一些事件中的所有事件,即具有不符合过滤测试的至少一个特定属性的值。在一些实施例中,驱逐事件流不是事件流的重复。
处理事件流是一个连续的过程。在处理第一事件窗口之后,在本发明一些实施例中,操作符继续接收事件流中的事件并继续处理事件流的事件。
现在再参考图6,图6示出了根据本发明一些实施例的示意性表示处理与连续事件流相关的事件流的操作600的第二可选流程的流程图。在一些实施例中,操作符接收包括连续事件序列的事件流。在这些实施例中,在产生事件窗口之后,操作符接收701事件流中的一些其它事件。在这些实施例中,在702中,操作符通过从先前产生的事件窗口和事件流的一些其它事件中选择事件来产生新的事件窗口。选择事件以使每个所选事件具有符合过滤测试的至少一个特定事件属性的值。在703中,在这些实施例中,操作符将计算函数应用于事件窗口,以产生一个或多个其它结果事件。在这些实施例中,操作符在该一个或多个输出结果流中的每个上输出704一个或多个其它结果事件中的至少一个。在一些实施例中,操作符在驱逐事件流上输出705先前产生的事件窗口中的所有事件和产生新的事件窗口之后剩余的一些其它事件,即具有不符合过滤测试的至少一个特定属性的值。可选地,当操作符接收到附加事件时,重复操作600的流程。
为了提供用于产生一个以上的输出结果流的解决方案,在本发明一些实施例中,系统实施以下方法。
现在参考图7,图7示出了根据本发明一些实施例的示意性表示处理事件流的操作700的第三可选流程的流程图。在这些实施例中,操作符接收501事件流中的一些事件,每个事件具有多个事件属性的多个值。在502中,操作符通过从事件流的一些事件中选择事件来产生事件窗口。选择事件以使每个所选事件具有符合过滤测试的至少一个特定事件属性的值。在503中,在这些实施例中,操作符将计算函数应用于事件窗口,以产生一个或多个结果事件。在一些实施例中,操作符生成504至少两个输出结果流。在这些实施例中,该至少两个输出结果流中的每个包括一个或多个结果事件中的至少一个。
在本发明一些实施例中,操作符通过实施以下方法的系统将一个以上的计算函数应用于事件窗口。
现在参考图8,图8示出了根据本发明一些实施例的示意性表示处理事件流的操作800的第四可选流程的流程图。在这些实施例中,操作符接收501事件流中的一些事件,每个事件具有多个事件属性的多个值。在502中,操作符通过从事件流的一些事件中选择事件来产生事件窗口。选择事件以使每个所选事件具有符合过滤测试的至少一个特定事件属性的值。在503中,在这些实施例中,操作符将计算函数应用于事件窗口,以产生一个或多个结果事件。另外,在这些实施例中,操作符将至少一个附加计算函数应用505于事件窗口,以产生一个或多个结果事件。在一些实施例中,操作符生成504至少两个输出结果流。在这些实施例中,该至少两个输出结果流中的每个包括一个或多个结果事件中的至少一个。
对本发明各个实施例的描述只是为了说明的目的,而这些描述并不旨在穷举或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,本领域技术人员可以清楚理解许多修改和变化。相比于市场上可找到的技术,选择此处使用的术语可最好地解释本实施例的原理、实际应用或技术进步,或使本领域其他技术人员理解此处公开的实施例。
预计在从本申请走向成熟的专利有效期间,将开发许多相关的操作符和事件,并且术语“操作符”和“事件”的范围旨在先验地包括所有这些新技术。
本文所使用的术语“约”是指±10%。
术语“包括”以及“有”表示“包括但不限于”。这个术语包括了术语“由……组成”以及“本质上由……组成”。
短语“主要由……组成”意指组成物或方法可以包含额外成分和/或步骤,但前提是所述额外成分和/或步骤不会实质上改变所要求的组成物或方法的基本和新颖特性。
除非上下文中另有明确说明,此处使用的单数形式“一个”和“所述”包括复数含义。例如,术语“一个复合物”或“至少一个复合物”可以包括多个复合物,包括其混合物。
此处使用的词“示例性的”表示“作为一个例子、示例或说明”。任何“示例性的”实施例并不一定理解为优先于或优越于其他实施例,和/或并不排除其他实施例特点的结合。
此处使用的词语“可选地”表示“在一些实施例中提供且在其他实施例中没有提供”。本发明的任意特定的实施例可以包含多个“可选的”特征,除非这些特征相互矛盾。
在整个本申请案中,本发明的各种实施例可以范围格式呈现。应理解,范围格式的描述仅为了方便和简洁起见,并且不应该被解释为对本发明范围的固定限制。因此,对范围的描述应被认为是已经具体地公开所有可能的子范围以及所述范围内的个别数值。例如,对例如从1到6的范围的描述应被认为是已经具体地公开子范围,例如从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等,以及所述范围内的个别数字,例如1、2、3、4、5和6。不管范围的宽度如何,这都适用。
当本文指出一个数字范围时,表示包含了在指出的这个范围内的任意所列举的数字(分数或整数)。短语“在第一个所指示的数和第二个所指示的数范围内”以及“从第一个所指示的数到第二个所指示的数范围内”在本文可互换使用,表示包括第一个和第二个所指示的数以及二者之间所有的分数和整数。
应了解,为简洁起见在单独实施例的上下文中描述的本发明的某些特征还可以组合提供于单个实施例中。相反地,为简洁起见在单个实施例的上下文中描述的本发明的各个特征也可以单独地或以任何合适的子组合或作为本发明的任何合适的其它实施例提供。在各个实施例的上下文中描述的某些特征未视为那些实施例的基本特征,除非没有这些元素所述实施例无效。
此处,本说明书中提及的所有出版物、专利和专利说明书都通过引用本说明书结合在本说明书中,同样,每个单独的出版物、专利或专利说明书也具体且单独地结合在此。此外,对本申请的任何参考的引用或识别不可当做是允许这样的参考在现有技术中优先于本发明。就使用节标题而言,不应该将节标题理解成必要的限定。
Claims (12)
1.一种处理事件流的系统,其特征在于,所述系统包括用于接收多个事件流的多个操作符,所述系统用于:
由所述多个操作符中的第一操作符接收第一事件流;
由所述第一操作符通过从所述接收到的第一事件流中选择满足过滤测试的第一事件集来生成第一事件窗口;
由所述第一操作符通过从所述接收到的第一事件流中选择不满足所述过滤测试的第二事件集来生成第一驱逐事件流;
在所述多个操作符中的第二操作符处从所述第一操作符接收所述第一驱逐事件流;
由所述第一操作符在所述第一事件集上应用第一计算函数以获取第一输出事件流;以及
由所述第二操作符在所述第一驱逐流上应用第二过滤器和第二计算函数中的至少一个,以获取第二输出事件流;
由所述第一操作符接收第二事件流;
由所述第一操作符通过从所述第一事件窗口和所述第二事件流中选择满足所述过滤测试的第三事件集来生成第二事件窗口;
由所述第一操作符通过从所述第一事件窗口和所述第二事件流中选择不满足所述过滤测试的第四事件集来生成第二驱逐事件流;
在所述第二操作符处从所述第一操作符接收所述第二驱逐事件流;
由所述第一操作符在所述第三事件集上应用所述第一计算函数以获取第三输出事件流;以及
由所述第二操作符在所述第二驱逐流上应用所述第二过滤器和所述第二计算函数中的至少一个,以获取第四输出事件流。
2.根据权利要求1所述的系统,其特征在于,所述多个操作符中的至少一个是由至少一个硬件处理器执行的软件对象。
3.根据权利要求1所述的系统,其特征在于,所述第一操作符用于产生多个输出流;
所述多个输出流中的一个输出流由所述多个操作符中的至少一个第三操作符接收;以及
所述多个输出流中的第二输出流由所述多个操作符中的至少一个第四操作符接收。
4.根据权利要求3所述的系统,其特征在于,所述第一操作符和所述第三操作符是由相同的硬件处理器执行的软件对象。
5.根据权利要求1所述的系统,其特征在于,所述多个操作符以有向无环图(directed-acyclic-graph,DAG)拓扑或有向带环图拓扑连接。
6.根据权利要求1所述的系统,其特征在于,所述多个操作符以管道拓扑连接。
7.根据权利要求1所述的系统,其特征在于,所述多个操作符以网格拓扑和网状拓扑中的一种拓扑连接。
8.根据权利要求1所述的系统,其特征在于,所述多个事件流中每个流的每个事件具有事件序列中的序列号;以及
所述过滤测试包括将所述序列号和最后接收到的事件的第二序列号之间的差值与特定数量阈值进行比较。
9.根据权利要求1所述的系统,其特征在于,所述事件流中的每个事件具有时间,所述时间是事件发生时间或事件接收时间;以及
所述过滤测试包括将所述时间与当前时间之间的差值与特定时间差阈值进行比较。
10.根据权利要求1至9任一项所述的系统,其特征在于,还包括至少一个传感器;
其中,所述事件流中的事件包括由所述至少一个传感器收集的信息。
11.根据权利要求1所述的系统,其特征在于,所述事件流中的事件包括以下一组信息:温度、水位、网站访问量、价格、人数、年龄、长度、高度、重量,周长、光量、声音量、金额、地理位置、购买量、对象数量、时间戳、互联网协议地址、媒体访问控制器地址、识别号码、识别名称、电话号码、电话呼叫元数据、商家名称和商家识别号码。
12.一种由多个操作符处理事件流的方法,其特征在于,包括:
由所述多个操作符中的第一操作符接收第一事件流;
由所述第一操作符通过从所述接收到的第一事件流中选择满足过滤测试的第一事件集来生成第一事件窗口;
由所述第一操作符通过从所述接收到的事件流中选择不满足所述过滤测试的第二事件集来生成第一驱逐事件流;
在所述多个操作符中的第二操作符处从所述第一操作符接收所述第一驱逐事件流;
由所述第一操作符在所述第一事件集上应用第一计算函数以获取第一输出事件流;以及
由所述第二操作符在所述第一驱逐流上应用第二过滤器和第二计算函数中的至少一个,以获取第二输出事件流;
由所述第一操作符接收第二事件流;
由所述第一操作符通过从所述第一事件窗口和所述第二事件流中选择满足所述过滤测试的第三事件集来生成第二事件窗口;
由所述第一操作符通过从所述第一事件窗口和所述第二事件流中选择不满足所述过滤测试的第四事件集来生成第二驱逐事件流;
在所述第二操作符处从所述第一操作符接收所述第二驱逐事件流;
由所述第一操作符在所述第三事件集上应用所述第一计算函数以获取第三输出事件流;以及
由所述第二操作符在所述第二驱逐流上应用所述第二过滤器和所述第二计算函数中的至少一个,以获取第四输出事件流。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2017/062548 WO2018215062A1 (en) | 2017-05-24 | 2017-05-24 | System and method for stream processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109643307A CN109643307A (zh) | 2019-04-16 |
CN109643307B true CN109643307B (zh) | 2021-08-20 |
Family
ID=58772889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780017236.8A Active CN109643307B (zh) | 2017-05-24 | 2017-05-24 | 流处理系统和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109643307B (zh) |
WO (1) | WO2018215062A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023023337A2 (en) * | 2021-08-20 | 2023-02-23 | Kenny To Research LLC | Method for organizing data by events, software and system for same |
US20240054065A1 (en) * | 2022-08-15 | 2024-02-15 | Arm Limited | Behavioral sensor for creating consumable events |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012918A (zh) * | 2010-11-26 | 2011-04-13 | 中金金融认证中心有限公司 | 一种规律挖掘和执行系统及其方法 |
CN105074698A (zh) * | 2013-02-19 | 2015-11-18 | 甲骨文国际公司 | 并行地执行连续事件处理(cep)查询 |
US9275353B2 (en) * | 2007-11-09 | 2016-03-01 | Oracle America, Inc. | Event-processing operators |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8069190B2 (en) * | 2007-12-27 | 2011-11-29 | Cloudscale, Inc. | System and methodology for parallel stream processing |
US20150293974A1 (en) * | 2014-04-10 | 2015-10-15 | David Loo | Dynamic Partitioning of Streaming Data |
US10235436B2 (en) * | 2014-08-29 | 2019-03-19 | Microsoft Technology Licensing, Llc | Event stream transformations |
-
2017
- 2017-05-24 WO PCT/EP2017/062548 patent/WO2018215062A1/en active Application Filing
- 2017-05-24 CN CN201780017236.8A patent/CN109643307B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9275353B2 (en) * | 2007-11-09 | 2016-03-01 | Oracle America, Inc. | Event-processing operators |
CN102012918A (zh) * | 2010-11-26 | 2011-04-13 | 中金金融认证中心有限公司 | 一种规律挖掘和执行系统及其方法 |
CN105074698A (zh) * | 2013-02-19 | 2015-11-18 | 甲骨文国际公司 | 并行地执行连续事件处理(cep)查询 |
Also Published As
Publication number | Publication date |
---|---|
WO2018215062A1 (en) | 2018-11-29 |
CN109643307A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021204272A1 (zh) | 基于隐私保护确定目标业务模型 | |
US11295262B2 (en) | System for fully integrated predictive decision-making and simulation | |
US10885292B2 (en) | System, method and computer program product for pollution source attribution | |
US11487764B2 (en) | System and method for stream processing | |
CN106649831B (zh) | 一种数据过滤方法及装置 | |
CN106844090A (zh) | 基于压缩比历史的数据复制 | |
US20160241578A1 (en) | Volumetric event forecasting tool | |
CN110263869B (zh) | 一种Spark任务的时长预测方法及装置 | |
CN109460432A (zh) | 一种数据处理方法及系统 | |
CN111008631B (zh) | 图像的关联方法及装置、存储介质和电子装置 | |
CN109643307B (zh) | 流处理系统和方法 | |
KR101634402B1 (ko) | 회고적 이벤트 프로세싱 패턴 언어 및 실행 모델 확장 | |
US10664743B2 (en) | Modeling a subject process by machine learning with adaptive inputs | |
CN106648839B (zh) | 数据处理的方法和装置 | |
CN109977139B (zh) | 基于类结构化查询语句的数据处理方法和装置 | |
CN108595685B (zh) | 一种数据处理方法及装置 | |
CN105849703B (zh) | 通过上下文分区的经分类的事件监视 | |
CN110022343B (zh) | 自适应事件聚合 | |
US10122805B2 (en) | Identification of collaborating and gathering entities | |
US11645784B1 (en) | Techniques for detecting and classifying relevant changes | |
CN113393286A (zh) | 一种信息处理方法及装置、存储介质 | |
CN113010382A (zh) | 一种埋点数据的计算方法、装置、存储介质和电子设备 | |
CN112215527A (zh) | 一种物流管理方法及装置 | |
US10191870B2 (en) | Data polling using a chain sleep technique | |
US20150271036A1 (en) | Generating a representation of the status of a data processing system based on empirical operations metrics and derived sentiment metrics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220224 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |