一种基于配置文件的流式统计定义及运行方法与流程

文档序号:11133588阅读:587来源:国知局
一种基于配置文件的流式统计定义及运行方法与制造工艺

本发明涉及一种基于配置文件的流式统计定义及运行方法,属于电力系统自动化技术领域。



背景技术:

随着云计算、大数据技术的发展,运用大数据技术从海量数据中获取潜在的有用信息已得到了各方面的广泛关注。日志数据作为原始大数据,其价值也越来越受到重视。在调度自动化系统中,目前日志数据只停留在事后故障诊断单一用途上,其主要分析方法仍停留在人工配合简单脚本进行日志过滤及检索的阶段。为了充分挖掘调度自动化系统中日志的价值,对调度自动化系统关键指标进行数据统计,为以量化方式考核系统健康状况提供数据基础,需要一种以日志数据为数据源的流式统计框架。

借助开源流式计算框架,实现对日志数据的流式统计是普遍采用的方案,目前业内常用的流式计算框架有Storm和Spark Streaming。无论是Storm还是Spark Streaming,其本身是一个分布式系统,提供了一个编程模型及相应的接口。这种设计方式的灵活度高、适应面广,但是其代价是增加新的统计任务需要调用相应的接口完成代码编辑和编译,使用比较复杂,学习成本高。对于调度自动化系统而言,基于开源流式计算框架实现流式统计功能一方面在部署上对原系统的侵入性大,另一方面不利于用户的使用。



技术实现要素:

针对现有技术存在的不足,本发明目的是提供一种免代码维护的、可灵活定义的、适用于调度自动化系统的基于配置文件的流式统计定义及运行方法。

为了实现上述目的,本发明是通过如下的技术方案来实现:

本发明的一种基于配置文件的流式统计定义及运行方法,包括以下几个步骤:

(1)创建配置文件,所述配置文件的内容包括任务信息和计算模型;所述配置文件的名称格式为:名称_任务编号.conf,所述任务编号按自然顺序递增;

(2)编辑所述任务信息,所述任务信息包括属性:任务名称、任务类型和任务描述;所述任务名称用于标识任务,所述任务类型用于描述任务执行方式,所述任务描述用于说明任务实现功能;

(3)编辑计算模型,所述计算模型描述统计过程所需组成元素包含:数据源定义、模式定义、统计操作定义和动作定义;其中,所述数据源定义用于描述任务需要的数据集;所述模式定义用于描述数据集投影及投影产生的方式;所述统计操作定义用于描述统计过程;所述动作定义用于描述对计算结果的处理;所述模式定义、统计操作定义和动作定义均可省略,省略动作定义表示采取默认动作定义即本地文件存储;所述数据源定义、模式定义、统计操作定义和动作定义在执行过程中具备顺序关系,即数据按如下顺序流转:数据源定义处理、模型定义处理、统计操作定义处理、动作定义处理。

(4)验证所述配置文件合法性:新创建或被修改过的流式统计配置文件,需要通过定义检查工具来确定配置文件的合法性;

(5)配置文件生效管理,所有流式统计配置文件由单独的任务配置文件统一管理,只有增加到任务配置文件中的合法的流式统计配置文件才能生效;所述流式统计配置文件与统计服务一一对应;统计服务监控进程监视任务配置文件的更新,把缓存的任务配置文件内容与新的任务配置文件进行比较生成任务差异,根据任务差异执行任务启动、任务终止、任务重启操作;一个流式统计任务对应一个配置文件;所有的流式统计配置文件由任务配置文件统一管理,由于表明该流式统配置文件生效。

(6)运行流式统计任务,统计服务启动时带启动参数:任务编号;统计服务首先根据任务编号获取流式统计配置文件,根据配置文件解析任务信息和计算模型,最终生成相应的处理逻辑;统计任务执行过程中,所有数据均是JSON格式,通过属性名访问。

步骤(1)中,所述配置文件分段定义,所述配置文件以KeyName=Value格式定义段内的各种属性。

步骤(2)中,支持两种任务执行方式:普通任务和周期定时任务;所述普通任务在进程启动后即开始计算;所述周期定时任务在设定时间段内或者设定时刻执行计算,可周期执行,可执行一次或者多次。与普通任务相比,周期定时任务具有额外的属性值,包含时段定义、周期定义、次数定义。时段定义描述任务执行的时间,周期定义描述任务执行的周期,次数定义限制任务执行次数。

步骤(3)中,所述计算模型通过数据源定义、模式定义、统计操作定义、动作定义4个组成元素,描述了一种链式数据处理过程:

统计服务以消息总线为数据源,消息总线以通道来划分数据集;统计服务向消息总线订阅数据源定义中配置的通道即完成源数据接入;数据源可配置过滤属性,接收到的数据如果不满足过滤属性条件,数据将被丢弃;数据源过滤属性条件,从数据源接收到的数据。

源数据接入后,根据模式定义描述的数据投影及投影生成方式,对数据进行抽取、转换形成中间数据集;模式定义可配置过滤属性,如果中间数据集数据不满足过滤属性条件,数据将被丢弃;模式定义过滤属性,讲过模式定义计算的中间结果集数据。

统计操作定义包含属性:时间窗口、统计函数、分组、结果属性名以及过滤属性;统计窗口描述统计周期,统计结果按统计周期导出;统计函数支持最大值、最小值、平均值、总加值、排名和计数;分组描述了对中间结果数据的分组条件;结果属性名定义统计结果属性名,用于方便后续通过属性名访问数据;中间数据集按照统计操作定义完成数据计算,执行一个统计周期后,根据过滤属性配置确定统计结果是否导出,只有满足过滤属性条件的结果才是最终的统计结果;

