用于实时处理数据流的受管理功能执行的制作方法

文档序号:16367442发布日期:2018-12-22 08:30阅读:175来源:国知局
用于实时处理数据流的受管理功能执行的制作方法

联网传感器和计算设备等互连设备可生成与各种操作、事务处理或其他事件有关的数据并将其发送至远程设备以供存储和后续分析。举例来说,移动电话可生成指示其位置、电话用户正在使用的应用程序等的数据,这些数据中的至少一些可被收集和分析,以便向用户呈现定制的优惠券、广告等。对监控摄像机所收集的数据进行分析的结果可用于预防和/或解决犯罪,从嵌入飞机发动机、汽车或复杂机械内各个位置的传感器收集的数据可用于各种目的,如预防性维护、提高效率和降低成本。

可生成大量这类数据并以流方式发送,以便可实时捕获数据。然而,随着时间的推移,可能难以对大量流数据进行有效地分析。想要解译或操纵数据,数据记录在数据流内的不同数据格式可能需要执行不同的操作,这使得难以利用公共方案来处理多个数据流。数据流内的数据量可能随时间而变化,这使得获取适当数量的资源来有效地分析数据流的工作愈加复杂。

附图说明

图1是示出根据至少一些实施方案的用于实时处理数据流的受管理功能执行的逻辑框图。

图2是示出根据至少一些实施方案的实现提供数据流的受管理功能执行的流处理服务的供应商网络的逻辑框图。

图3是根据至少一些实施方案的实现用于实时处理数据流的受管理功能执行的流处理服务的逻辑框图。

图4是根据至少一些实施方案的流处理节点的逻辑框图。

图5示出了根据至少一些实施方案的经由编程接口的客户端和流处理服务之间的交互。

图6示出了根据至少一些实施方案的流处理节点与不同目标之间用以传递流处理结果的交互。

图7a和7b是根据至少一些实施方案的提供用于处理一个或多个数据流的流处理功能的图形用户界面的实施例。

图8是示出根据至少一些实施方案的用于为数据流提供用于实时执行流处理功能的流处理节点的各种方法和技术的高级流程图。

图9是示出根据至少一些实施方案的在流处理节点处应用流处理功能的各种方法和技术的高级流程图。

图10是示出可在至少一些实施方案中使用的示例性计算系统的框图。

虽然本文通过对若干实施方案和示意性附图举例的方式描述了实施方案,但本领域的技术人员应认识到,实施方案并不限于所描述的实施方案或附图。应理解,附图和对附图的详细描述并不意图将实施方案限于所公开的特定形式,而是相反,意图涵盖落入由所附权利要求书限定的精神和范围内的所有修改、等同物和替代方案。本文所使用的标题仅用于组织目的,并且并不意图用来限制本说明书或权利要求书的范围。如贯穿本申请所使用,词语“可”是在许可的意义上(即,意指具有可能性)而非强制的意义上(即,意指必须)使用的。类似地,词语“包括”、“包含”和“含有”意指“包括但不限于”。

具体实施方式

本文描述了用于实现实时处理数据流的受管理功能执行的方法和装置的各种实施方案。本文使用的术语“数据流”是指数据记录序列,它可由一个或多个数据生成器生成并由一个或多个数据消耗器访问,其中假定每个数据记录是表示一个或多个属性的不可变字节序列。本文中流的记录也可称为观察记录、观察结果、点或数据记录,并且数据生成器可称为流数据源。受管理流处理系统可提供编程接口(例如,应用编程接口(api)、网页或网站、图形用户界面或命令行工具)以便以各种方式执行通过编程接口指定的功能(例如,通过编程接口选择、上传或修改),并将处理结果的报告指向一个或多个目标。

受管流处理系统可确定数据方案和处理资源以便执行流处理功能。流处理功能可根据标准编程语言或规范来指定,如结构查询语言(sql)、自定义编程或matlab等数值计算语言、领域特定语言(可由受管理流处理系统定义和实现)、或者使用户能够选择输入数据流、功能操作(例如,聚合、过滤、统计操作等)和结果目标的输入表单或其他界面元素(例如,功能生成向导)。受管理流处理系统可处理与输入数据流的连接或交接、选择或供应可执行指定流处理功能的适当流处理节点(或其他处理资源)(例如,实现适当的执行引擎,如解译sql语句的存储引擎),并将结果报告至结果目标。这样一来,受管理流处理系统可允许用户在原始数据流上连接、解析和应用实时模式。

在受管理流处理系统处执行流处理功能可使用户能够快速构建包括数据过滤器、变换和聚合的实时计算,而无需耗费额外的时间来手动管理资源以执行指定的流处理功能。此外,受管理流处理系统可提供预定义流处理功能或操作的库,以包括在可定制以构建各种流处理应用的功能中,所述功能包括关键性业务流应用,如实时流量拥塞分析、紧急呼叫监控、欺诈检测和工业传感器分析。

图1是示出根据至少一些实施方案的用于实时处理数据流的受管理功能执行的逻辑框图。客户端140可经由接口112向受管理流处理系统110提供流处理功能,所述接口112可以是可通过客户端140与受管理流处理系统110之间的网络连接来调用的编程接口。然后,受管理流处理系统110可实现流处理供应130,以便在流处理节点120上执行流处理功能,由此使得当接收数据流102的数据记录时,流处理节点120可应用流处理功能,并将结果104提供至指定的结果目标。

如上所述,客户端140可指定流处理功能以实现不同的应用。例如,客户端140可包括流处理功能中的操作,所述操作选择某些属性,然后指定对所选属性执行特定处理的操作(例如,过滤属性、对照已知模式验证属性的值、执行时间序列分析)。关键性能指示符(kpi)是可从数据流中提取以供执行这类操作的数据属性的一个实施例。客户端140可利用流处理功能来执行流模式生成,由此使得当从数据流记录中检测到某些事件时可触发实时警报,或者由此使得可插入附加数据以扩充数据流的数据记录中所传送的数据。此外,客户端140可指定跨多个数据流处理的流处理功能,以便执行复杂流处理(例如,分析不同流中的流事件之间的时间模式)。流处理记录可提供至已完成并准备好执行(例如,识别输入流、操作、结果目标和其他信息,如下面关于图5所讨论的)的受管理流处理系统110。在一些实施方案中,客户端可配置流处理功能的性能(例如,通过提供分布方案以将来自一个或多个输入数据流的数据映射至应用流处理功能的分布式流处理节点集)。

一旦受管理流处理系统110接收流处理功能,流处理供应130就可分析输入数据流102,从而确定数据流102的数据方案。举例来说,流处理供应130可读取方案的若干数据记录,并确定每个数据记录具有4个属性、2个整数值和2个字符串值,并标记或定义这些不同的属性,以便可通过处理功能(例如,利用指定的属性名称作为能力的“列”,由此使得可执行使用不同列值的sql查询)来评估、调控、移除或变换不同的属性。受管理流处理系统110还可选择流处理节点120中的一个适当节点来执行流处理功能,如下面关于图3和图8所讨论的。例如,流处理供应130可确定是否需要一个或多个流处理节点120来处理可针对所识别的输入数据流而接收的一定量数据记录。在一些实施方案中,流处理节点120可实现为多租户处理模型的部分(其中,针对不相关流处理功能的流处理可由相同节点或底层主机执行),并且流处理供应130可选择能够执行接收流处理功能的流处理节点120。流处理供应130可识别用于执行流处理功能的处理特征或特性,并识别能够提供指定特性(例如,网络带宽或处理速度)的流处理节点120。流处理供应130还可为数据流102的源和结果104的目标配置网络连接或接口。

