【技术实现步骤摘要】
【国外来华专利技术】用于分析仪器化软件的数据流处理语言
技术介绍
本公开一般而言涉及数据流处理,更具体地,涉及用于处理从仪器化软件接收的数据流的数据流处理语言。软件开发人员通过将软件仪器化来监控他们所开发的软件的不同方面。这些方面包括软件的执行、执行软件期间遇到的误差、在执行软件期间遇到的显著事件、描述代码的哪些部分正在被执行以及哪些部分未被执行的信息,等等。用于将代码仪器化的常规技术包括代码中的声明,其记录不同类型的信息以记录文件或在屏幕上打印信息。该技术适用于简单应用,例如,具有在单个处理器上执行的简单执行流程的应用。然而,用于仪器化软件的这些技术对于可能分布在多个系统上的复杂应用(每个系统执行多个进程或执行线程)而言不够胜任。用于仪器化这种复杂系统的另一常规技术是在仪器化代码中使用专家的帮助。某些供应商提供帮助仪器化代码的专家服务。然而,这些供应商通常提供通常不是非常灵活的标准服务。此外,这些基于供应商的解决方案在供应商仪器化代码所需的时间方面具有显著开销。因而,这些解决方案适合于缓慢的开发周期,例如,长为一年的开发周期。然而,软件产品的软件开发和发布周期已经变短了。例如,存在几个在线系统,其中软件开发人员每月、每周或甚至每天改变它们并且对它们进行部署。由于基于供应商的仪器化解决方案的显著开销,所以开发人员发现难以在快节奏开发环境中使用这些服务。此外,用于仪器化代码的常规技术在同化信息、存储信息和分析信息以生成报告方面引起显著延迟。因此,在软件中发生问题的时间与该问题经由代码的仪器化被检测到的时间之间可能会有显著延迟。因而,用于基于软件的仪器化来生成报告的常规系统在复杂应用的 ...
【技术保护点】
一种用于检测数据流中的异常的方法,所述方法包括:接收数据流语言程序的指令,包括:阈值块,被配置成接收第一输入和第二输入,所述第一输入包括具有数据值的多个数据流,并且所述第二输入包括具有阈值的多个数据流;第一指令集合,用于生成所述阈值块的所述第一输入;以及第二指令集合,用于生成所述阈值块的所述第二输入;接收输入数据流集合;以及执行所述第一指令集合以聚合所述输入数据流集合的数据,以生成第一多个数据流,所述第一多个数据流包括作为所述阈值块的所述第一输入而被提供的数据值;执行所述第二指令集合以聚合所述输入数据流集合的数据,以生成第二多个数据流,所述第二多个数据流包括作为所述阈值块的所述第二输入而被提供的阈值;将来自所述第一多个数据流的数据流与来自所述第二多个数据流的数据流进行匹配,以标识对应的数据流;以及对于所述第一多个数据流中的每个数据流:将所述数据流的数据值与来自所述第二多个数据流的对应数据流的阈值进行比较;以及基于所述数据值和所述阈值的比较的结果,来确定是否生成事件。
【技术特征摘要】
【国外来华专利技术】2014.12.19 US 62/094,935;2015.12.15 US 14/970,454;1.一种用于检测数据流中的异常的方法,所述方法包括:接收数据流语言程序的指令,包括:阈值块,被配置成接收第一输入和第二输入,所述第一输入包括具有数据值的多个数据流,并且所述第二输入包括具有阈值的多个数据流;第一指令集合,用于生成所述阈值块的所述第一输入;以及第二指令集合,用于生成所述阈值块的所述第二输入;接收输入数据流集合;以及执行所述第一指令集合以聚合所述输入数据流集合的数据,以生成第一多个数据流,所述第一多个数据流包括作为所述阈值块的所述第一输入而被提供的数据值;执行所述第二指令集合以聚合所述输入数据流集合的数据,以生成第二多个数据流,所述第二多个数据流包括作为所述阈值块的所述第二输入而被提供的阈值;将来自所述第一多个数据流的数据流与来自所述第二多个数据流的数据流进行匹配,以标识对应的数据流;以及对于所述第一多个数据流中的每个数据流:将所述数据流的数据值与来自所述第二多个数据流的对应数据流的阈值进行比较;以及基于所述数据值和所述阈值的比较的结果,来确定是否生成事件。2.根据权利要求1所述的方法,确定是否生成事件包括:如果所述比较指示所述输入组的数据流的所述数据超过来自所述第二多个数据流的所述对应数据流的阈值,则生成事件。3.根据权利要求1所述的方法,其中执行所述第一指令集合以聚合所述输入数据流集合的所述数据包括:基于第一元数据属性集合来编组所述输入数据流集合,并且执行所述第二指令集合来聚合所述输入数据流集合的所述数据包括:基于第二元数据属性集合来编组所述输入数据流集合。4.根据权利要求3所述的方法,其中所述第一多个数据流中的每个数据流与所述第一元数据属性集合的第一值集合相关联,所述第二多个数据流中的每个数据流与所述第二元数据属性集合的第二值集合相关联。5.根据权利要求1所述的方法,其中将来自所述第一多个数据流的数据流与来自所述第二多个数据流的数据流进行匹配包括:将来自所述第一值集合的值与来自所述第二值集合的值进行比较。6.根据权利要求1所述的方法,其中所述第二多个数据流的所述数据流的所述阈值是高阈值,并且如果所述第一多个数据流中的数据流的所述数据超过来自所述第二多个数据流的对应数据流的阈值,则事件被生成。7.根据权利要求1所述的方法,其中所述第二多个数据流的所述数据流的所述阈值为低阈值,并且如果所述第一多个数据流中的数据流的所述数据被确定为低于来自所述第二多个数据流的对应数据流的阈值,则事件被生成。8.根据权利要求1所述的方法,其中所述第二元数据属性集合是所述第一元数据属性集合的子集。9.根据权利要求1所述的方法,其中所述第一多个数据流中的数据流的数目取决于与所述输入数据流集合的所述数据流相关联的所述第一元数据属性集合的独特值的数目,并且其中所述第二多个数据流中的数据流的数目取决于与所述输入数据流集合的所述数据流相关联的所述第二元数据属性集合的独特值的数目。10.根据权利要求1所述的方法,其中所述第二指令集合包括窗口指令,以基于预定大小的移动窗口来确定移动聚合值。11.根据权利要求1所述的方法,其中所述阈值块与阈值窗口大小相关联,其中如果对于所述阈值窗口大小的窗口中出现的所有数据点,来自所述第一多个数据流组的数据流的数据值超过来自所述第二多个数据流的所述匹配数据流的所述数据值,则所述事件被生成。12.根据权利要求11所述的方法,其中所述阈值块还与分数参数相关联,其中如果对于所述阈值窗口大小的窗口中出现的大于所述分数的数据点,来自所述第一多个数据流的数据流的所述数据值大于来自所述第二多个数据流的所述匹配数据流的所述数据值,则所述事件被生成。13.根据权利要求11所述的方法,其中所述阈值块还与分数参数相关联,其中如果对于超过所述分数的所述阈值窗口大小的窗口的持续时间,来自所述输入组的数据流的所述数据值大于来自所述第二多个数据流的所述匹配数据流的所述数据值,则所述事件被生成。14.根据权利要求1所述的方法,还包括:确定所述第一多个数据流中的每个数据流在所述第二多个数据流中是否具有匹配数据流;以及如果所述第一多个数据流中的至少一个数据流在所述第二多个数据流中没有匹配数据流,则发送错误消息。15.根据权利要求1所述的方法,其中用于所述第一多个数据流的第一子集的事件被生成,但是用于所述第一多个数据流的第二子集的事件没有被生成。16.根据权利要求1所述的方法,其中所述第一多个数据流和所述第二多个数据流中的所述数据流作为所述数据流集合中的改变的结果而动态改变。17.根据权利要求1所述的方法,其中所述第一多个数据流和所述第二多个数据流中的所述数据流作为描述数据流的所述元数据属性值的改变的结果而动态改变。18.根据权利要求1所述的方法,其中所述输入数据流集合中的所述数据流从在外部系统上执行的仪器化软件或数据流语言程序的执行结果中的一个或多个来接收。19.一种计算机可读非暂态存储介质,存储指令用于:接收数据流语言程序的指令,包括:阈值块,被配置成接收第一输入和第二输入,所述第一输入包括具有数据值的多个数据流,并且所述第二输入包括具有阈值的多个数据流;第一指令集合,用于生成所述阈值块的所述第一输入;以及第二指令集合,用于生成所述阈值块的所述第二输入;接收输入数据流集合;以及执行所述第一指令集合以聚合所述输入数据流集合的数据,以生成第一多个数据流,所述第一多个数据流包括作为所述阈值块的所述第一输入而被提供的数据值;执行所述第二指令集合以聚合所述输入数据流集合的数据,以生成第二多个数据流,所述第二多个数据流包括作为所述阈值块的所述第二输入而被提供的阈值;将来自所述第一多个数据流的数据流与来自所述第二多个数据流的数据流进行匹配,以标识对应的数据流;以及对于所述第一多个数据流中的每个数据流:将所述数据流的数据值与来自所述第二多个数据流的对应数据流的阈值进行比较;以及基于所述数据值和所述阈值的比较的结果,来确定是否生成事件。20.一种计算机系统,包括:计算机处理器;以及计算机可读非暂态存储介质,存储指令用于:接收数据流语言程序的指令,包括:阈值块,被配置成接收第一输入和第二输入,所述第一输入包括具有数据值的多个数据流,并且所述第二输入包括具有阈值的多个数据流;第一指令集合,用于生成所述阈值块的所述第一输入;以及第二指令集合,用于生成所述阈值块的所述第二输入;接收输入数据流集合;以及执行所述第一指令集合以聚合所述输入数据流集合的数据,以生成第一多个数据流,所述第一多个数据流包括作为所述阈值块的所述第一输入而被提供的数据值;执行所述第二指令集合以聚合所述输入数据流集合的数据,以生成第二多个数据流,所述第二多个数据流包括作为所述阈值块的所述第二输入而被提供的阈值;将来自所述第一多个数据流的数据流与来自所述第二多个数据流的数据流进行匹配,以标识对应的数据流;以及对于所述第一多个数据流中的每个数据流:将所述数据流的数据值与来自所述第二多个数据流的对应数据流的阈值进行比较;以及基于所述数据值和所述阈值的比较的结果,来确定是否生成事件。21.一种使用数据流语言程序来处理动态改变的数据流集合的方法,所述方法包括:通过仪器化分析系统存储描述多个数据流的元数据;接收包括使用数据流语言指定的指令集合的数据流语言程序,所述指令包括与搜索表达式相关联的查找块,所述搜索表达式基于与数据流相关联的元数据属性;评价所述搜索表达式,以从所述多个数据流中标识符合所述搜索表达式的数据流集合;以及重复执行所述数据流语言程序,所述执行包括:从所标识的数据流集合的每个数据流接收数据值;执行所述数据流语言程序的每个块;基于所述执行来生成一个或多个结果数据值,所述结果值与由所述数据流语言程序生成的结果数据流相对应;以及存储所述一个或多个结果数据值。22.根据权利要求21所述的方法,其中在所述数据流语言程序的所述执行期间,所述搜索表达式被重复评价。23.根据权利要求22所述的方法,其中在第一时间间隔期间被评价的所标识的数据流集合有别于在第二时间间隔期间被评价的所标识的数据流集合。24.根据权利要求22所述的方法,其中所述查找块与周期性相关联,并且针对基于与所述查找块相关联的周期性而确定的每个时间间隔,所述搜索表达式被周期性地评价。25.根据权利要求22所述的方法,其中响应于与所述数据流相关联的元数据的改变,所述搜索表达式被评价。26.根据权利要求22所述的方法,其中响应于所述多个数据流的改变,所述搜索表达式被评价,所述改变包括数据流的添加或数据流的删除。27.根据权利要求22所述的方法,其中响应于所述搜索表达式的指定的改变,所述搜索表达式被评价。28.根据权利要求27所述的方法,其中执行所述查找块的速率与执行所述数据流语言程序的一个或多个其他块的速率不同。29.根据权利要求21所述的方法,其中所述多个数据流包括从外部系统接收的数据流。30.根据权利要求21所述的方法,其中所述多个数据流包括作为另一数据流语言程序的执行结果而生成...
【专利技术属性】
技术研发人员:R·拉曼,A·穆科赫基,K·格兰迪,P·刘,
申请(专利权)人:信号公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。