用于数据分析流程调度的方法、装置和服务器集群与流程

文档序号:15851556发布日期:2018-11-07 10:03阅读:158来源:国知局
用于数据分析流程调度的方法、装置和服务器集群与流程

本公开涉及一种用于数据分析流程调度的方法、装置和服务器集群。

背景技术

近年来数据的应用越来越广泛,数据分析的权重也在逐年增高。在数据分析过程中涉及到众多的数据分析工具,同时数据从采集、清洗、建模训练、到最后分析报表展示是分步骤、流程化、相同的阶段流程普遍是周期性重复调度的,同时一个分析阶段流程可能被其他不同业务分析流程依赖。诸多数据分析流程联系形成的分析结果,会经历频繁更改优化从而达到一个真正有价值,健壮的数据价值链。然而现有数据分析工具,没有对整个分析生态形成很好的有序分析,特别是对数据分析形成不同周期性重复调度的复杂流程的定时调度不够全面。



技术实现要素:

本公开的一个方面提供了一种用于数据分析流程调度的方法,包括:

首先根据单个业务数据分析流程之间的依赖关系获取多业务的分析有向流程,然后根据预设的调度规则,或者预设的调度规则和预设的依赖规则对所述分析有向流程进行调度。由于根据单个业务数据分析流程之间的依赖关系得到了多业务的分析有向流程,这样可以根据调度规则实现不同重复执行频率的分析有向流程的自动调度。

可选地,所述方法还可以包括在获取多业务的分析有向流程之后,根据调度周期和多业务的分析有向流程获取当前调度周期的分析有向流程。由于有些调度只需要调度分析有向流程中的部分流程,这样可以根据用户需求灵活生成所需调度流程对应的调度周期的分析有向流程。

可选地,所述方法还可以包括如下操作,在得到单个业务数据分析流程之后,将单个业务数据分析流程所需的分析工具具象为可视化组件,然后在获取多业务的分析有向流程和/或当前调度周期的分析有向流程之后,将多业务的分析有向流程和/或当前调度周期的分析有向流程制成分析有向流程图,接着根据所述分析有向流程图和所述可视化组件得到可视化业务数据分析流程。由于将众多复杂的数据分析具象为可视化分析有向流程图,利用该可视化分析有向流程图可快捷进行编辑、管理,极大增强了分析过程的可读性、易用性和可维护性。

可选地,所述方法还可以包括如下操作,在调度触发后,对分析有向流程和调度结果进行监控。

可选地,根据本公开实施例提供的所述依赖规则可以包括以下任意一种或多种:第一种,对于重复执行周期,粗粒度执行周期的执行结果依赖细粒度执行周期的执行结果,其中,粒度为执行周期以天为最小周期的执行周期,第二种,对于重复执行周期中每天的流程执行频率,细粒度与粗粒度互相依赖,且粗粒度依赖细粒度时,以粗粒度内的细粒度对应的所有执行结果作为依赖条件,其中,粒度为执行周期以分钟为最小周期、且以天或者执行一次为最大周期的执行周期,第三种,对于重复执行周期的执行和/或每天频率的执行,本身重复执行的依赖为自依赖。

可选地,根据本公开实施例提供的所述调度规则可以包括以下任意一种或多种:关于第一调度规则,父流程执行后,如果父流程对应的子流程满足调度条件,则进行调度。关于第二调度规则,按照设定频率扫描逻辑扫描无依赖流程和/或不满足调度条件的有依赖流程,如果被扫描流程满足调度条件且没被父流程调度,则调度无依赖流程和/或满足调度条件的有依赖流程。关于外部调度规则,通过外部调用接口触发满足调度条件的流程。

可选地,根据本公开实施例提供的所述第一调度规则可以通过以下方式执行,首先,执行父流程,然后在父流程执行成功后,如果父流程存在对应的子流程,则在所述子流程符合调度条件和依赖规则时执行子流程,并在子流程执行成功后将该子流程作为父流程,执行父流程直至满足第一终止条件。

可选地,根据本公开实施例提供的所述第二调度规则可以通过以下方式执行,首先,以设定频率扫描待执行流程,如果待执行流程对应的父流程执行成功,则执行待执行流程,如果待执行流程执行不成功,则终止调度,如果待执行流程执行成功、且待执行流程不存在对应的子流程,则终止调度,如果待执行流程执行成功、且待执行流程存在对应的子流程,则扫描子流程直至子流程执行不成功或者子流程执行成功且不存在下一级子流程。

可选地,根据本公开实施例提供的所述外部调度规则可以通过以下方式执行,在外部触发接口触发调度后,如果触发对应的用户合法、且待执行流程为外部流程,则在外部流程符合依赖规则、且外部流程对应的父流程执行成功时,执行外部流程,终止调度直至满足第二终止条件。

本公开的另一个方面提供了一种用于数据分析流程调度的装置,包括分析有向流程获取模块,用于根据单个业务数据分析流程之间的依赖关系,获取多业务的分析有向流程,以及调度模块,用于根据预设的依赖规则和预设的调度规则对所述分析有向流程进行调度。