流处理节点120可代表客户端140对数据流102执行流处理功能,而无需客户端干预或直接管理,如下面参考图4和9更详细描述的。流处理节点120可经由由流处理供应130配置的已建连接或接口来检索和/或接收数据流102,并实现一个或多个不同的执行引擎来执行由流处理供应130提供至流处理节点120的流处理功能。在一些实施方案中,流处理节点120可执行任何必要的解译、编译或其他形式的分析,以便执行流处理功能(包括评估数据记录以确定映射至流处理功能的数据方案),而在其他实施方案中,流处理供应130可提供流处理节点120可执行的可执行或其他准备好运行的数据集。流处理节点120可向受管理流处理系统110和/或客户端140报告性能度量或其他信息,以便描述流处理节点120处流处理功能的性能(例如,用于性能调整和/或配置)。

数据流102可具有许多个源。流管理服务,如下面关于图2所讨论的流管理服务250,可创建、管理和提供对数据流的访问,所述数据流可被指定为流处理节点120的输入数据流。其他设备、系统或服务可生成数据记录流(例如,数据存储器、移动设备、数据日志,或分布式系统的多个设备、系统或服务),所述数据记录流可被配置为通过网络提供数据流至流处理节点120以供处理。类似地,可改变流处理功能的结果104的目标。举例来说,一些流处理功能可将结果引导至数据存储器和另一个系统,所述另一个系统可执行响应动作或为结果104调用其他应用程序。下面详细讨论的图6提供了在一些实施方案中可实现的结果的目标的许多实施例。

请注意,先前的描述并非旨在进行限制,而是仅作为用于实时处理数据流的受管理功能执行的逻辑实施例来提供。可利用组件、系统和/或设备的不同数量或组合来代表客户端执行流处理功能。

本说明书以供应商网络的一般描述开始,所述供应商网络可实现流处理服务,所述服务提供用于实时处理数据流的受管理功能执行。然后讨论流处理服务的各种实施例,包括不同的组件/模块,或可用作提供用于实时处理数据流的受管理功能执行的部分的组件/模块的布置。然后讨论实现用于实时处理数据流的受管理功能执行的许多不同方法和技术,其中一些在随附的流程图中示出。最后,提供了对示例性计算系统的描述,在所述示例性计算系统上可实现各种组件、模块、系统、装置和/或节点。在整个说明书中提供各种实施例。

图2是示出根据至少一些实施方案的实现提供对数据流的实时异常检测的流处理服务的供应商网络的逻辑框图。供应商网络200可由诸如公司或公共部门组织的实体建立,由此提供经由因特网和/或其他网络可访问客户端210的一个或多个服务(如各种类型的基于云的计算或存储)。供应商网络200可包括托管各种资源池的众多数据中心,如物理和/或虚拟化计算机服务器的集合、存储设备、联网设备等(例如,下面参考图10描述的计算系统1000),所述数据中心需要实现和分布由供应商网络200提供的基础设施和服务。在一些实施方案中,供应商网络200可实现流处理服务220,下面参考图3详细描述,可提供计算资源,如虚拟计算服务230和存储服务240,如对象存储服务、基于块的存储服务、数据仓库存储服务、流管理服务250和/或任何其他类型的基于网络的服务270(可能包括各种其他类型的存储、处理、分析、通信、事件处理、可视化和安全服务)。客户端210可经由网络280访问由供应商网络200提供的这些各种服务。同样地,基于网络的服务本身可彼此通信和/或利用以提供不同的服务。例如,在称为“实例”的单元中提供给客户端210的计算资源,如虚拟或物理计算实例或存储实例,可实现为由流处理服务220处理的数据流的数据生成器或数据消耗器,以及存储服务240等服务可用作数据流中的数据记录的目标,为计算实例提供虚拟块存储。

如上所述,虚拟计算服务230可向客户端210提供各种计算实例。例如,虚拟计算实例可包括具有指定计算容量(可通过指示cpu的类型和数量、主存储器大小等来指定)的一个或多个服务器和指定的软件堆栈(例如,可继而在管理程序上运行的特定版本的操作系统)。可单独或组合使用多种不同类型的计算设备,由此在不同实施方案中实现虚拟计算服务230的计算实例,包括专用计算机服务器、存储设备、网络设备等。在一些实施方案中,可配置(和/或授权)实例客户端210或任何其他用户以将网络流量导向计算实例。在各种实施方案中,计算实例可附加或映射至由基于块的存储服务(未示出)提供的一个或多个数据卷,以便获得用于执行各种操作的基于块的持久存储。