最终统计结果根据动作定义配置确定处理方式,处理方式包含:本地保存、实时告警、数据库存储;一个统计任务中可配置多组处理方式,每种处理方式可以设置过滤属性,根据过滤属性配置,满足过滤属性条件的数据执行对应处理。

步骤(3)中,在数据源定义、模式定义、统计操作定义、动作定义中均可配置过滤属性;所述过滤属性的值为操作表达式;所述操作表达式由操作组成,并由符号||或者&&链接,符号||和&&表示操作间的关系(“或者”和“并且”),表达式按从左到右的顺序执行;操作是定义表达式的最小单元,不同的数据类型支持不同的操作,具体内容如下表所示:

步骤(4)中,所述配置文件需要经过检查工具检查,通过检查的文件会被打上合法性标签,只有具有合法标签的文件才会被统计服务监控程序调度;合法性检查采用静态验证方式即逐一匹配预定义的规则,只要有一条规则不满足则认为定义文件非法。

步骤(5)中,统计任务由统计服务监控进程统一调度,统计服务监控进程定期读取任务配置文件,根据前后两次任务配置文件差异,使统计任务自动生效;统计服务监控进程接收统计任务心跳报文,对于超过心跳周期的统计任务,统计服务监控进程尝试重新启动。

步骤(6)中,配置文件被解析成一个处理过程,该处理过程对接入的数据逐条处理,每条数据按链式处理方式逐一通过数据源定义处理、模式定义处理、统计操作定义处理和动作定义处理;在每一个处理环节中,数据均以JSON格式封装,均按属性名访问。

本发明所达到的有益效果如下:

(1)本发明以自定义的配置文件描述一个统计过程,通过分段定义和属性定义两级定义实现流式统计定义,保障了配置的灵活性;

(2)本发明具备把流式统计定义文件解析为流式统计任务的能力,实现新增统计任务免代码维护;

(3)本发明采用统一任务调度的方式自动生效统计任务,支持任务全生命周期监控;统计任务与统计配置文件一一对应,避免了任务间的相互影响;

(4)本发明以数据记录为单位,按照数据源定义处理、模式定义处理、统计操作定义处理、动作定义处理的顺序实现对单条数据记录的链式处理;

(5)本发明采用JSON格式封装数据,统一通过属性名访问数据,使得数据处理可支持结构化和半结构化数据;

(6)本发明基于配置文件的流式统计定义及运行方法以最小的侵入代价实现免代码维护的、可灵活定义的、适用于调度自动化系统。

附图说明

图1为本发明的一种基于配置文件的流式统计定义及运行方法工作流程图;

图2为本发明的基于数据记录的链式数据处理示意图。

具体实施方式

为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。

参见图1,本实施例是一种基于配置文件的流式统计定义及运行方法,包含下列步骤:

(1)创建流式统计配置文件;配置文件名称格式为“测试_1.conf”。

在本实施例中,在相同节点上的配置文件名称中的任务编号不能重复,任务编号按自然顺序递增。

(2)编辑任务信息;定义任务名称、任务类型、任务描述。

在本实施例中,任务名称、任务类型是关键属性;任务描述是可选属性。

(3)编辑计算模型;计算模型包含数据源定义、模式定义、统计操作定义和动作定义。其中数据源定义包含通道定义,过滤属性定义;模式定义包含数据投影定义、数据投影处理过程定义、过滤属性定义;统计操作定义包含时间窗口定义、统计函数定义、分组定义、结果属性名定义、过滤属性定义;动作定义包含行为定义、过滤属性定义。

在本实施例中,除数据源定义外,模式定义、统计操作定义和动作定义都是可选配置定义项。统计操作中的实际窗口定义以秒为单位,支持最小的统计时间窗为60秒。

(4)合法性检查;以配置文件文件名为参数,运行合法性检查工具,确定配置文件的合法性。

在本实施例中,配置文件合法性检查工具采用静态检查方法,对配置在规则库的规则逐条检查。

(5)配置文件生效;在任务配置文件中增加一行记录,该记录描述流式统计配置文件名称、心跳报文周期。

(6)统计任务启动;统计服务监控进程根据前后任务配置文件的差异,启动统计进程。统计进程根据入参“任务编号”读取对应的流式统计配置文件,对配置文件解析后生成对应的处理逻辑。统计进程按照任务类型执行数据统计。

参见图2,计算模型通过数据源定义、模式定义、统计操作定义、动作定义4个组成元素,描述了一种链式数据处理过程:

统计服务以消息总线为数据源,消息总线以通道来划分数据集;统计服务向消息总线订阅数据源定义中配置的通道即完成源数据接入;数据源可配置过滤属性,接收到的数据如果不满足过滤属性条件,数据将被丢弃。

源数据接入后,根据模式定义描述的数据投影及投影生成方式,对数据进行抽取、转换形成中间数据集;模式定义可配置过滤属性,如果中间数据集数据不满足过滤属性条件,数据将被丢弃。

统计操作定义包含属性:时间窗口、统计函数、分组、结果属性名以及过滤属性;统计窗口描述统计周期,统计结果按统计周期导出;统计函数支持最大值、最小值、平均值、总加值、排名和计数;分组描述了对中间结果数据的分组条件;结果属性名定义统计结果属性名,用于方便后续通过属性名访问数据;中间数据集按照统计操作定义完成数据计算,执行一个统计周期后,根据过滤属性配置确定统计结果是否导出,只有满足过滤属性条件的结果才是最终的统计结果。

最终统计结果根据动作定义配置确定处理方式,处理方式包含:本地保存、实时告警、数据库存储;一个统计任务中可配置多组处理方式,每种处理方式可以设置过滤属性,根据过滤属性配置,满足过滤属性条件的数据执行对应处理。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

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