可选地,所述装置还可以包括周期分析有向流程获取模块,用于在获取多业务的分析有向流程之后,根据调度周期和多业务的分析有向流程获取当前调度周期的分析有向流程。

可选地,所述装置还可以包括:具象模块、流程图制成模块和可视化分析流程获取模块,其中,所述具象模块用于在得到单个业务数据分析流程之后,将单个业务数据分析流程所需的分析工具具象为可视化组件,所述流程图制成模块用于在获取多业务的分析有向流程和/或当前调度周期的分析有向流程之后,将多业务的分析有向流程和/或当前调度周期的分析有向流程制成分析有向流程图,所述可视化分析流程获取模块用于根据所述分析有向流程图和所述可视化组件得到可视化业务数据分析流程。

可选地,所述装置还可以包括监控模块用于在调度触发后,对分析有向流程和调度结果进行监控。

可选地,根据本公开实施例提供的所述调度模块可以包括父流程执行单元和子流程执行单元,其中,所述父流程执行单元用于执行父流程,所述子流程执行单元用于在父流程执行成功后,如果父流程存在对应的子流程,则在所述子流程符合调度条件和依赖规则、且所述子流程对应的父流程执行成功时,执行子流程,并在子流程执行成功后将该子流程作为父流程,执行父流程直至满足第一终止条件。

可选地,根据本公开实施例提供的所述调度模块还可以包括:扫描单元和待执行流程执行单元,其中,所述扫描单元用于以设定频率扫描待执行流程,所述待执行流程执行单元用于如果待执行流程对应的父流程执行成功,则执行待执行流程,如果待执行流程执行不成功,则终止调度,如果待执行流程执行成功、且待执行流程不存在对应的子流程,则终止调度,如果待执行流程执行成功、且待执行流程存在对应的子流程,则执行子流程直至子流程执行不成功或者不存在下一级子流程。

可选地,根据本公开实施例提供的所述调度模块还可以包括外部触发接口、外部流程执行单元和第二调度终止单元,其中,所述外部触发接口,用于触发流程执行,所述外部流程执行单元,用于如果被触发流程的用户合法、且被触发流程为外部流程,则在外部流程符合依赖规则、且外部流程对应的父流程执行成功时,执行外部流程,所述第二调度终止单元,用于终止调度直至满足第二终止条件。

本公开的另一个方面提供了一种服务器集群,包括至少一个服务器,所述服务器包括:一个或多个处理器,以及可读存储介质,用于存储一个或多个程序,所述程序在被所述处理器执行时,实现如上所述的方法。

本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的用于数据分析流程调度的方法、装置和服务器集群的应用场景;

图2a示意性示出了根据本公开实施例的用于数据分析流程调度的方法的第一种流程图;

图2b示意性示出了根据本公开实施例的核心调度引擎的示意图;

图3a示意性示出了根据本公开实施例的用于数据分析流程调度的方法的第二种流程图;

图3b示意性示出了根据本公开实施例的每天加载流程实例形成分析有向流程的流程图;

图4a示意性示出了根据本公开实施例的用于数据分析流程调度的方法的第三种流程图;

图4b示意性示出了根据本公开实施例的单个业务流程图的示意图;

图4c示意性示出了根据本公开实施例的多业务的分析有向流程的示意图;

图4d示意性示出了根据本公开实施例的数据分析流程图的应用示意图;

图5a示意性示出了根据本公开实施例的第一调度规则的执行方法的流程图;

图5b示意性示出了根据本公开实施例的第二调度规则的执行方法的流程图;

图5c示意性示出了根据本公开实施例的外部调度规则的执行方法的流程图;

图6示意性示出了根据本公开实施例的用于数据分析流程调度的装置的框图;

图7示意性示出了根据本公开实施例的服务器集群的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“a或b”应当被理解为包括“a”或“b”、或“a和b”的可能性。

附图中示出了一些框图和/或流程图。应理解,框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些框图和/或流程图中所说明的功能/操作的装置。

因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

本公开的实施例提供了一种用于数据分析流程调度的方法、装置以及能够应用该方法的服务器集群。该方法包括多业务的分析有向流程获取过程和调度过程,其中,多业务的分析有向流程获取过程包括根据单个业务数据分析流程之间的依赖关系,获取多业务的分析有向流程;调度过程包括根据预设的调度规则,或者预设的调度规则和预设的依赖规则对所述分析有向流程进行调度。

图1示意性示出了根据本公开实施例的用于数据分析流程调度的方法、装置和服务器集群的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种数据分析工具,例如数据库、大数据分析工具、采集传输工具、结果展示工具、存储工具等,以及监控工具等,当然,还可以安装有通讯客户端应用,例如邮箱客户端应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、社交平台软件等(仅为示例)。

终端设备101、102、103可以是具有显示屏并且支持输入调度规则参数、查看及监控调度结果的各种电子设备,包括但不限于台式计算机、膝上型便携计算机、平板电脑和智能手机等等。