计算实例可运行或实现各种不同的平台,如应用服务器实例、javatm虚拟机(jvm)、专用操作系统、支持各种解译或编译的编程语言的平台(如ruby、perl、python、c、c++等、或适用于执行客户端应用的高性能计算平台,而无需例如要求客户端210访问实例。在一些实施方案中,计算实例基于预期的运行时间比率而具有不同的类型或配置。特定计算实例的运行时间比率可定义为实例被激活的时间量与实例被保留的总时间量的比率。在一些实现方案中,运行时间比率也可称为利用率。如果客户端期望在保留实例的相对较短时间内使用计算实例(例如,一年期预留的30%-35%),则客户端可决定将实例保留为lowuptimeratio(低运行时间比率)实例,并根据相关定价政策支付折扣小时使用费。如果客户端期望具有要求实例在大多数时间上升的稳态工作负载,则客户端可保留highuptimeratio(高运行时间比率)实例并且可能支付甚至更低的每小时使用费,尽管在一些实施方案中每小时费用可根据定价政策针对整个保留期间收费,而不管实际使用的小时数。在一些实施方案中,也可支持具有相应定价策略的mediumuptimeratio(中等运行时间比率)实例的选项,其中前期成本和每小时成本介于相应的高运行时间比率和低运行时间比率成本之间。

计算实例配置还可包括具有一般或特定目的的计算实例,如用于计算密集型应用的计算工作负载(例如,高流量web应用、广告服务、批处理、视频编码、分布式分析、高能物理、基因组分析和计算流体动力学)、图形密集型工作负载(例如,游戏流、3d应用程序流、服务器端图形工作负载、渲染、财务建模和工程设计)、内存密集型工作负载(例如,高性能数据库、分布式内存缓存、内存分析、基因组组装和分析),以及存储优化工作负载(例如,数据仓库和集群文件系统)。计算实例的大小,如特定数量的虚拟cpu核心、内存、缓存、存储器以及任何其他性能特征。计算实例的配置还可包括它们在特定数据中心、可用区、地理位置等中的位置以及(在保留计算实例的情况下)预留期限长度。

存储服务240可包括各种类型的存储服务,如不同类型的存储方案。在各种实施方案中,可实现基于对象的数据存储,由此为数据对象提供高度持久的存储,如作为由流管理服务220管理的数据流的部分而存储的数据记录。例如,基于对象的数据存储可实现为键值数据存储,其中数据对象与唯一键相关联。数据对象的密钥用于访问或管理存储在基于对象的数据存储器中的数据对象。在各种实施方案中,存储服务240还可包括数据仓库,由此在云计算环境中建立、操作和缩放数据仓库。由数据仓库托管的数据仓库群集可提供企业级数据库查询和管理系统,所述系统允许用户诸如通过将群集缩放请求发送至由网络服务实现的群集控制接口来缩放群集。缩放群集可允许网络服务的用户执行其数据仓库功能,诸如对结构化数据的快速查询能力、与各种数据加载和etl(提取、变换和加载)工具的集成、与最佳级别的商业智能(bi)报告、数据采掘和分析工具的客户端连接,以及更有效地对复杂分析查询(如包括多表连接、子查询和聚合的那些)的极快速执行的优化。存储服务240可包括各种类型的数据库系统和其他数据存储方案,如nosql数据库或各种类型的关系数据库系统。在至少一些实施方案中,与存储服务240的更新或其他交互可为用于由流处理服务220处理的一个或多个数据流的源。

流管理服务250可提供编程接口(例如,应用编程接口(api)、网页或网站、图形用户界面或命令行工具)以实现流的创建、配置和删除。在一些实施方案中,编程接口还可实现流数据记录的提交、存储、分析、变换和/或检索。在各种实施方案中,流管理系统的一些客户端可开发直接调用流管理系统编程接口的应用程序。然而,在至少一些实施方案中,除了流管理系统接口之外,可为客户提供更高级抽象或应用级处理框架,这可简化不希望使用流管理系统所支持的低级流受管理功能来开发应用程序的那些客户端的流处理的各个方面。这类框架可提供其自身的编程接口(例如,在流管理系统接口上构建),从而使得客户能够更多地关注使用流记录而不是在较低级流管理操作上实现的业务逻辑。可将更高级别的框架实现为流管理系统的部分,由此提供完全受管理的数据流。

例如,流管理服务250可实现数据摄取系统,所述数据摄取系统被配置为从数据生成器获得特定数据流的数据记录(例如,通过操作数据流的一个或多个摄取节点)。在一些实施方案中,可根据用于对数据流进行分区的方案来获得流的数据记录。分区方案可由流管理服务250的客户端为数据流选择,由此使得从指示数据记录所属的特定分区的数据产生器接收数据记录。然而,在一些实施方案中,数据流可由流管理服务250完全管理,并且数据生成器可在没有任何分区引导的情况下发送数据记录。相反,数据摄取系统可分配数据记录以将数据记录路由至所识别的分区。一旦被摄取,流管理服务可存储所获得的数据记录(例如,在为数据流提供的相应存储节点上)。这类存储节点可在各种类型的存储设备中的任何一种上记录、保存、存储或以其他方式存留数据记录(其可根据数据流的持久性策略来执行)。

为了从数据流中检索数据,流管理服务可提供可访问数据流的存储数据记录的检索系统(例如,实现检索节点)。在一些实施方案中,可响应于来自消耗器(例如,对数据流数据执行处理的流处理节点)的请求来执行数据检索。

在一些实施方案中,流管理服务250可提供支持一组或多组编程接口(例如,应用编程接口(api)、网页或网站、图形用户界面或命令行工具)的接口,由此实现(受客户端管理或完全管理的)的数据流的创建、配置和删除,以及流数据记录的提交、存储和检索。例如,数据产生器可被配置为通过利用流管理服务250所提供的客户端库来将数据记录放入数据流中以利用请求,经由接口向流管理服务250发送“putrecord”请求。类似地,数据消耗器可被配置为经由接口访问流管理服务250,并且在执行应用程序时利用流管理服务250所提供的客户端库来“getnextrecords”,由此检索要在数据流中处理的下一个数据记录。

其他基于网络的服务260可包括各种服务,包括配置客户端供应商网络资源(例如,负载平衡)的联网的服务,安全性(例如,防火墙、访问控制),通信(例如,通知或消息传递系统)、事件驱动的执行服务、可视化服务或用于进一步数据处理的服务。外部数据流源/目标270可提供可由流处理服务220处理的数据流和/或用作流处理服务220所生成的结果的目标。例如,外部数据流源可为收集大量源信息(例如,流量或温度)并组装源数据的单个数据流以供流处理服务220处理的系统。外部数据流源/目标可为专用数据存储器或处理系统,其可进一步对从流处理服务220报告的结果进行操作。

客户端210可包含可配置为向网络供应商200提交请求的任何类型的客户端。例如,给定客户端210可包括适当版本的网络浏览器,或可包括被配置来作为延伸执行或在由网络浏览器提供的执行环境内执行的插件模块或其他类型的代码模块。或者,客户端210可涵盖诸如数据库应用程序(或其用户界面)、媒体应用程序、办公室应用程序或可利用计算实例、数据卷226或供应商网络200中其他基于网络的服务来执行各种操作的任何其他应用程序的应用程序。在一些实施方案中,这类应用可包括充分的协议支持(例如,用于适当版本的超文本传输协议(http)),由此用于产生和处理基于网络的服务请求,而不必实现对所有类型的基于网络的数据的完整浏览器支持。在一些实施方案中,客户端210可被配置来根据表述性状态转移(rest)类型的基于网络的服务架构、基于文件或基于消息的基于网络的服务架构、或另一适当的基于网络的服务架构来产生基于网络的服务请求。在一些实施方案中,客户端210(例如,计算客户端)可被配置为以对利用计算实例所提供的计算资源或数据卷226所提供的块存储在客户端210上实现的应用程序透明的方式提供对计算实例或数据卷226的访问。

客户端210可经由外部网络260将基于网络的服务请求传送至供应商网络200。在各种实施方案中,外部网络280可包含在客户端210与供应商网络200之间建立基于网络的通信所必需的网络硬件和协议的任何适当组合。例如,网络280通常可涵盖共同地实现因特网的各种电信网络和服务供应商。网络280也可包括专用网络,如局域网(lan)或广域网(wan)以及公共或专用无线网络。例如,给定的客户端210和供应商网络200可分别被供应在具有其自身内部网络的企业内。在这类实施方案中,网络280可包括在给定的客户端210与因特网之间以及因特网与供应商网络200之间建立联网链路所必要的硬件(例如,调制解调器、路由器、交换机、负载均衡器、代理服务器等等)和软件(例如,协议堆栈、计费软件、防火墙/安全软件等等)。注意,在一些实施方案中,客户端210可使用专用网络而不是公共因特网来与供应商网络200通信。

图3是根据至少一些实施方案的实现用于实时处理数据流的受管理功能执行的流处理服务的逻辑框图。受管理流处理服务220可经由接口312接收流处理功能,并且从处理节点池370提供一个或多个处理节点370以执行流处理功能。如图3所示,受管理流处理服务220可实现控制平面310,由此管理流处理节点370处的流处理功能的执行。

在各种实施方案中,控制平面310可实现接口312,所述接口312可为由受管理流处理服务220的客户端的各种调用或交互调用的程序接口。例如,如下面关于图5所讨论的,客户端可发送有关创建包括流处理功能的流处理应用的请求。此请求可根据api调用(例如,“createstreamprocessor”)格式化,并且可包括针对数据流执行(例如,查询、添加、移除、变换、聚合、计算等)的一个或多个操作以、输入数据流(例如,数据流名称、网络地址或其他标识信息)以及结果目标(例如,数据存储器名称,网络地址或其他标识/连接信息)作为调用的参数。接口312可由命令行界面调用,或者可实现为图形用户界面的一部分,例如下面关于图7所讨论的。接口312还可提供流处理功能(例如,以编码语言编写或者作为可执行或可执行流处理功能的其他对象提供)的上传。

在至少一些实施方案中,控制平面310可实现流处理功能解译350。流处理解译350可提供各种库、编译器或可接收流处理功能(例如,操作、输入数据流、目标等)并生成可执行形式(例如,对象代码、字节代码、工作流或其他指令集)的任何其他种类的解译器。例如,在一些实施方案中,处理节点370可实现公共执行引擎,由此使得流处理功能解译350可提供可在任何可用处理节点上运行的可执行文件。在一些实施方案中,流处理功能解译350可验证接收的流处理功能的错误(例如,相同的输入和结果目标),从而将解译和执行留给其他组件,如位于处理节点370处的执行引擎。在各种实施方案中,流处理功能350可评估输入数据流以确定用于执行流处理功能的数据方案。例如,流处理功能解译可访问和分析一组数据记录以确定数据流的模式,包括标识或识别数据记录中的公共或预期属性,所述属性可经由接口312提供回客户端。

在至少一些实施方案中,控制平面310可实现流处理功能库340,所述流处理功能库340可提供公共和/或用户提交的流处理功能的集合(或用于流处理功能的单独操作)。例如,可存储用于过滤、聚合或生成滚动平均值的流处理功能,作为流处理功能库340的一部分。客户端可从库中选择流处理功能,并通过接口312调整或定制,以供执行(例如,提供输入数据流信息、结果目标等)。这样一来,流处理功能库340可保持公共的流处理功能,从而可轻松适用于不同的流处理应用。

在各种实施方案中,处理节点供应330可实现为控制平面310的部分,以便为接收的流处理功能提供处理节点。在至少一些实施方案中,处理节点供应330可执行初步分析以确定流处理功能的处理要求或配置。例如,如果指示了多个数据输入流,则处理节点供应330可确定是否可能需要获取一个或多个处理节点370来执行流处理功能。如果可确定多个流处理节点,则处理节点供应330可确定映射方案以在处理节点370之间分布数据,并且重构或聚合来自各个处理节点370的结果以供报告。如上所述,处理节点供应可识别所需的性能特征或其他流处理功能要求,并且获得和选择适当的处理节点,如下面关于图8所讨论。

一旦选择了处理节点370,处理节点供应330就可配置或获得适当的访问凭证,由此向处理节点370a提供对输入数据流和结果目标的访问。例如,如果需要安全凭证,则处理节点供应可在提交流处理功能时解析由客户端提供给受管理流处理服务的信息,以便提取用于向处理节点370提供访问的安全凭证。处理节点供应330可向处理节点370提供操作和其他信息,以便启动流处理功能的执行(例如,通过提供用于应用流处理功能的sql语句、可执行文件或其他指令),在一些实施方案中,其可由流处理功能解译350生成。

在各种实施方案中,控制平面310可实现处理节点管理320,由此管理处理节点370处的流处理功能的执行。例如,基于经由流处理功能性能监视360接收的性能度量,诸如指示处理利用率、网络利用率、存储器利用率或任何其他计算性能度量的度量,可指示处理节点370无法跟上所接收的数据记录流(例如,通过测量结果输出速率、存储器利用率、网络分组的入口缓冲器等)。处理节点管理320可向处理节点供应330请求另一个处理节点370,以便在两个(或更多个)处理节点之间分割用于一个处理节点的工作负载。可通过处理节点管理320来执行各种其他受管理功能,诸如将流处理功能从一个处理节点迁移至另一个处理节点、改变分区数据流的映射、或者配置的任何其他实时改变,由此执行流处理查询。在一些实施方案中,客户端可向控制平面310提交重新配置请求以改变数据流的执行配置(例如,改变用于流处理查询的处理节点的数量)。

在一些实施方案中,控制平面310可实现流处理功能性能监视360。可实现性能监视360以便向处理节点管理320和/或受管理流处理服务220的客户端提供反馈。例如,如下面关于图5所讨论的功能性能报告可通过性能监视360生成并通过接口312发送。

受管理流处理服务220可实现流处理节点370a到370n的池,其可在专用硬件主机(例如,下面图10中的计算系统1000)上实现,或者可实现为虚拟实例(例如,通过供应图2中的计算服务230的计算实例)。图4是根据至少一些实施方案的流处理节点的逻辑框图。流处理节点400可检索数据流的数据记录,以便应用流处理功能(或流处理功能的分配部分/操作),并传送通过将流处理功能应用至指定目标而产生的结果。

流处理节点400可实现流数据检索410,以便与数据流源460连接。如上所述,可实现不同类型的数据流源。由受管理流接口实现的数据流可例如具有允许流数据检索单独地请求数据流记录402的接口。流数据检索410可周期性地请求流中的新数据记录402(例如,作为轮询行为的部分)。可通过流数据检索410来实现节流、缓冲和其他处理速率控制,由此防止流处理节点400被淹没。例如,可实现节流阈值,所述阈值限制可排队或缓冲以供流处理节点400处理的数据记录的数量。当数据记录的数量超过节流阈值时,可执行超时或其他延迟,由此使得流处理节点400不会丢弃或以其他方式无法处理从流处理节点400接收的数据记录。在一些实施方案中,流数据检索410可被配置为注册和监听充当数据流源460的网络端点的数据流记录,以便自动发送数据流记录。

流处理节点400可实现功能应用引擎420,以便对由流数据检索410检索的数据记录执行流处理功能的操作。在一些实施方案中,可针对数据记录的特定方案或结构来实现功能应用引擎420。例如,在一些实施方案中,数据记录可指定呈关系格式的数据记录,其中行作为不同的数据记录,列作为不同的属性。功能应用引擎420可充当存储引擎(例如,sql引擎),所述引擎根据数据记录的数据方案将指定的操作(例如,选择、添加、移除、修改等)应用于数据记录。。因此,如果功能应用引擎420是sql存储引擎,则功能应用引擎420将数据记录视为表,并对映射至表的不同列的数据记录的属性执行指定操作。在一些实施方案中,功能应用引擎420可为执行平台(例如,用于可执行文件、工作流程,或由控制平面310提供的其他指令),所述平台解析数据记录、执行指定操作,并生成期望的结果。注意,前面的实施例并非旨在限制,因为可实现许多不同类型的功能应用引擎420来执行流处理功能的指定操作。在一些实施方案中,操作可依赖特定于功能的数据,如功能应用数据440,由此执行操作(例如,插入各种标签、标志或其他信息以扩充数据记录)。功能应用数据440可本地地存储在流处理节点400处,或者可从远程数据存储器或服务(例如,从图2中的存储服务240)获得。

流处理节点400可实现结果报告430,以便引导结果404发送至指定目标。在一些实施方案中,可指定结果的多个目标。与流数据检索410一样,结果报告430可利用不同的编程接口来注册并获得对指定目标的访问。结果报告430可例如将结果404重新格式化为适当的请求、格式或方案,以便确保所报告结果404的正确传送。在一些实施方案中,结果报告430可将结果404缓冲至更少的消息中,以便减少网络流量。在一些实施方案中,结果可基于每次处理数据记录时更新的处理功能(或操作)状态,并且仅在特定时间提供。例如,每次接收到数据记录时,可更新数据记录窗口的运行平均状态,但是可仅周期性地提供运行平均值(例如,每30分钟、每1小时等)。在至少一些实施方案中,不符合数据方案的数据记录(例如,缺失属性或不同类型的属性,例如当预期属性值为字符串但实际为整数时),可被存储、导向或以其他方式报告至错误存储器,以用于与数据流协调(例如,由用户)。

在至少一些实施方案中,流处理节点400可实现性能报告450。性能报告450可收集用于执行流处理功能的利用率、定时和其他性能相关的统计。性能报告450可周期性地将这些性能度量406发送至流处理功能性能监视360,以用于上面讨论的各种用途。在一些实施方案中,性能报告450可跟踪性能度量,并且根据流处理性能监视360的请求来提供(由此使得流处理功能性能监视360可实现清理器样式度量收集,从而避免被跨越流处理节点400的队列报告的度量所淹没)。

图5示出了根据至少一些实施方案的经由编程接口的客户端和流处理服务之间的交互。客户端500(其可为图2中的客户端210)或受管理流处理服务220的其他客户端可被配置为经由接口312访问或请求动作。例如,执行流处理功能510的请求可经由接口510发送至受管理流处理服务220。请求510可包括用于执行流处理功能的信息,包括但不限于输入数据流(例如,提供标识符、网络地址、访问信息/凭证等)、要执行的操作(例如,过滤、聚合、修改、变换、分离或以其他方式操纵数据记录的各种操作,包括可随时间计算或跟踪数据流的各种分析统计数据)、功能数据(例如,查找表、指向数据存储的指针,或指示可插入或利用以执行指定操作的附加数据的其他信息)、结果目标(例如,提供数据对象、数据存储器、网络地址、访问信息/凭证、数据格式、多个目标等等)。在一些实施方案中,请求510可包括特定性能配置(例如,指定用于执行流处理功能的单个处理节点、包括分布方案的分布式处理节点组,所述方案用于识别应如何在处理节点组中分布用于处理数据流的工作负载)。在一些实施方案中,请求510可识别流处理功能的性能目标或阈值,其可由受管理流处理服务使用以确定用于执行流处理功能的配置,或者如果超过(或未满足),可由受管理流处理服务220(其可自动确定可满足期望性能的不同配置)触发流处理节点的重新配置。

在至少一些实施方案中,受管理流处理服务220可经由接口312提供功能性能报告520,以便代表客户端500主动地执行流处理功能。例如,受管理流处理服务220可提供周期性(例如,每小时或每天)性能报告,或者可响应于某些事件(例如,未通过性能阈值或检测到流处理功能的错误事件)来提供性能报告520。功能报告520可包括用于执行流处理功能的各种性能度量,如各种硬件资源利用率(例如,存储器、处理器、存储设备或网络带宽)、每个数据记录的平均处理时间,或执行流处理功能的任何其他性能指示。在至少一些实施方案中,功能性能报告520可包括用于重新配置流处理功能的执行的各种调整推荐(例如,改变处理节点的数量、重新分布处理节点之间的不同操作的性能、推荐更有效或更准确的操作来替换流处理功能中的一个或多个指定操作)。

在至少一些实施方案中,客户端500可能能够通过发送重新配置性能请求530来随意调整建议或者重新配置流处理功能的性能。重新配置性能请求530可包括各种参数,如对作为处理操作的部分所执行的各种操作的改变或修改(例如,改变至“select”sql语句以创建更有效的搜索)。在一些实施方案中,请求530可修改或改变至不同的输入数据流(例如,以便利用不同的数据源来应用流处理功能)。对于利用附加功能数据来执行操作的那些流处理功能,可请求修改所使用的功能数据(例如,交换查找表或提供频繁访问的数据的本地副本,由此使得不需要访问远程副本)。

图6示出了根据至少一些实施方案的流处理节点与不同目标之间用以传递流处理结果的交互。流处理节点600可被配置为与多种类型的远程系统、组件或设备交互,以使得功能结果602可被发送至指定的目标。例如,如图6所示,功能结果602可被提供至通知服务620a(其可为图2中的供应商网络200的另一网络服务260)。然后,通知服务620a可立即将基于结果(例如,错误、满足的目标、每日状态等)生成的消息传递至其他许多其他类型的系统组件,或者跨应用程序或用户而使用的不同协议的设备,以便轮询不需要执行的结果602。

在一些实施方案中,可将功能结果602提供至存储服务620b(其可为图2中的供应商网络200的存储服务240)。例如,数据存储服务620b可将结果存储为日志以供后续事件分析、用于特定时间段的数据对象(例如,每日或每小时结果)、用于执行成本密集型机器学习算法的知识库,例如作为模式识别或特征选择,或用于高效大规模数据存储和访问的数据仓库。在一些实施方案中,可将功能结果602提供至事件处理服务620c(其可为图2中的供应商网络200的另一网络服务260)。例如,事件处理服务620c可运行代码或其他指定的动作集合以充当应用程序或后端服务,其基于接收的结果602而自动运行并缩放代码执行以获得高可用性(例如,在从处理数据流中接收新用户结果後在数据存储器中生成新用户简档)。在一些实施方案中,可将功能结果602提供至可视化服务620d(其可为图2中的供应商网络200的另一网络服务260)。可视化服务620d可获取功能结果602并自动推断数据类型和关系,并且推荐、建议和/或生成结果602的可视化(例如,自动生成可视化给定时间段内用户年龄分布的图形,作为数据流的功能结果602提供)。

在一些实施方案中,可将功能结果602提供为另一数据流620e的输入(如由图2中的流管理服务250管理的数据流)。例如,识别为功能结果602的部分的某些错误事件可输入至针对错误事件的数据流中,所述数据流聚合跨多个不同数据流源的错误事件以供分析。外部目标620f可为供应商网络200外部的数据存储器、服务、系统、组件或设备,其也可接收功能结果602。流处理节点600可获取(作为流处理功能的执行的供应和/或配置的部分)与外部目标620f通信所需的适当凭证、位置或其他信息。

图7a和7b是根据至少一些实施方案的提供用于处理一个或多个数据流的流处理功能的图形用户界面的实施例。流处理功能接口700可实现为一个或一系列基于网络的不同站点(例如,网站)的部分,其提供用于与受管理流处理服务交互的图形用户界面。流处理功能接口700自身可利用各种底层api或其他调用来启动流处理功能的执行。

在图7a中,在至少一些实施方案中,流处理功能接口700可实现数据流管理元件710,其可提供各种控件、接口或其他图形元素来识别输入数据流。在图7a所示的实施例中,数据流的描述性信息包括数据流名称(例如,可在各种文本功能规范中使用,如“select*fromdatastreama”)和其他数据流特定信息(例如,源、格式、或分区方案-如果有的话)。可包括用于添加数据流712或移除数据流714的用户界面元素,由此允许用户管理可用作流处理功能的输入的那些数据流。

在至少一些实施方案中,流处理功能接口700可实现结果目标管理元件720,其可提供各种控件、接口或其他图形元素来识别结果目标。在图7所示的实施例中,目标的描述性信息包括目标名称(例如,可在各种文本功能规范中使用,诸如“insertintodatastorea”)和其他数据流特定信息(例如,存储方案、可用空间、保留策略、通知格式或操作类型)。可包括用于添加目标722或移除目标724的用户界面元素,由此允许用户管理可用作流处理功能的输出的那些目标。

在至少一些实施方案中,流处理功能接口700可实现功能数据管理元件730,其可提供各种控件、接口或其他图形元素以上传、识别或移除功能数据。例如,可选择用户界面元素732来上传查找表,所述查找表指定要针对不同数据记录插入或修改的不同值。类似地,用户界面元素534可允许用户移除不再使用或过时的功能数据。

在至少一些实施方案中,流处理功能接口700可实现功能规范元素740,其可提供各种控件、接口或其他图形元素来上传、选择、指定和启动流处理功能的执行,如图7b中所示。例如,可图形化地示出功能742等功能以示出流源、操作和结果目标之间的各种连接。可通过操纵代表性图形元素来从功能742中选择、重新配置、添加或移除所选操作748等操作、连接、源或结果目标。元素744等用户界面元素可被实现以允许用户选择先前保存或定义的操作(例如,来自图3中的流处理功能库340)以使其包括在功能742中。功能规范740还可实现用户界面元素746以上传操作(或整个功能)。例如,选择上传操作元素746可发起一系列用户界面窗口或交互,以执行从客户端到包括代码文件或可执行对象的受管理流处理服务220的数据传输。

流处理功能接口700还可实现操作规范750以修改处理功能的操作。编辑界面754可提供空间以手动输入新的流处理操作或编辑所选择的预定义操作,例如所选操作748(例如,改变输入流、目标或修改操作)。这样一来,用户可轻松地修改不同应用程序的流处理操作,而无需编写全新的流处理功能。在各种实施方案中,启动功能处理元件760可触发由受管理流处理服务220开始执行流处理功能的请求。

已经关于流处理服务和/或其他基于网络的服务给出了用于实时处理数据流的受管理功能执行的实施例,如上面关于图2到7所讨论。处理来自数据流的数据的分布式系统的各种其他类型或配置可实现这些技术。例如,由单个业务实体操作的大规模分布式环境可实现用于为其自身的应用实时处理数据流的受管理功能执行。此外,上述各种模块、组件、系统和/或服务的不同配置可实现用于实时处理数据流的受管理功能执行。因此,上面讨论的流管理服务用作一个实施例上下文,其中可实现本文描述的许多流管理和处理技术。然而,下面关于图8和9讨论的技术还可使用如上所述的受管理流处理服务来实现。

图8是示出根据至少一些实施方案的用于为数据流提供用于实时执行流处理功能的流处理节点的各种方法和技术的高级流程图。如810所示,可通过编程接口接收用于数据流的功能,所述数据流指定要对一个或多个数据流的数据记录执行的一个或多个操作。功能可包括输入数据流(例如,提供标识符、网络地址、访问信息/凭证等),要执行的操作(例如,用于过滤、聚合、修改、变换、分离或以其他方式操纵数据记录的各种操作,包括可随时间计算或跟踪数据流的各种分析统计数据)、功能数据(例如,查找表,指向数据存储的指针,或指示可插入或利用以执行指定操作的附加数据的其他信息)、结果目标(例如,提供数据对象、数据存储器、网络地址、访问信息/凭证、数据格式、多个目标等等)。功能可根据标准编程语言或规范来指定,如结构查询语言(sql)、自定义编程或matlab等数值计算语言,领域特定语言或输入表单或其他界面元素。在至少一些实施方案中,可评估数据流的数据记录以确定数据流的数据方案。

在各种实施方案中,可确定被配置为应用所述功能的处理节点。例如,如820处所示,可确定是否需要多个处理节点来执行所述功能。在各种实施方案中,客户端可指定分布式处理方案(例如,并行处理方案),或者可分析数据的大小或格式以识别单个处理节点是否可以最低级水平执行功能的操作。如果需要多个处理节点,则在一些实施方案中,可进行确定以识别用于在多个处理节点之间执行功能的工作负载分配方案。例如,可使用简单的并行处理方案,其中每个处理节点对不同的数据记录执行相同的操作。在一些实施方案中,可将不同的操作分配给不同的处理节点。例如,处理密集型操作可在多个节点之间并行化,而非密集型操作可分配至单个处理节点。

如在830处所指示的,在各种实施方案中,可识别被配置为关于数据流应用功能的流处理节点。例如,如果根据特定语言(例如,sql)指定功能,则可选择实现能够编译/解译特定语言的执行引擎的处理节点。为数据流确定的数据方案可用于将处理功能的操作映射至数据流中的数据记录的属性(例如,通过将sql语句中的指定“列”映射至数据流的数据记录中的适当属性)。在一些实施方案中,配置的或有能力的处理节点可具有满足客户端指定的某些性能目标或阈值的某些性能特征(例如,处理带宽、网络带宽等)。

如840所示,然后可执行流处理节点处的功能,由此使得在接收到数据记录时对数据流的数据记录执行操作。例如,可将所述功能提供至所识别的节点,并且建立各种连接,由此使得可检索来自数据流的数据记录以便执行所述功能。

图9是示出根据至少一些实施方案的在流处理节点处应用流处理功能的各种方法和技术的高级流程图。流处理节点,如上文图4中的流处理节点400,可从数据流的源请求新数据记录(例如,通过实现轮询行为以周期性地检查新数据记录)。在一些实施方案中,可强制执行限制阈值,由此使得如果当前在流处理节点处处理的多个数据记录超过限制阈值,则可延迟对新数据记录的请求。如果接收到新数据记录,如920的肯定退出所示,则流处理节点可将数据流的处理功能应用至新数据记录以生成结果,如930所示,或为处理功能维护的其他状态信息。然后,可将生成的结果发送至功能的指定目标,如940所示。在一些实施方案中,可不针对接收的每个数据记录生成结果,而是可在时间窗口、数据量或记录数量到期时生成结果。例如,当接收到每个数据记录时,可更新平均属性值作为为数据流维护的状态信息的部分,但是可不提供数据流的结果,例如30分钟周期的平均属性值,直至30分钟的时间窗口已经过去(基于更新的处理功能状态)为止。流处理节点可在接收到数据流时继续处理数据流中的新数据记录,以便以流方式提供处理功能的实时应用。

在许多场景中上述技术可能有用。例如,大型供应商网络可包括数千个实例主机,这些实例主机同时为数万个客户端实现多个不同的多租户或单租户服务的服务实例。安装在各个实例和主机上的监视和/或计费代理可快速生成数千个度量记录,这些记录可能需要进行存储和分析以生成准确的计费记录,以确定供应商网络的数据中心的有效供应计划,以检测网络攻击等。监视记录可形成至受管理流处理服务的输入流,由此使得可实现所描述的技术以用于分析所收集的记录。同样,用以从众多日志源(例如,来自分布式应用程序的节点的应用程序日志,或来自主机或数据中心处计算实例的系统日志)收集并分析大量日志记录的应用程序也可能利用托管流处理服务。在至少一些环境中,数据记录的处理操作可包括实时etl(提取-变换-加载)处理操作(即,实时变换所接收的数据记录以加载至目标的操作,而不是进行离线变换),或变换数据记录以供插入至数据仓库。使用数据流将数据实时加载至数据仓库中可避免在将数据插入至仓库以供分析之前,清理和管理来自一个或多个数据源的数据通常需要的延迟。

还可使用sms和处理技术来构建许多不同的“大数据”应用程序。例如,可使用流来有效地执行对各种形式的社交媒体交互的趋势分析。从移动电话或平板电脑收集的数据,如用户的位置信息,可作为流记录进行管理。例如从一组监控摄像机收集的音频或视频信息可表示可以可缩放方式收集和处理的另一类流数据集,从而可能有助于防止各种攻击。需要分析例如从气象卫星、海洋传感器、基于森林的传感器、天文望远镜收集的不断增长的数据集的科学应用也可受益于本文所述的流管理和处理能力。

在各种实施方案中,本文所述的方法可通过硬件和软件的任何组合来实现。例如,在一个实施方案中,所述方法可通过计算机系统(例如,图10中的计算机系统)来实现,所述计算机系统包括执行存储在耦接至处理器的计算机可读存储介质上的程序指令的一个或多个处理器。程序指令可被配置为实现本文描述的功能性(例如,各种服务器、资源主机、控制平面、管理器和/或其他组件的功能性,如实现本文描述的基于块的存储服务的那些组件)。如图中说明且本文所述的各种方法表示方法的示例性实施方案。可以改变任何方法的次序,且可以添加、重新排序、组合、省略、修改等等各种元件。

如本文所述的数据流中的实时异常检测的实施方案可在一个或多个计算机系统上执行,所述计算机系统可与各种其他设备交互。图10是示出根据各种实施方案的示例性计算机系统的框图。例如,计算机系统1000可被配置为在不同实施方案中实现计算集群、数据存储器和/或客户端的存储和/或计算节点。计算机系统1000可为各种类型的装置中的任何一种,包括但不限于个人计算机系统、台式电脑、膝上型电脑或笔记本电脑、主机计算机系统、手持式计算机、工作站、网络计算机、消费者设备、应用服务器、存储装置、电话、移动电话、或大体上任何类型的计算装置。

计算机系统1000包括通过输入/输出(i/o)接口1030耦接至系统存储器1020的一个或多个处理器1010(其中的任何一个可包括多个核心,所述多个核心可为单线程的或多线程的)。计算机系统1000还包括耦接至i/o接口1030的网络接口1040。在各种实施方案中,计算机系统1000可为包括一个处理器1010的单处理器系统,或包括若干处理器1010(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器1010可为能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1010可为实现各种指令集架构(isa)中任何一种架构的通用或嵌入式处理器,所述架构诸如x86、powerpc、sparc,或mipsisa,或任何其他合适的isa。在多处理器系统中,每一个处理器1010可通常但未必实现相同的isa。计算机系统1000还包括一个或多个网络通信装置(例如,网络接口1040)以用于通过通信网络(例如,互联网、lan等)与其他系统和/或组件通信。

在所示出的实施方案中,计算机系统1000还包括一个或多个永久性存储器装置1060和/或一个或多个i/o装置1080。在各种实施方案中,永久性存储设备1060可对应于磁盘驱动器、磁带驱动器、固态存储器、其他大容量存储设备、基于块的存储设备或任何其他永久性存储设备。计算机系统1000(或分布式应用或在其上操作的操作系统)可如期望的将指令和/或数据存储在永久性存储器装置1060中,并且可按需检索存储的指令和/或数据。例如,在一些实施方案中,计算机系统1000可托管存储器系统服务器节点,并且永久性存储器1060可包括附接至所述服务器节点的ssd。

计算机系统1000包括被配置来存储可由处理器1010访问的指令和数据的一个或多个系统存储器1020。在各种实施方案中,系统存储器1020可使用任何合适的存储器技术(例如,高速缓冲存储器、静态随机存取存储器(sram)、dram、rdram、edoram、ddr10ram、同步动态ram(sdram)、rambusram、eeprom、非暂时性/闪存类型的存储器、或任何其他类型的存储器中的一个或多个)来实现。系统存储器1020可包括程序指令1025,所述程序指令1025可由处理器1010执行以便实现本文所述的方法和技术。在各种实施方案中,程序指令1025可以平台本地二进制、任何解译型语言(如javatm字节代码)、或以任何其他语言(如c/c++、javatm等)、或以其任何组合来编码。例如,在所示实施方案中,程序指令1025包括在不同实施方案中可执行以实现流处理节点的功能的程序指令。在一些实施方案中,程序指令1025可实现多个单独的客户端、节点和/或其他组件。

在一些实施方案中,程序指令1025可包括可执行以实现操作系统(未示出)的指令,所述操作系统可为各种操作系统中的任何一种,例如unix、linux、solaristm、macostm、windowstm等。任何或所有程序指令可提供1025作为计算机程序产品或软件,其可包括其上存储有指令的非暂时性计算机可读存储介质,其可用于对计算机系统(或其他电子设备)进行编程以各种实施方案执行根据本发明的处理。非暂时性计算机可读存储介质可包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储信息的任何机构。一般来说,非暂时性计算机可访问介质可包括计算机可读的存储介质或存储器介质,诸如磁性介质或光学介质,例如经由i/o接口1030耦接至计算机系统1000的磁盘或dvd/cd-rom。非暂时性计算机可读存储介质也可包括任何易失性或非易失性介质,诸如ram(例如,sdram、ddrsdram、rdram、sram等等)、rom等等,其可包括在计算机系统1000的一些实施方案中作为系统存储器1020或另一类型的存储器。在其他实施方案中,程序指令可使用通过通信介质(诸如网络链接和/或无线链接)传送的光学、声学或其他形式的传播信号(例如,载波、红外线信号、数字信号等)来通信,如可通过网络接口1040来实现。

在一些实施方案中,系统存储器1020可包括可如本文所述配置的数据存储器1045。一般而言,系统存储器1020(例如,系统存储器1020内的数据存储器1045)、永久性存储器1060、和/或远程存储器1070可存储数据块、数据块复制品、与数据块和/或它们的状态关联的元数据、配置信息和/或可在实现本文所述的方法和技术中使用的任何其他信息。

在一个实施方案中,i/o接口1030可被配置来协调处理器1010、系统存储器1020与系统中任何外围装置之间的i/o流量,包括通过网络接口1040或其他外围接口。在一些实施方案中,i/o接口1030可执行任何必需协议、时序或其他数据变换以便将来自一个组件(例如,系统存储器1020)的数据信号变换成适于由另一个组件(例如,处理器1010)使用的格式。例如,在一些实施方案中,i/o接口1030可包括对于通过各种类型的外围总线附接的装置的支持,所述外围总线诸如外围组件互连(pci)总线标准或通用串行总线(usb)标准的改变形式。例如,在一些实施方案中,i/o接口1030的功能可分到两个或更多个单独的组件中,诸如北桥和南桥。另外,在一些实施方案中,i/o接口1030的一些或全部功能(诸如至系统存储器1020的接口)可直接并入至处理器1010中。

网络接口1040可被配置来允许在计算机系统1000与附接至网络的其它装置(诸如例如其它计算机系统1090)之间交换数据。此外,网络接口1040可被配置来允许在计算机系统1000与各种i/o装置1050和/或远程存储器1070之间的通信。在一些实施方案中,输入/输出装置1050可包括一个或多个显示终端、键盘、小键盘、触摸屏、扫描装置、语音或光学识别装置,或适合于由一个或多个计算机系统1000输入或检索数据的任何其他装置。多个输入/输出装置1050可存在于计算机系统1000中或可分布于包括计算机系统1000的分布式系统的不同节点上。在一些实施方案中,类似输入/输出装置可与计算机系统1000分开并且可通过有线或无线连接(诸如通过网络接口1040)来与包括计算机系统1000的分布式系统的一个或多个节点交互作用。网络接口1040通常可支持一个或多个无线联网协议(例如,wi-fi/ieee802.11或另一无线网络标准)。然而,在各种实施方案中,例如,网络接口1040可支持通过任何合适的有线或无线通用数据网络(诸如其他类型的以太网网络)进行通信。另外,网络接口1040可支持经由电信/电话网络(如模拟语音网络或数字光纤通信网络)、经由存储区域网络(如光纤信道san)或经由任何其他合适类型的网络和/或协议进行通信。在各种实施方案中,计算机系统1000可包括多于、少于或不同于图10中所示出的那些的组件(例如,显示器、视频卡、音频卡、外围装置、其他网络接口,如atm接口、以太网接口、帧中继接口)等)。

注意本文所述的分布式系统实施方案中的任何一个,或它们的组件中的任何一个,可作为一个或多个基于网络的服务被实现。例如,计算服务内的计算集群可呈现计算和/或存储服务和/或其他类型的服务,其将本文描述的分布式计算系统用作客户端作为基于网络的服务。在一些实施方案中,基于网络的服务可由被设计来支持通过网络的彼此协作的机对机交互作用的软件和/或硬件系统来实现。基于网络的服务可具有以机器可处理格式描述的接口,诸如网络服务描述语言(wsdl)。其他系统可由对基于网络的服务的接口的描述所规定的方式与基于网络的服务交互作用。例如,基于网络的服务可定义其它系统可调用的各种操作,并且可定义可预期在请求各种操作时其它系统所遵循的特定应用程序设计接口(api)。

在各种实施方案中,通过使用包括与基于网络的服务请求关联的参数和/或数据的消息,基于网络的服务可被请求或调用。此类消息可根据特定的标记语言(如可延伸标记语言(xml))被格式化,和/或可使用协议(诸如简单对象访问协议(soap))来封装。为执行基于网络的服务请求,基于网络的服务客户端可组装包括所述请求的消息,并且使用基于互联网的应用层转移协议(如超文本传输协议(http))将所述消息传达至对应于基于网络的服务的可寻址端点(例如,统一资源定位符(url))。

在一些实施方案中,基于网络的服务可使用表述性状态传输(“restful”)技术而不是基于消息的技术来实现。例如,根据restful技术实现的基于网络的服务可通过包括在http方法(诸如put、get或delete)内而不是封装在soap消息内的参数来调用。

各种实施方案还可包括在计算机可访问介质上接收、发送或存储根据前文的描述所实现的指令和/或数据。一般来说,计算机可访问介质可包括存储介质或存储器介质(诸如磁性介质或光学介质(例如磁盘或dvd/cd-rom)、非易失性介质(诸如ram(例如,sdram、ddr、rdram、sram等)、rom等))以及传输介质或信号(诸如经由通信介质(诸如网络和/或无线链路)递送的电信号、电磁信号或数字信号)。

如图中所示出并且在本文中描述的各种方法表示方法的示例性实施方案。所述方法可在软件、硬件或其组合中实现。可以改变任何方法的次序,且可以添加、重新排序、组合、省略、修改等等各种元件。

从所述下列条款的角度可更好理解上述说明:

1.一种系统,其包括:

多个计算节点,分别包括至少一个处理器和存储器,其中,所述多个计算节点实现包括控制平面和多个流处理节点的受管理流处理系统;

控制平面,配置为:

接收将处理功能应用于数据流的请求;

识别一个或多个流处理节点以应用所述处理功能;

配置所述一个或多个流处理节点以应用所述处理功能;和

在一个或多个流处理节点处启动所述处理功能的执行,使得当在所述一个或多个流处理节点处接收到所述数据记录时,将所述处理功能应用于所述数据流的数据记录。

2.根据条款1所述的系统,其中所述一个或多个流处理节点被配置为:

请求所述数据流的新数据记录;

收到所述新的数据记录后:

应用所述处理功能来更新所述处理功能的状态;

基于所述处理功能的所述状态,生成结果;和

将所述结果发送至为所述处理功能指定的至少一个结果目标。

3.如条款1所述的系统,其中所述处理功能是从所述受管理流处理系统的客户端接收的,并且其中所述控制平面还被配置为:

收集一个或多个性能度量,用于在一个或多个处理节点处执行处理功能;和

将一个或多个性能度量发送至所述客户端。

4.如条款1所述的系统,其中所述受管理流处理系统是作为供应商网络的部分实现的基于网络的服务,并且其中所述数据流由作为所述供应商网络的部分实现的另一基于网络的服务产生。

5.一种方法,其包括:

通过一个或多个计算装置执行:

通过编程接口接收数据流的功能,所述功能指定要对数据流的数据记录执行的一个或多个操作;

确定被配置为针对所述数据流应用所述功能的一个或多个流处理节点;和

在一个或多个流处理节点处执行所述功能,使得当在一个或多个流处理节点处接收到所述数据记录时,对所述数据流的所述数据记录执行一个或多个操作。

6.如条款5所述的方法,其中所述一个或多个流处理节点是多个流处理节点,并且其中所述方法还包括确定用于在所述多个流处理节点处执行所述功能的工作负载分配方案。

7.如条款5所述的方法,其中所述功能作为来自客户端的请求的部分被接收,并且其中所述请求还指定用于在所述一个或多个流处理节点之间执行所述功能的分布式配置。

8.如条款5所述的方法,其中在所述一个或多个流处理节点处执行所述功能包括:

从一个或多个流处理节点向所述数据流的数据流源发送对所述数据流的新数据记录的请求;

在接收到所述数据流的所述新数据记录时,由一个或多个流处理节点执行所述功能的一个或多个操作以生成结果;和

从一个或多个流处理节点发送所述结果至为所述处理功能指定的至少一个结果目标。

9.如条款5所述的方法,其中从客户端接收所述功能,并且其中所述方法还包括:

收集一个或多个性能度量,用于在一个或多个处理节点处执行功能;和

将一个或多个性能度量发送至所述客户端。

10.如条款9所述的方法,还包括:

至少部分地基于一个或多个性能度量,在一个或多个处理节点处重新配置所述功能的执行。

11.如条款5所述的方法,其中,所述功能指定除了所述数据流之外还对另一个或多个数据流的数据记录执行所述一个或多个操作,使得在所述一个或多个流处理节点处执行所述功能执行关于附加的一个或多个数据流的所述数据记录的一个或多个操作。

12.如条款11所述的方法,其中,所述一个或多个操作包括来自所述数据流的数据记录和所述附加的一个或多个数据流的属性值的聚合。

13.如条款5所述的方法,其中用于接收所述功能的编程接口由图形用户界面(gui)调用。

14.一种存储程序指令的非暂时性计算机可读存储介质,所述程序指令在由一个或多个计算器件执行时实现:

通过编程接口接收数据流的处理功能;

提供能够对所述数据流应用所述处理功能的一个或多个流处理节点;

在一个或多个流处理节点处启动所述处理功能的执行,使得当在一个或多个流处理节点处接收到所述数据记录时,将所述处理功能应用于所述数据流的数据记录。

15.如条款14所述的非暂时性计算机可读存储介质,其中从客户端接收所述处理功能,并且其中所述处理功能是经由所述编程接口提供给所述客户端的预定义处理功能的修改版本。

16.如条款14所述的非暂时性计算机可读存储介质,其中所述程序指令致使所述一个或多个计算装置实现以下各项:

在超过用于摄取数据流的数据记录的限制阈值时,延迟在一个或多个流处理节点处检索一个或多个附加数据记录。

17.如条款14所述的非暂时性计算机可读存储介质,其中根据结构化查询语言(sql)指定所述处理功能的至少一个操作。

18.如条款14所述的非暂时性计算机可读存储介质,其中所述程序指令还使得一个或多个计算设备实现将从所述处理功能的所述应用生成的结果发送至为所述处理功能指定的结果目标。

19.如条款14所述的非暂时性计算机可读存储介质,其中所述程序指令致使所述一个或多个计算装置实现以下各项:

在执行所述处理功能之前,评估所述数据流的数据记录以确定数据流的数据记录的模式,其中所述处理功能的一个或多个操作根据所述模式应用至所述数据流的所述数据记录。

20.如条款19所述的非暂时性计算机可读存储介质,其中程序指令使得一个或多个计算指令实现:

在一个或多个流处理节点处识别所述数据流的数据记录,所述数据记录不同于所述数据流的所述数据记录的模式;和

从一个或多个流处理节点发送所述数据记录至与为所述数据流指定的结果目标不同的结果目标。

受益于本公开的本领域技术人员将清楚地知晓可做出各种修改和变化。旨在涵盖所有这类修改和变化,因此,应在说明性而非限制性意义上看待以上描述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1