服务器105可以是提供各种服务的服务器,例如根据用户利用终端设备101、102、103所输入的调度规则参数执行调度的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如调度结果等)反馈给终端设备。服务器105可以为多个,组成服务器集群;当然,也可以以分布式设置组成服务器集群。

需要说明的是,本公开实施例所提供的用于数据分析流程调度的方法一般可以由服务器105执行。相应地,本公开实施例所提供的用于数据分析流程调度的装置一般可以设置于服务器105中。本公开实施例所提供的用于数据分析流程调度的方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

图2a示意性示出了根据本公开实施例的用于数据分析流程调度的方法的第一种流程图。

如图2a所示,该方法包括操作s201~s202。

在操作s201,根据单个业务数据分析流程之间的依赖关系,获取多业务的分析有向流程。

在本实施例,依赖关系可以指的是一个流程的执行需要依赖于另一个流程给出的结果,比如,在流程b和流程c依赖于流程a的完成,而流程d需要使用流程b和流程c所完成后的数据,则流程b和流程c依赖于流程a,流程d依赖于流程b和流程c。在得到单个业务数据分析流程之间的依赖关系之后,据此可以得到多业务的分析有向流程。

在操作s202,根据预设的调度规则,或者预设的调度规则和预设的依赖规则对所述分析有向流程进行调度。

在一个实施例中,可以根据预设的调度规则对所述分析有向流程进行调度,可以采用现有的调度规则进行调度。例如,根据预设的调度周期对所述分析有向流程进行调度,具体地,可以在父依赖执行后,判断子流程是否满足调度条件,如果满足,则自动进行调度直至所有的子依赖调度完成。

优选地,所述调度规则可以包括以下任意一种或多种:第一调度规则:父流程执行后,如果父流程对应的子流程满足调度条件,则进行调度;第二调度规则:按照设定频率扫描逻辑扫描无依赖流程和/或不满足调度条件的有依赖流程,如果被扫描流程满足调度条件且没被父流程调度,则调度无依赖流程和/或满足调度条件的有依赖流程;外部调度规则:通过外部调用接口触发满足调度条件的流程。其中,所述调度条件可以包括如下条件:所有父流程执行成功;符合调度时间条件。

需要说明的是,对于重复执行的自动调度,可以提供核心调度引擎来实现重复执行的自动调度,核心调度引擎主要用于自动调度设置,例如,可以设置调度周期、调度频率等。

在另一个实施例中,为了满足客户多种多样的调度需求,可以根据预设的调度规则和预设的依赖规则对所述分析有向流程进行调度。例如,预设的依赖规则可以包括选择调度一次还是重复调度,调度触发的类型等。

在本实施例中,所述依赖规则可以包括以下任意一种或多种。对于重复执行周期,粗粒度执行周期的执行结果依赖细粒度执行周期的执行结果,其中,粒度为执行周期以天为最小周期的执行周期,由于大周期依赖小周期可以保证大周期的调度过程中的数据的完整性,此外,避免了出现月调度依赖分钟调度等情形,有助于提升调度效率。对于重复执行周期中每天的流程执行频率,细粒度与粗粒度互相依赖,且粗粒度依赖细粒度时,以粗粒度内的细粒度对应的所有执行结果作为依赖条件,其中,粒度为执行周期以分钟为最小周期、且以天或者执行一次为最大周期的执行周期,由于一些调度要求即时结果,对于一个周期中未完成的执行,可以直接采用当前周期中已完成的执行部分的结果,例如,周期为1小时,当前执行了49分钟,则在调度时以该49分钟的执行结果作为当前周期的执行结果,当然还可以以当前已执行了多少秒的结果作为当前周期的执行结果,此外,该依赖规则有助于提升调度效率。对于重复执行周期的执行和/或每天频率的执行,本身重复执行的依赖为自依赖,由于本身重复执行时,设定下一执行依赖上一执行,保证了数据的可靠性,且避免了从其他执行中调度的数据存在重复、遗漏等风险。此外,所述依赖规则还可以包括调度计划类型,例如,执行一次、重复执行、外部执行或不执行,这样便于满足用户的各种调度需求。

在一个具体实施例中,对于调度计划类型而言分两种情况:a.外部流程可依赖重复执行流程;b.其他重复执行流程不能依赖外部流程。例如,现有统计游戏活跃用户信息的流程a,该流程a为每天的每分钟执行一次(如最近1分钟内有上传日志,证明当前该用户为活跃用户);现有根据用户不定时查看游戏活跃用户地域分布的流程b,该流程b属于外部流程。此业务情况,流程b需要依赖流程a中活跃用户信息,而流程a定时触发任务不能依赖人工触发流程b。

对于重复执行的周期而言,粗粒度依赖细粒度(粒度粗细:年>月>周>天),例如,天调度流程只能依赖天调度。周调度流程只能依赖以下任意一种或多种:天调度、周调度。月调度流程只能依赖以下任意一种或多种:天调度、周调度、月调度。年调度流程只能依赖以下任意一种或多种:天调度、周调度、月调度、年调度。只运行一次调度流程只能依赖以下任意一种或多种:天调度、周调度、月调度、年调度、一次调度。例如:现有统计游戏每天新用户信息的流程a,该流程a每天执行一次,现有统计游戏每月新用户信息的流程b,该流程b为每月执行一次。此业务情况,流程b需要依赖流程a中新用户信息去重,而流程a不能依赖流程b。

对于重复执行周期中每天的流程执行频率而言,细粒度与粗粒度可互相依赖,粗粒度依赖细粒度时,需以粗粒度内的细粒度对应的所有执行结果作为依赖条件,其中,粒度粗细:运行一次>天>小时>分钟。具体地,执行频率为只运行一次的流程可以依赖以下任意一种或多种:执行频率为只运行一次调度、小时调度、分钟调度;执行频率为只运行一次的流程依赖小时调度和/或分钟调度时,依赖的是当前周期所有的执行结果。小时调度能依赖以下任意一种或多种:只运行一次调度、小时调度、分钟调度。小时调度依赖小时调度时,需是同一小时的依赖;小时调度依赖分钟调度时,依赖的是当前小时的所有分钟执行结果。分钟调度流程能依赖以下任意一种或多种:只运行一次调度、小时调度、分钟调度。依赖分钟调度时,需是同一分钟的依赖。

对于上述重复周期执行、每天频率的执行,定义本身重复执行间依赖为自依赖,具体地,依赖规则为就近依赖,也就是说下一执行依赖上一执行。其中,周期重复执行流程,下一周期执行依赖上一周期执行,如每月1号执行流程,2018年3月1号执行依赖2018年2月1号执行流程。每天频率执行流程,下一执行依赖上一执行,跨周期执行时,当前周期第一次执行依赖上一周期最后一次执行。

为了便于理解该依赖规则,以下以游戏用户信息统计为例进行说明。例如:现有统计游戏活跃用户信息的流程a,该流程a为每天的每分钟执行一次(如近1分钟内有上传日志,证明当前该用户为活跃用户);现有统计游戏前一天累计用户信息的流程b,该流程b每天执行一次;现有统计游戏每天的每小时新用户信息的流程c,该流程c为每天的每小时执行一次。

此业务情况,流程c需要将流程a中当前小时所有活跃用户,与流程b中用户对比,去掉流程b中存在的用户,再去掉与流程c自身前面所有小时新用户而获取当前小时新用户。此过程中,每小时执行一次的流程c需要依赖每天执行一次的流程b,每分钟执行一次的流程a以及流程c自身。

优选地,所述依赖规则可以在所述核心调度引擎中进行设置,上述核心调度引擎可以通过以下操作实现:通过可视化设计实现重复执行频率设置;然后添加外部流程定义,使用户可以通过外部程序调用接口触发;以及针对分析有向流程中各不同重复执行频率流程制定定时调度与依赖规则。图2b示意性示出了根据本公开实施例的核心调度引擎的示意图。如图2b所示,所述核心调度引擎中可以包括如下内容:计划类型、周期、每天频率、有效时间和备注内容等,其中,计划类型可以包括以下任意一种或多种:执行一次、重复执行、外部执行和不执行等;周期可以包括以下任意一种或多种:周期输入和执行间隔输入等;每天频率可以包括以下任意一种或多种:执行一次时间输入及对应的跨天自依赖选择,重复执行对应的重复执行间隔输入、开始时间输入、结束时间输入、跨天自依赖选择和不跨天自依赖选择等;有效时间可以包括以下任意一种或多种:开始日期输入、结束日期输入和无结束日期选择等;备注内容可以为文本等信息录入。需要说明的是,所述核心调度引擎的示意图不能理解为对本公开的限定。

本公开提供的用于数据分析流程调度的方法可以针对分析有向流程中各个不同重复执行频率的流程实现自动调度。

图3a示意性示出了根据本公开实施例的用于数据分析流程调度的方法的第二种流程图。

在本实施例中,所述方法还可以包括操作s301,在获取多业务的分析有向流程之后,根据调度周期和多业务的分析有向流程获取当前调度周期的分析有向流程。

由于在实际使用中,调度对象往往不是整个分析有向流程,而仅仅为整个分析有向流程中的部分流程,因此,可以根据调度周期确定当期调度周期的分析有向流程,这样可以实现更加灵活的调度方案。以调度周期为天为例进行说明。图3b示意性示出了根据本公开实施例的每天加载流程实例形成分析有向流程的流程图,如图3b所示,可以包括如下操作:首先,进行调度流程定义,如可以在核心调度引擎中选择重复执行,然后选取执行周期为每日,选取是否隔天执行等;检测当前时间是否为指定时刻,如00:00:01时刻;接着判断当天是否满足当天周期调度,如果否,则不生成当前调度周期的分析有向流程,如果是,则生成当前调度周期的分析有向流程,其中,生成的分析有向流程中流程是为了实现当前调度周期的分析有向流程所依赖的各流程。

本公开提供的用于数据分析流程调度的方法可以灵活地生成不同调度周期的分析有向流程,满足用户的多种调度需求,且有助于提升调度效率。

图4a示意性示出了根据本公开实施例的用于数据分析流程调度的方法的第三种流程图。在本实施例中,所述方法还可以包括如下操作s401~s403。

在操作s401中,在得到单个业务数据分析流程之后,将单个业务数据分析流程所需的分析工具具象为可视化组件。

在本实施例中,单个可视化组件可以通过封装json格式参数实现,如导数(sqoop)组件封装格式等。所述分析工具包括但不限于:传统数据分析工具,如数据库sql等;大数据分析工具,如hadoopmr、spark等;采集传输工具,如sqoop、flum等;结果通知工具,如邮件、短息等;存储工具,如数据库、hdfs等。

在一个具体实施例中,单个可视化组件sqoop组件封装格式如下:{″taskid″:″28″,″appid″:″1″,″componentname″:″数据迁移″,″destdata″:″w_p3log_02″,″sourcedata″:″select`desc`,p2,p3,`leave`fromw_p3log_01wherep2isnotnull;″,″maps″:″″,″rdbmsdb″:″test_mysql″,″hivedb″:″hive_test″,″customparams″:″″,″transfermode″:″h2m″,″tasktype″:″transfer″,″taskname″:″d131″}

单个流程存储,则后台通过bpmn2定义xml格式实现,流程任务间执行通过jbpm实现。

需要说明的是,可以利用上述可视化组件将单个业务数据分析流程封装为可视化业务数据分析流程。图4b示意性示出了根据本公开实施例的单个业务流程图的示意图。如图4b所示,从相机原始数据中导入门店视频流数据,从门店的元数据中导入门店区域信息,从数据库导入crm客户档案,集成三方dmp数据(如dmp.data.etl),对门店视频流数据进行实时流机器识别(如采用sparkstream软件),根据门店区域信息、crm客户档案、三方dmp数据得到客户-区域-行为基础数据集合,根据实时流机器识别的结果和客户-区域-行为基础数据集合进行客户图像行为分析(如可以基于spark数据库(sparkml)),该客户图像行为分析的结果可以商务智能(bi)报告的形式输出,例如以web报表形式输出(输出内容如门店区域停留时长),然后将web报表以常规业务报告的形式(如实时短息/邮件通知)输出;当客户图像行为分析的结果为异常或存在显著变化时,为了提升通知效率,可以直接进行通知(如实时短息/邮件通知)。需要说明的是,单个业务数据分析流程中可能用到多种数据分析工具,如上述根据门店区域信息、crm客户档案、三方dmp数据得到客户-区域-行为基础数据集合可以分别将门店区域信息发送给mysql、将crm客户档案发送给mysql、将三方dmp数据发送给hdps,将机器识别的结果发送给hbase。

当然,将单个业务数据分析流程封装为可视化业务数据分析流程并非是必须要做的步骤,也可以直接利用利用上述可视化组件将多业务的分析有向流程封装为可视化业务数据分析流程,具体如下所述。

在操作s402中,在获取多业务的分析有向流程和/或当前调度周期的分析有向流程之后,将多业务的分析有向流程和/或当前调度周期的分析有向流程制成分析有向流程图。

在本实施例中,图4c示意性示出了根据本公开实施例的多业务的分析有向流程的示意图,如图4c所示,单个业务数据分析流程之间的依赖关系图像化后的示意图,可以包括:日志导入、订单转化计算、收银台下载、收银台基础、游戏激活等流程,流程之间的依赖关系通过线条来表示。该示意图是便于理解本公开,不应当理解为对本公开的限定。

在操作s403中,根据所述分析有向流程图和所述可视化组件得到可视化业务数据分析流程。

通过将操作s401中得到的可视化组件封装在所述多业务的分析有向流程中,这样就可以得到可视化业务数据分析流程。这样使得本公开有效联系了数据分析过程,将众多复杂的数据分析具象为可视化业务数据分析流程,并可进行轻松编辑、管理,极大增强了分析过程的可读性、易用性和可维护性。

图4d示意性示出了根据本公开实施例的数据分析流程图的应用示意图。如图4d所示,数据分析师可以利用本公开进行流程图绘制及管理、定时核心调度引擎(定时依赖调度引擎)和生成可视化组件集,决策者可以利用本公开进行流程和任务执行监控及补跑管理、有向流程图监控和根据调度报告(如数据报表展示、邮件、短息等形式)进行决策。

本公开提供的用于数据分析流程调度的方法,可以实现数据分析全局管理的可视化数据分析流程服务(dataanalysisprocessmanagement,dapm),具体地,将诸多单个业务数据分析流程联系形成了分析有向流程图,会经历频繁更改优化从而达到一个真正有价值,健壮的数据价值链。此外,将众多复杂的数据分析具象为可视化业务数据分析流程,可进行轻松编辑、管理,极大增强了分析过程的可读性、易用性和可维护性。

图5a~图5c示意性给出了各种不同调度规则的执行方法。为了便于理解,假设图4c中,第2排第2个“收银台基础1”为每天凌晨2点执行,第2排第3个“收银台基础2”为每天凌晨5点执行。第3排第2个“sdk错误”流程为每天上午9点执行,第3排第3个,“收银台自定义”流程为外部调用执行,第3排第4个,“商户应用渠道”流程为每天凌晨1点执行,第4排第1个“收银台用户”为每周二执行流程。例如,以图3a示出的方法为例进行示例,1月23日为周二,则生成第4排第1个“收银台用户”流程对应的当前调度周期的分析有向流程(绘制该“收银台用户”流程对应的子流程执行图),若非周二,则不会绘制该“收银台用户”流程对应的子流程执行图。

图5a示意性示出了根据本公开实施例的第一调度规则的执行方法的流程图。在本实施例中,所述第一调度规则的执行可以包括操作s501~操作s502。

在操作s501中,当触发调度时,执行父流程。

在操作s502中,在父流程执行成功后,如果父流程存在对应的子流程,则在所述子流程符合调度条件和依赖规则时执行子流程,并在子流程执行成功后将该子流程作为父流程,执行父流程直至满足第一终止条件。

具体地,可以在父流程执行成功后,判断该父流程是否存在子流程,如果不存在子流程,则完成调度;如果存在子流程,则判断该子流程是否符合自动调度设置和依赖规则,如果符合,则判断该子流程的所有父依赖是否执行成功,如果所有父依赖都执行成功,则执行该子流程,判断该子流程是否执行成功,如果是,则判断该子流程是否还存在下一级子流程,并循序执行上操作,直至满足第一终止条件,该第一终止条件可以包括以下任意一种:一个流程不存在子流程、不符合自动调度设置或依赖规则、至少一个父依赖未执行成功、当前流程执行失败。

例如,图4c中的第3排第4个“商户应用渠道”流程,当其依赖的第2排第2个“收银台基础1”凌晨2点执行成功后,会检测其达到调度时间,但另外的父流程第2排第3个“收银台基础2”未执行,不自动调度;当依赖的“收银台基础2”凌晨5点执行成功后,会检测其满足调度,则自动调度。

本公开提供的第一调度规则的执行方法,父依赖执行后,自动判断子流程,若子流程满足调度条件,则自动调度。

图5b示意性示出了根据本公开实施例的第二调度规则的执行方法的流程图。在本实施例中,所述第二调度规则的执行可以包括操作s503~操作s506。

在操作s503中,以设定频率扫描待执行流程。

在本实施例中,该设定频率可以在核心调度引擎中设置,例如,该设定频率可以为1秒钟扫描一次、1分钟扫描一次、3分钟扫描一次、1小时扫描一次等,在此不再一一列举。

在一个具体实施例中,可以定时1分钟进行检测,如果当前时间点达到了调度时间,如果是,则执行下一步,如果当前时间未达到调度时刻,则继续以设定频率扫描待执行流程。

在操作s504中,如果待执行流程对应的父流程执行成功,则执行待执行流程。

具体地,判断被扫描待执行流程的父依赖是否执行成功,如果是,则执行所述待执行流程,如果至少一个父依赖未执行成功,则继续扫描所述待执行流程。

在操作s505中,如果待执行流程执行不成功,则终止调度。

具体地,可以在所述待执行流程被执行后,判断所述待执行流程是否执行成功,如果是,则接着判断所述待执行流程是否存在子依赖(子流程),如果有,则将该子依赖作为待执行流程,并重复上述操作s503~操作s505。

在操作s506中,如果待执行流程执行成功、且待执行流程不存在对应的子流程,则终止调度,如果待执行流程执行成功、且待执行流程存在对应的子流程,则扫描子流程直至子流程执行不成功或者子流程执行成功且不存在下一级子流程。

在一个具体实施例中,请参考图4c,第1排第2个“订单转化计算”流程,假设其每天凌晨1点执行,则其会在每天凌晨1点1分钟那次扫描被调起。又如第3排第2个“sdk错误”流程,在父流程第2排第2个“收银台基础1”为每天凌晨2点执行成功后未被调度,第3排第2个“sdk错误”流程会在9点1分那次扫描被调度。

本公开提供的第二调度规则的执行方法通过设定频率扫描逻辑,自动扫描调度无依赖流程、满足调度条件没被父流程自动调起的流程。

图5c示意性示出了根据本公开实施例的外部调度规则的执行方法的流程图。在本实施例中,所述外部调度规则的执行可以包括操作s507~操作s508。

在操作s507中,外部触发接口触发调度后,如果触发对应的用户合法、且待执行流程为外部流程,则在外部流程符合依赖规则、且外部流程对应的父流程执行成功时,执行外部流程。

在本实施例中,外部触发接口可以设置在核心调度引擎中,可以通过手动触发外部调度,例如,存在用户需求,需要进行不定时查看游戏活跃用户地域分布的流程,该流程属于外部流程,需要通过外部调度规则的执行方法来进行调度。手动触发的方式可以为人机交互的任意一种触发方式。

具体地,响应于外部触发接口被触发,判断用户是否合法,如该当前用户是否有进行外部调度的权限等,如果合法,则接着判断被触发的流程是否为外部流程,如果是,则进一步判断该外部流程是否符合依赖规则,在其符合依赖规则的前提下,判断该外部流程所依赖的流程是否全部执行成功,如果是,则外部触发该外部触发接口。需要说明的是,上述执行方法的顺序并不做限定,例如,还可以是先判断用户想要触发的流程是否符合依赖规则,及所依赖的流程是否全部执行成功,然后再判断用户是否合法或者判断用户想要触发的流程是否为外部流程,在此不再一一列举。

在操作s508中,终止调度直至满足第二终止条件。

在本实施例中,所述第二终止条件包括以下任意一种或多种:用户不合法、待触发的流程不是外部流程、待触发的流程不符合依赖规则、待触发的流程的至少一个所依赖的流程未执行成功等。需要说明的是,在其它实施例中,如果待触发的流程的至少一个所依赖的流程未执行成功,可以继续等待所依赖的流程执行成功,也可以以所依赖的流程的上一周期的执行结果,或者当前周期的当前已完成的执行结果作为执行待触发的流程的依赖。

在一个具体实施例中,请参考图4c,如第3排第3个“收银台自定义”流程,其依赖于第2排第2个“收银台基础1”流程,第2排第2个“收银台基础1”为每天凌晨2点执行。如果在每天凌晨2点前外部接口调用第3排第3个“收银台自定义”流程,则其不会被调度,在2点后当“收银台基础1”流程执行成功后,通过外部调用接口触发调度,可正常运行。

本公开提供的外部调度规则的执行方法可以通过外部调用接口在判断待调度的流程满足外部调度规则后,进行自动调度,至少部分避免调度结果与实际情况偏差较大的情况。

图6示意性示出了根据本公开实施例的用于数据分析流程调度的装置的框图。

如图6所示,用于数据分析流程调度的装置600包括分析有向流程获取模块601和调度模块602。

其中,分析有向流程获取模块601用于根据单个业务数据分析流程之间的依赖关系,获取多业务的分析有向流程。

调度模块602用于根据预设的依赖规则和预设的调度规则对所述分析有向流程进行调度。

优选地,所述依赖关系可以指的是一个流程的执行需要依赖于另一个流程给出的结果,比如,在流程b和流程c依赖于流程a的完成,而流程d需要使用流程b和流程c所完成后的数据,则流程b和流程c依赖于流程a,流程d依赖于流程b和流程c。在得到单个业务数据分析流程之间的依赖关系之后,据此可以得到多业务的分析有向流程。

所述调度规则可以包括以下任意一种或多种:第一调度规则:父流程执行后,如果父流程对应的子流程满足调度条件,则进行调度;第二调度规则:按照设定频率扫描逻辑扫描无依赖流程和/或不满足调度条件的有依赖流程,如果被扫描流程满足调度条件且没被父流程调度,则调度无依赖流程和/或满足调度条件的有依赖流程;外部调度规则:通过外部调用接口触发满足调度条件的流程。其中,所述调度条件可以包括如下条件:所有父流程执行成功;符合调度时间条件。需要说明的是,对于重复执行的自动调度,可以提供核心调度引擎来实现重复执行的自动调度,核心调度引擎主要用于自动调度设置,例如,设置调度周期、调度频率等。

所述依赖规则可以包括以下任意一种或多种。对于重复执行周期,粗粒度执行周期的执行结果依赖细粒度执行周期的执行结果,其中,粒度为执行周期以天为最小周期的执行周期,由于大周期依赖小周期可以保证大周期的调度过程中的数据的完整性,此外,避免了出现月调度依赖分钟调度等情形,有助于提升调度效率。对于重复执行周期中每天的流程执行频率,细粒度与粗粒度互相依赖,且粗粒度依赖细粒度时,以粗粒度内的细粒度对应的所有执行结果作为依赖条件,其中,粒度为执行周期以分钟为最小周期、且以天或者执行一次为最大周期的执行周期,由于一些调度要求即时结果,对于一个周期中未完成的执行,可以直接采用当前周期中已完成的执行部分的结果,例如,周期为1小时,当前执行了49分钟,则在调度时以该49分钟的执行结果作为当前周期的执行结果,当然还可以以当前已执行了多少秒的结果作为当前周期的执行结果,此外,该依赖规则有助于提升调度效率。对于重复执行周期的执行和/或每天频率的执行,本身重复执行的依赖为自依赖,由于本身重复执行时,设定下一执行依赖上一执行,保证了数据的可靠性,且避免了从其他执行中调度的数据存在重复、遗漏等风险。此外,所述依赖规则还可以包括调度计划类型,例如,执行一次、重复执行、外部执行或不执行,这样便于满足用户的各种调度需求。

在一个具体实施例中,所述调度模块602可以包括父流程执行单元和子流程执行单元,其中,所述父流程执行单元用于执行父流程,所述子流程执行单元用于在父流程执行成功后,如果父流程存在对应的子流程,则在所述子流程符合调度条件和依赖规则、且所述子流程对应的父流程执行成功时,执行子流程,并在子流程执行成功后将该子流程作为父流程,执行父流程直至满足第一终止条件。

所述第一终止条件可以包括以下任意一种:一个流程不存在子流程、不符合自动调度设置或依赖规则、至少一个父依赖未执行成功、当前流程执行失败。

在另一个具体实施例中,所述调度模块602还可以包括:扫描单元和待执行流程执行单元,其中,所述扫描单元用于以设定频率扫描待执行流程,所述待执行流程执行单元用于如果待执行流程对应的父流程执行成功,则执行待执行流程,如果待执行流程执行不成功,则终止调度,如果待执行流程执行成功、且待执行流程不存在对应的子流程,则终止调度,如果待执行流程执行成功、且待执行流程存在对应的子流程,则执行子流程直至子流程执行不成功或者不存在下一级子流程。

另外,为了满足用户的需求,灵活生成不同调度周期的分析有向流程图,所述装置600还可以包括周期分析有向流程获取模块603,该周期分析有向流程获取模块603可以用于在获取多业务的分析有向流程之后,根据调度周期和多业务的分析有向流程获取当前调度周期的分析有向流程。所述调度模块603具体用于根据预设的调度规则,或者预设的调度规则和预设的依赖规则对所述当前调度周期的分析有向流程进行调度。

在另一个实施例中,为了有效联系数据分析过程,将众多复杂的数据分析具象为可视化分析有向流程图,以实现轻松编辑、管理,并增强分析过程的可读性、易用性和可维护性,所述装置600还可以包括具象模块604、流程图制成模块605和可视化分析流程获取模块606。

其中,所述具象模块604用于在得到单个业务数据分析流程之后,将单个业务数据分析流程所需的分析工具具象为可视化组件。所述流程图制成模块605用于在获取多业务的分析有向流程和/或当前调度周期的分析有向流程之后,将多业务的分析有向流程和/或当前调度周期的分析有向流程制成分析有向流程图。所述可视化分析流程获取模块606用于根据所述分析有向流程图和所述可视化组件得到可视化业务数据分析流程。

在其它实施例中,为了便于用于对调度结果和/或调度过程进行监控,所述装置600还可以包括监控模块607,该监控模块607用于在调度触发后,对分析有向流程和调度结果进行监控。

此外,为了满足用户的外部调度需求,所述调度模块602还可以包括外部触发接口、外部流程执行单元和第二调度终止单元,其中,所述外部触发接口,用于触发流程执行,所述外部流程执行单元,用于如果被触发流程的用户合法、且被触发流程为外部流程,则在外部流程符合依赖规则、且外部流程对应的父流程执行成功时,执行外部流程,所述第二调度终止单元,用于终止调度直至满足第二终止条件。

根据本公开的实施例的模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,分析有向流程获取模块601、调度模块602、周期分析有向流程获取模块603、具象模块604、流程图制成模块605和可视化分析流程获取模块606和监控模块607中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,分析有向流程获取模块601、调度模块602、周期分析有向流程获取模块603、具象模块604、流程图制成模块605和可视化分析流程获取模块606和监控模块607中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,分析有向流程获取模块601、调度模块602、周期分析有向流程获取模块603、具象模块604、流程图制成模块605和可视化分析流程获取模块606和监控模块607中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图7示意性示出了根据本公开实施例的适于实现上文描述的方法的服务器集群的框图。图7示出的服务器集群70仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

在本实施例中,该服务器集群70可以包括:一个或多个处理器710,以及可读存储介质720,该可读存储介质720存储一个或多个程序721,所述程序721在被所述处理器710执行时,实现如上所述的方法。

在一个具体实施例中,如图7所示,服务器集群70可以以服务器700为基础,也就是说该服务器集群70可以包括至少一个服务器700,所述服务器700包括:一个或多个处理器710以及可读存储介质720。在另一个具体实施例中,服务器集群70也可以不以服务器700为基础,比如采用分布式设置,一个服务器集群70中的一排机架全部放置处理器710,另一排机架全部放置可读存储介质720等以实现分布式的设置。当然服务器集群70还可以采用混合设置方式,例如,至少部分以服务器700为基础进行设置,至少部分采用分布式设置,在此不做限定。该服务器集群70可以执行根据本公开实施例的方法。

具体地,处理器710例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器710还可以包括用于缓存用途的板载存储器。处理器710可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

可读存储介质720,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

可读存储介质720可以包括程序721,该程序721可以包括代码/计算机可执行指令,其在由处理器710执行时使得处理器710执行根据本公开实施例的方法或其任何变形。

程序721可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,程序721中的代码可以包括一个或多个程序模块,例如包括程序模块721a、程序模块721b、……。应当注意,程序模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器710执行时,使得处理器710可以执行根据本公开实施例的方法或其任何变形。

根据本公开的实施例,处理器710可以与可读存储介质720进行交互,来执行根据本公开实施例的方法或其任何变形。

根据本公开的实施例,分析有向流程获取模块601、调度模块602、周期分析有向流程获取模块603、具象模块604、流程图制成模块605和可视化分析流程获取模块606和监控模块607中的至少一个可以实现为参考图7描述的程序模块,其在被处理器710执行时,可以实现上面描述的相应操作。

本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现如上所述的方法。

根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依据所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

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