数据包发布的方法、装置、电子设备及可读存储介质与流程

文档序号:29635632发布日期:2022-04-13 17:05阅读:71来源:国知局
数据包发布的方法、装置、电子设备及可读存储介质与流程

1.本技术涉及数据处理技术领域,具体而言,本技术涉及一种数据包发布方法、装置、电子设备及可读存储介质。


背景技术:

2.随着互联网的更进一步发展,信息浏览、搜索、关系交互传递型,以及电子商务、互联网旅游生活产品等将生活中的流通环节在线化。对于实时性的要求进一步提升,而信息的交互和沟通正在从点对点往信息链甚至信息网的方向发展,这样必然带来数据在各个维度的交叉关联,数据爆炸已不可避免,因此,流式处理应运而生。流式处理可以很大程度上获取数据架子,并具备快速的洞察力。
3.流式处理目前对应有4种流式计算框架,分别为apachestorm(简称storm框架)、apachespark(简称spark框架)、apacheflink框架(简称flink框架)以及apachesamza(简称samza框架),它们都具有低延迟、可扩展和容错性诸多优点,但同时又有诸多不同之处,比如3者对数据流的传递方式不同,storm框架的延迟较低,其他的框架的延迟相对于storm框架而言较高等。
4.这4种流式计算框架应用于不同的流式计算平台,分别为storm流式计算平台、spark流式计算平台、flink流式计算平台以及samza流式计算平台,这些流式计算平台各自也具备其对应的流式计算框架的优缺点,开发人员在开发某业务对应的应用程序时,通常会开发一套应用于某流式计算平台的代码,当想要将该目标业务应用于别的流式计算平台时,需要额外再开发一套代码以适应另外的流式处理平台,这很大程度上增加了程序开发的难度,导致开发成本较高。


技术实现要素:

5.本技术实施例提供了一数据包发布的方法、装置、电子设备、计算机可读存储介质及计算机程序产品,可以解决开发应用于不同的流式计算平台的成本较高的问题。所述技术方案如下:
6.根据本技术实施例的一个方面,提供了一种数据包发布的方法,该方法包括:
7.根据业务的业务属性,从多个待读取数据的业务中确定出目标业务;
8.基于所述目标业务与数据源之间的对应关系,读取目标业务对应的数据源中的业务数据;
9.当与目标业务对应的工作模式为第一工作模式时,对所述业务数据进行预处理,得到目标数据;
10.获取预先为目标业务配置的、包括业务数据的处理流程的代码文件
11.确定目标业务应用的目标流式运算平台,将代码文件中的代码转换为应用于目标流式计算平台的目标代码;
12.将目标数据和转换后的代码文件进行打包,并将打包后得到的目标数据包发布到
目标流式计算平台。
13.在一个可能的实现方式中,根据业务的业务属性,从多个待读取数据的业务中确定出目标业务,包括:
14.获取多个待读取数据的业务的业务属性,根据业务属性分别确定多个待读取数据的业务分别对应的业务类型;业务类型包括普通类型、实时类型、批处理类型;
15.若待读取数据的业务同时符合实时类型和批处理类型,则确定待读取数据的业务为目标业务。
16.在一个可能的实现方式中,读取目标业务对应的数据源中的业务数据,之后还包括:
17.在对业务数据读取过程中,当与目标业务对应的工作模式改变为第二工作模式时,停止对读取到的业务数据进行预处理,将业务数据存储至缓冲区。
18.在一个可能的实现方式中,对读取到的业务数据进行预处理,得到目标数据,包括:
19.为读取到的业务数据配置业务参数,将业务数据、业务参数进行封装,得到目标数据;业务参数包括业务数据的唯一标识、所属批次号以及所属批次的批次数据总量。
20.在一个可能的实现方式中,将代码文件中的代码转换为应用于目标流式计算平台的目标代码,包括:
21.对代码文件进行解析,得到执行业务流程的各个数据处理节点以及各个数据处理节点在执行业务流程时的执行顺序;
22.根据执行顺序构建包含各数据处理节点的目标拓扑图;目标拓扑图中的拓扑节点表征数据处理节点;目标拓扑图的有向边表征执行顺序;
23.获取目标流式计算平台对应的代码生成规则,根据代码生成规则以及目标拓扑图将代码文件中的代码转换为应用于目标流式计算平台的目标代码。
24.在一个可能的实现方式中,根据代码生成规则以及目标拓扑图将代码文件中的代码转换为应用于目标流式计算平台的目标代码,包括:
25.由下而上遍历目标拓扑图的各个拓扑节点,针对每一拓扑节点,确定当前时刻遍历到的拓扑节点对应的当前数据处理节点,并在代码文件中确定当前数据处理节点对应的代码块;
26.根据代码生成规则对代码块进行转换,以使得转换后的代码块可应用于目标流式计算平台。
27.在一个可能的实现方式中,将打包后得到的目标数据包发布到目标流式计算平台,之后还包括:
28.监听目标数据包在目标流式计算平台的运行状况,若监听到异常,则定位异常所在的数据处理节点,并对数据处理节点的所在的代码块进行修正。
29.根据本技术实施例的另一个方面,提供了一种数据包发布的装置,该装置包括:
30.目标业务确定模块,用于根据业务的业务属性,从多个待读取数据的业务中确定出目标业务;
31.业务数据读取模块,用于基于目标业务与数据源之间的对应关系,读取目标业务对应的业务数据;
32.预处理模块,用于当与目标业务对应的工作模式为第一工作模式,对读取到的业务数据进行预处理,得到目标数据;
33.代码文件获取模块,用于获取预先为目标业务配置的、包括业务数据的处理流程的代码文件;
34.转换模块,用于确定目标业务应用的目标流式运算平台,将代码文件中的代码转换为应用于目标流式计算平台的目标代码;
35.数据包发布模块,用于将目标数据和转换后的代码文件进行打包,并将打包后得到的目标数据包发布到目标流式计算平台。
36.根据本技术实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如第一方面所提供的方法的步骤。
37.根据本技术实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
38.根据本技术实施例的又一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行实现如第一方面所提供的方法的步骤。
39.本技术实施例提供的技术方案带来的有益效果是:
40.本技术实施例根据业务的业务属性,从多个待读取的业务中确定出目标业务,基于目标业务与数据源之间的对应关系,读取目标业务对应的数据源中的业务数据,当目标业务对应的工作模式为第一工作模式时,对读取到的业务数据进行预处理,得到目标数据;获取预先为目标业务配置的、包括业务数据的处理流程的代码文件确定目标业务应用的目标流式运算平台,将代码文件中的代码转换为应用于目标流式计算平台的目标代码;将目标数据和转换后的代码文件进行打包,并将打包后得到的目标数据包发布到目标流式计算平台。本技术实施例实现自动将包含业务处理流程的代码文件中的代码转换为可应用于各目标流式计算平台的目标代码,无需开发人员开发分别编辑多套应用于各目标流式计算平台的目标代码,降低了程序开发的难度。
附图说明
41.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
42.图1为本技术实施例提供的3种流式计算框架之间的对比示意图;
43.图2为本技术实施例提供的实现数据包发布的方法的系统架构示意图;
44.图3为本技术实施例提供的一种数据包发布的方法的流程示意图;
45.图4为本技术实施例提供的一种从可视化角度展现的数据包发布的方法;
46.图5为本技术实施例提供的将代码文件中的代码转换为应用于流式计算平台的目标代码的流程示意图;
47.图6为本技术实施例提供的一种目标拓扑图的示意图;
48.图7为本技术实施例提供的一种数据包发布的装置的结构示意图;
49.图8为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
50.下面结合本技术中的附图描述本技术的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本技术实施例的技术方案的示例性描述,对本技术实施例的技术方案不构成限制。
51.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、
“”
和“该”也可包括复数形式。应该进一步理解的是,本技术实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“a和/或b”可以实现为“a”,或者实现为“b”,或者实现为“a和b”。
52.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
53.首先对本技术涉及的几个名词进行介绍和解释:
54.对于面向对象编程来说,抽象它的特征之一。在java中,可以通过两种形式来体现抽象:接口和抽象类。
55.接口(interface),在软件工程中,接口泛指供别人调用的方法或者函数,接口是对行为的抽象。
56.抽象类,包含抽象方法的类称为抽象类,抽象类是为了继承而存在。
57.相比较而言,抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract方法,一个接口中可以有多个方法的实现;抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;一个类只能继承一个抽象类,而一个类却可以实现多个接口。
58.大数据的计算模式主要分为批量计算(batch computing)、流式计算(stream computing)、交互计算(interactive computing)、图计算(graph computing)等。其中,流式计算和批量计算是两种主要的大数据计算模式,分别适用于不同的大数据应用场景。目前流式计算框架有apachestorm、apachespark、apacheflink以及apache samza四种,其基本原理如下:
59.apache storm(也称之为apache stormstreaming):一个流式计算框架,在storm中,可以先设计一个实时计算结构,称之为拓扑(topology)或者拓扑图结构。可以将这个拓扑图结构提交给集群,其中主节点(master node)负责给工作节点(worker node)分配代码,工作节点负责执行代码。
60.apache samza,不像apache storm那样一次处理一个数据流,相反,它在处理数据流之前,会按照时间间隔对数据流进行分段切分。spark针对连续数据流的抽象称为
dstream(discretized stream),dstream是小批处理的rdd(弹性分布式数据集),rdd则是分布式数据集,可以通过任意函数和滑动数据窗口(窗口计算)进行转换,实现并行操作。
61.apache flink,创造性地统一了流处理和批处理,作为流处理看待时输入数据流是无界的,而批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。flink程序由stream和transformation这两个基本构建块组成,其中stream是一个中间结果数据,而transformation是一个操作,它对一个或多个输入stream进行计算处理,输出一个或多个结果stream。
62.apachestorm、apachespark以及apacheflink为主流流式计算框架,如图1所示,其示例性示出了3种流式计算框架之间的对比示意图,如图所示,有3种流式2计算框架,从streaming model(流引擎)、guarantees(数据传输形式)、back pressure(背压)、latency(延迟)、throughputs(吞吐量)以及fault tolerance(容错)等属性来对三种流式计算框架进行比对,apachestorm的streaming model(流引擎)采用的是本地流引擎nativestreaming,能够带来较低的延迟latency,可以轻松的达到几十毫秒级别的latency,apacheflink也是native streaming实现,也可以达到百毫秒级别的latency,apachespark基于micro-batching(微处理引擎)实现,提高了throughputs吞吐量,但latency较高,很明显,3中流式计算框架各有优缺点,同样地,它们所应用的流式计算平台也有相同的优缺点,开发人员在开发某业务对应的应用程序时,通常会开发一套应用于某流式计算平台的代码,当想要将该应用程序应用于别的流式计算平台时,需要额外再开发一套代码以适应另外的流式处理平台,这很大程度上增加了程序开发的难度,导致开发成本较高。
63.本技术提供的一种数据包发布的方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,旨在解决现有技术的如上技术问题。
64.下面通过对几个示例性实施方式的描述,对本技术实施例的技术方案以及本技术的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
65.图2为本技术实施例提供的实现数据包发布的方法的系统架构示意图,包括数据源部分、开发组件部分、流式运算平台部分、代码文件部分以及辅助工具部分等等,其中,数据源可以为任何为目标业务提供业务数据的数据库或数据库服务器或消息集群;开发组件部分执行一种数据包发布的方法;流式运算平台可以为storm流式运算平台、spark流式运算瓶体以及flink流式运算平台中的任意一种;代码部分可以为预先为目标业务配置的包括业务数据的处理流程的代码文件;辅助工具部分提供其他辅助功能,比如记录日志功能等。
66.本技术实施例提供的一种数据包发布的方法,该方法的执行主体可以为包含可视化节点的开发组件,该开发组件可应用于终端。
67.本技术实施例中终端设备是一种具有无线收发功能的设备,可以称为终端(terminal)、用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)、接入终端设备、车载终端设备、工业控制终端设备、ue单元、ue站、移动站、远方站、远程终端设备、移动设备、ue终端设备、无线通信设备、ue代理或ue装置等。
终端设备可以是固定的或者移动的,例如,终端设备可以是手机(mobile phone)、平板电脑(pad)、台式机、笔记本电脑、一体机、车载终端、虚拟现实(virtual reality,vr)终端设备、增强现实(augmented reality,ar)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(session initiation protocol,sip)电话、无线本地环路(wirelesslocal loop,wll)站、个人数字助理(personal digital assistant,pda)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、可穿戴设备、未来移动通信网络中的终端设备或者未来演进的公共移动陆地网络(public land mobile network,plmn)中的终端设备等。
68.本技术实施例中提供了一种数据包发布的方法,如图3所示,该方法包括:
69.步骤s301,根据业务的业务属性,从多个待读取数据的业务中确定出目标业务。
70.本技术实施例执行主体可以为上面的开发组件部分,本技术实施例从可视化的角度打包目标业务的应用程序。
71.本技术实施例业务属性是指业务的特性,例如有的业务对应海量业务数据,比如金融业务,有的业务对应少量的业务数据,比如系统信息等,有的业务需要即使响应,比如用户浏览网页等等。
72.本技术实施例目标业务是指需要实时处理以及批量处理的业务,比如银行业务、金融业务等等。
73.步骤s302,基于目标业务与数据源之间的对应关系,读取目标业务对应的数据源中的业务数据。
74.本技术实施例业务数据存储于数据源,数据源可以是任何存储业务数据的数据库、数据库服务器或消息系统,比如银行对应的数据库,本技术实施例数据源的具体内容对此不作限制。
75.本技术实施例中业务数据是指目标业务对应的处理数据,比如目标业务为银行业务时,业务数据可以为某用户资金变动时间、资金变动数额等需要进行实时处理的批量数据,本技术实施例对业务数据的具体内容不作限制。
76.步骤s303,当与目标业务对应的工作模式为第一工作模式时,对业务数据进行预处理,得到目标数据;
77.本技术实施例确定工作模式是指确定当前是否开启对业务数据进行处理的模式,通过暂定方法pause来控制是否对业务数据进行处理。
78.本技术实施例工作模式包括第一工作模式和第二工作模式,第一工作模式下,确定对读取到的业务数据进行预处理,第二工作模式下,确定不对读取到的业务数据进行预处理。
79.本技术实施例将读取到的业务数据进行预处理,是指为从数据源读取到的业务数据配置业务参数,得到目标数据,从面向对象的角度理解,即对目标数据进行统一抽象,抽象为统一的格式,该统一的格式为object。
80.从面向对象角度,本技术实施例可将步骤s301抽象为业务数据处理接口idata接
口,通过调用该idata接口即可读取目标业务对应的业务数据,确定工作模式,在工作模式为第一工作模式时,对读取到的业务时间进行预处理。
81.步骤s304,获取预先为目标业务配置的、包括业务数据的处理流程的代码文件。
82.本技术实施例预先为目标业务配置了包含业务数据的处理流程的代码文件,该代码文件可以为可应用于面向对象编程格式的文件,例如xml格式的文件。
83.本技术实施例代码文件可划分为若干个代码块,每个代码块对应一个数据处理节点,即可理解为业务数据是由若干个数据处理节点处理的。
84.可以理解的是,预先配置的代码文件可以是应用于某一流式计算平台的代码文件,即以某流式架构编辑而成的代码文件,比如以strom架构编辑而成的代码文件,也可以为其他架构编辑而成的代码文件。
85.本技术实施例代码文件中包含各种类的抽象类,abstractspringstep是spring frameworks的抽象类,抽象类之间存在继承关系,比如,假设代码文件以storm架构编辑而成的,抽象类abstractspringstep、abstractstep以及abstractspringmapstatustep继承abstractbasicstep,abstractbasicstep继承basebasicbolt。
86.从面向对象角度,本技术实施例可将步骤s303抽象为处理流程接口istep接口,通过调用处理流程接口istep接口,可确定目标业务应用的目标流式运算平台,将代码文件中的代码转换为应用于目标流式计算平台的目标代码。
87.本技术实施例提供业务数据处理接口和处理流程接口可以实现对业务数据的获取和调用,满足目标业务需要,可以隐藏具体方法类的实现,提高应用程序运行的安全性。
88.步骤s305,确定目标业务应用的目标流式运算平台,将代码文件中的代码转换为应用于目标流式计算平台的目标代码。
89.本技术实施例流式计算平台为流式计算框架应用的平台,流式计算框架包括storm框架、spark框架、flink框架以及samza框架,对应的,本技术实施例的流式计算平台可包括:storm流式计算平台、spark流式计算平台、flink流式计算平台以及samza流式计算平台流式计算平台中的任意一种。
90.本技术实施例在确定出目标业务应用的目标流式运算平台后,将代码文件中的代码转换为应用目标流式计算平台的目标代码。
91.具体地,可获取目标流式计算平台对应的代码生成规则对代码文件进行转换,可以将代码文件中的代码划分为一个个代码块,分别对各个代码块进行转化,详细见后续内容。
92.步骤s306,将目标数据和转换后的代码文件进行打包,并将打包后得到的目标数据包发布到目标流式计算平台。
93.本技术实施例在获得打包后的目标数据后,在当前界面展示打包后得到的目标数据包,并将目标数据包发布到目标流式计算平台,以使得目标流式平台可以运行该目标数据包。
94.本技术实施例可从可视化角度提供一种数据包发布的方法,从可视化角度提供该方法时,会基于用户的操作展示操作结果,用户无法得知后台具体处理过程。
95.如图4所示,其示例性示出了从可视化角度展现的数据包发布的方法的示意图,首先展示当前界面,在当前界面展示至少一种打包控件,打包控件分别于目标业务应用的流
式平台一一对应;在用户触发对目标打包控件的操作后,响应于针对目标打包控件的触发操作,执行步骤s301至步骤s306,打包得到目标数据包;在当前界面展示打包完成的可应用于目标流式计算平台的目标数据包,并将该目标数据包发布到目标流式计算平台。
96.具体而言,比如用户单击“flink流式计算平台”对应的打包控件,响应于针对该目标打包控件的触发操作,确定出该目标打包控件对应的目标流式计算平台,延续上例,后台在检测到用户单击“flink流式计算平台”对应的打包控件的操作后,响应该操作,后台执行步骤s301至s306,打包得到目标数据包,并在当前界面展示目标数据包,将该目标数据包发布到目标流式计算平台。
97.本技术实施例根据业务的业务属性,从多个待读取的业务中确定出目标业务,基于目标业务与数据源之间的对应关系,读取目标业务对应的数据源中的业务数据,当目标业务对应的工作模式为第一工作模式时,对读取到的业务数据进行预处理,得到目标数据;获取预先为目标业务配置的、包括业务数据的处理流程的代码文件确定目标业务应用的目标流式运算平台,将代码文件中的代码转换为应用于目标流式计算平台的目标代码;将目标数据和转换后的代码文件进行打包,并将打包后得到的目标数据包发布到目标流式计算平台。本技术实施例实现自动将包含业务处理流程的代码文件中的代码转换为可应用于各目标流式计算平台的目标代码,无需开发人员开发分别编辑多套应用于各目标流式计算平台的目标代码,降低了程序开发的难度。
98.本技术实施例提供了一种可能的实现方式,根据业务的业务属性,从多个待读取数据的业务中确定出目标业务,包括:
99.获取多个待读取数据的业务的业务属性,根据业务属性分别确定多个待读取数据的业务分别对应的业务类型;业务类型包括普通类型、实时类型以及批处理类型;
100.若待读取数据的业务同时符合实时类型和批处理类型,则确定待读取数据的业务为目标业务。
101.本技术实施例业务类型包括普通类型、实时类型以及批处理类型,普通类型为实时性和批处理没有要求,实时类型要求实时处理业务处理,批处理类型即为需要对数据进行批处理。
102.本技术实施例业务属性表征各个业务的特性,可根据业务属性来判断业务类型,若待读取数据的业务同时符合实时类型和批处理类型,则确定待读取数据的业务为目标业务。
103.本技术实施例数据源可以是任何存储业务数据的数据库、数据库服务器或消息系统,本技术实施例对此不作限制。
104.本技术实施例业务数据trandata是指目标业务对应的处理数据,比如目标业务为银行业务时,业务数据可以为某用户资金变动时间、资金变动数额等等,本技术实施例对业务数据的具体内容不作限制。
105.本技术实施例在读取数据源中的业务数据之前,需对开启数据源,对数据源接口进行初始化,对数据源接口进行初始化即建立和数据源之间的数据连接,通过方法open开启数据源,通过datasourceinit初始化数据源,初始化数据源即为建立目标业务和数据源之间的数据连接,通过collectdatas方法接收业务数据,当然还可以包括发送目标定义(declareoutputfields)等扩展方法,本技术实施例在此不再一一介绍。
106.从面向对象角度,本技术实施例提供了数据源接口idatasource,数据源接口是确定目标业务对应的数据源,并建立目标业务和数据源之间的数据连接的抽象,数据源接口idatasource主要用于控制对数据源中数据的搜集,通过调用数据源接口,能够读取数据源中的业务数据。
107.本技术实施例提供了一种可能的实现方式,读取目标业务对应的数据源中的业务数据,之后还包括:
108.在对业务数据读取过程中,当与目标业务对应的工作模式改变为第二工作模式时,停止对读取到的业务数据进行预处理,将业务数据存储至缓冲区。
109.本技术实施例在在对业务数据读取过程中,在一些特殊情况,比如在网络状况较差时,将工作模式切换至第二工作模式,在第二工作模式下,不对读取到的业务数据进行预处理,直接将业务数据存储到缓冲区,以此实现灵活的对业务处理的开关控制。
110.事实上,工作模式为第一工作模式时,也将读取到的业务数据存储到缓冲区,但是刚存储后的业务数据立马被预处理,存储的时间非常短暂,可以忽略不计。
111.本技术实施例提供了一种可能的实现方式,将读取到的业务数据进行预处理,得到目标数据,包括:
112.为读取到的业务数据配置业务参数,将业务数据、业务参数进行封装,得到目标数据;业务参数包括业务数据的唯一标识、所属批次号以及所属批次的批次数据总量。
113.本技术实施例在读取到业务数据之后,需要对业务数据进行抽象,即将业务数据封装为统一的格式object,为业务数据配置唯一标识uid,所属批次号batchno以及所属批次的批次数据总量totle,当然,针对的流式计算平台不对,也可针对不同的流式计算平台再配置其他的业务参数。
114.另外,本技术实施例目标数据中携带有参数streamid,streamid用于区分该目标数据在拓扑图中的传递位置,通过该streamid可确定对该处理该目标数据的各个数据处理节点以及各数据处理节点处理该目标数据的顺序。
115.本技术实施例提供了一种可能的实现方式,如图5所示,将代码文件中的代码转换为应用于流式计算平台的目标代码,包括:
116.步骤s501,对代码文件进行解析,得到执行业务流程的各数据处理节点以及各个数据处理节点在执行业务流程时的执行顺序;
117.本技术实施例代码文件是指预先为目标业务配置的、包含业务数据的处理流程的代码文件,可以为可应用于面向对象编程格式的文件,例如xml格式的文件。
118.可以理解的是,对目标业务的数据的处理是由一个个数据处理节点进行处理的,具体而言,比如银行业务有3个数据处理节点,分别为支行a记账节点、清算行b记账节点以及支行b记账节点,且执行顺序为支行a记账节点、清算行b记账节点、支行b记账节点。
119.本技术实施例数据处理节点可以为处理流程接口内各种方法对应的实现,比如数据处理方法(executedata)、异常后处理方法(catchexception)
120.本技术实施例在获取到代码文件后,对该代码文件进行解析,得到执行业务流程的各个数据处理节点以及各个数据处理节点在执行业务流程时的执行顺序。
121.具体地,可根据代码文件中的继承关系或引用关系确定各个数据处理节点以及各数据处理节点的执行顺序,比如方法a继承方法b,可确定方法a为方法b的父类,比如方法c
引用方法d,可确定方法d的执行顺序在方法c的前面等等。
122.步骤s502,根据该执行顺序构建包含各数据处理节点的目标拓扑图,目标拓扑图中的拓扑节点表征数据处理节点,目标拓扑图的有向边表征该执行顺序。
123.本技术实施例的执行顺序是根据各处理节点之间的继承关系(父类和继承该父类的子类)和引用关系确定的,通过该执行顺序构建包含各数据处理节点的目标拓扑图,目标拓扑图是一个有向无环图,目标拓扑图的拓扑节点对应数据处理节点,目标拓扑图中的有向边对应执行顺序。
124.具体而言,比如有3个数据处理节点,分别为abstractspringstep抽象类、abstractstep抽象类以及abstractspringmapstatustep抽象类,这三个数据处理节点均引用数据处理节点abstractbasicstep抽象类,而abstractbasicstep抽象类继承basebasicbolt抽象类,基于这些数据处理节点,可以建立目标拓扑图,建立的目标拓扑图如图6所示。
125.步骤s503,获取目标流式计算平台对应的代码生成规则,根据代码生成规则以及目标拓扑图将代码文件中的代码转换为应用于目标流式计算平台的目标代码。
126.本技术实施例在确定出目标拓扑图后,获取目标流式计算平台对应的代码生成规则,事实上,由于各个流式计算平台之间的差异,每个流式计算平台都有其对应的代码生成规则,代码生成规则包含代码格式要求、配置要求等等,比如由于storm的部署特性,框架对于比较流行的注解支持不好,需要把spring注解部分转换为springxml配置形式来加载。
127.本技术实施例可在获得目标拓扑图之后,可以由下而上遍历目标图谱图,即先遍历子节点,再遍历父节点,确定当前时刻遍历到的拓扑节点对应的数据处理节点,从而根据代码生成规则将代码文件中该数据处理节点对应的代码块转换为应用于目标流式计算平台的目标代码块,将所有数据处理节点对应的代码块转换完毕,即可实现将代码文件中的代码转换为目标代码。
128.本技术实施例提供了一种可能的实现方式,根据代码生成规则以及目标拓扑图将代码文件中的代码转换为应用于目标流式计算平台的目标代码,包括:
129.由下而上遍历目标拓扑图的各个拓扑节点,针对每一拓扑节点,确定当前时刻遍历到的拓扑节点对应的当前数据处理节点,并在代码文件中确定当前数据处理节点对应的代码块;
130.根据代码生成规则对代码块进行转换,以使得转换后的代码块可应用于目标流式计算平台。
131.本技术实施例对代码文件中代码的转换是分块转换的,将各个数据处理节点对应的代码块转换为可应用于目标流式计算平台的代码块。
132.本技术实施例由下而上遍历各数据处理节点,即先遍历子节点,再遍历父节点,确定当前时刻遍历到的拓扑节点对应的数据处理节点,从而根据代码生成规则将代码文件中该数据处理节点对应的代码块转换为应用于目标流式计算平台的目标代码块,将所有数据处理节点对应的代码块转换完毕,即可实现将代码文件中的代码转换为目标代码。
133.本技术实施例通过由下而上遍历目标图谱图的各个拓扑节点,确定当前时刻遍历到的拓扑节点对应的当前数据处理节点,并在代码文件中确定当前数据处理节点对应的代码块,对该代码块进行转化,进而实现对整个代码文件中的代码的转换,能有效降低转换出
错的概率。
134.本技术实施例提供了一种可能的实现方式,将打包后得到的目标数据包发布到目标流式计算平台,之后还包括:
135.监听目标数据包在目标流式计算平台的运行状况,若监听到异常,则定位异常所在的数据处理节点,并对数据处理节点所在的代码块进行修正。
136.本技术实施例目标流式计算平台在接收到目标数据包之后,运行该目标数据包,当然,也可在目标流式计算平台上测试运行该目标数据包。
137.本技术实施例在目标流式计算平台运行该目标数据包时,监听该目标数据包的运行状况,运行状况包括正常和异常,若监听到异常,则定位该异常所在的数据处理节点,并对该数据处理节点所在的代码块进行修正。具体地,在监听到异常时,直接定位异常所在的数据处理节点,可监听异常类型,调用预先存储的修正方法对该异常进行修正,也可由开发人员进行人工修正。
138.本技术实施例提供了一种数据包发布的装置,如图7所示,该数据包发布的装置70可以包括:
139.目标业务确定模块710,用于根据业务的业务属性,从多个待读取数据的业务中确定出目标业务;
140.业务数据读取模块720,用于基于目标业务与数据源之间的对应关系,读取目标业务对应的数据源中的业务数据;
141.预处理模块730,当与目标业务对应的工作模式为第一工作模式时,对读取到的业务数据进行预处理,得到目标数据;
142.代码文件获取模块740,用于获取预先为目标业务配置的、包括业务数据的处理流程的代码文件;
143.转换模块750,用于确定目标业务应用的目标流式运算平台,将代码文件中的代码转换为应用于目标流式计算平台的目标代码;
144.数据包发布模块760,用于将目标数据和转换后的代码文件进行打包,并将打包后得到的目标数据包发布到目标流式计算平台。
145.本技术实施例根据业务的业务属性,从多个待读取的业务中确定出目标业务,基于目标业务与数据源之间的对应关系,读取目标业务对应的数据源中的业务数据,当目标业务对应的工作模式为第一工作模式时,对读取到的业务数据进行预处理,得到目标数据;获取预先为目标业务配置的、包括业务数据的处理流程的代码文件确定目标业务应用的目标流式运算平台,将代码文件中的代码转换为应用于目标流式计算平台的目标代码;将目标数据和转换后的代码文件进行打包,并将打包后得到的目标数据包发布到目标流式计算平台。本技术实施例实现自动将包含业务处理流程的代码文件中的代码转换为可应用于各目标流式计算平台的目标代码,无需开发人员开发分别编辑多套应用于各目标流式计算平台的目标代码,降低了程序开发的难度。
146.本技术实施例提供了一种可能的实现方式,业务数据读取模块包括:
147.业务类型确定子模块,用于获取多个待读取数据的业务的业务属性,根据业务属性分别确定多个待读取数据的业务分别对应的业务类型;业务类型包括普通类型、实时类型以及批处理类型;
148.目标业务却确定子模块,用于若待读取数据的业务同时符合实时类型和批处理类型,则确定待读取数据的业务为目标业务。
149.本技术实施例提供了一种可能的实现方式,业务数据读取模块还包括:
150.缓存子模块,用于在对业务数据读取过程中,当与目标业务对应的工作模式改变为第二工作模式时,停止对读取到的业务数据进行预处理,将业务数据存储至缓冲区。
151.本技术实施例提供了一种可能的实现方式,业务数据处理模块具体用于为读取到的业务数据配置业务参数,将业务数据、业务参数进行封装,得到目标数据;业务参数包括业务数据的唯一标识、所属批次号以及所属批次的批次数据总量。
152.本技术实施例提供了一种可能的实现方式,转换模块还包括:
153.执行顺序确定子模块,用于对代码文件进行解析,得到执行业务流程的各个数据处理节点以及各个数据处理节点在执行业务流程时的执行顺序;
154.目标图谱图构建子模块,用于根据执行顺序构建包含各数据处理节点的目标拓扑图;目标拓扑图中的拓扑节点表征数据处理节点;目标拓扑图的有向边表征执行顺序;
155.转换子模块,用于获取目标流式计算平台对应的代码生成规则,根据代码生成规则以及目标拓扑图将代码文件中的代码转换为应用于目标流式计算平台的目标代码。
156.本技术实施例提供了一种可能的实现方式,转换子模块具体用于由下而上遍历目标拓扑图的各个拓扑节点,针对每一个拓扑节点,确定当前时刻遍历到的拓扑节点对应的当前数据处理节点,并在代码文件中确定当前数据处理节点对应的代码块;根据代码生成规则对代码块进行转换,以使得转换后的代码块可应用于目标流式计算平台。
157.本技术实施例提供了一种可能的实现方式,该装置还包括:
158.监听模块,用于监听目标数据包在目标流式计算平台的运行状况,若监听到异常,则定位异常所在的数据处理节点,并对数据处理节点的所在的代码块进行修正。
159.本技术实施例的装置可执行本技术实施例所提供的方法,其实现原理相类似,本技术各实施例的装置中的各模块所执行的动作是与本技术各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
160.本技术实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现数据包发布的方法的步骤,与相关技术相比可实现:本技术实施例根据业务的业务属性,从多个待读取的业务中确定出目标业务,基于目标业务与数据源之间的对应关系,读取目标业务对应的数据源中的业务数据,当目标业务对应的工作模式为第一工作模式时,对读取到的业务数据进行预处理,得到目标数据;获取预先为目标业务配置的、包括业务数据的处理流程的代码文件确定目标业务应用的目标流式运算平台,将代码文件中的代码转换为应用于目标流式计算平台的目标代码;将目标数据和转换后的代码文件进行打包,并将打包后得到的目标数据包发布到目标流式计算平台。本技术实施例实现自动将包含业务处理流程的代码文件中的代码转换为可应用于各目标流式计算平台的目标代码,无需开发人员开发分别编辑多套应用于各目标流式计算平台的目标代码,降低了程序开发的难度。
161.在一个可选实施例中提供了一种电子设备,如图8所示,图8所示的电子设备8000包括:处理器8001和存储器8003。其中,处理器8001和存储器8003相连,如通过总线8002相
连。可选地,电子设备8000还可以包括收发器8004,收发器8004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器8004不限于一个,该电子设备8000的结构并不构成对本技术实施例的限定。
162.处理器8001可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器8001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
163.总线8002可包括一通路,在上述组件之间传送信息。总线8002可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线8002可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
164.存储器8003可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
165.存储器8003用于存储执行本技术实施例的计算机程序,并由处理器8001来控制执行。处理器8001用于执行存储器8003中存储的计算机程序,以实现前述方法实施例所示的步骤。
166.其中,电子设备包可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图8所示的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
167.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与相关技术相比可实现:本技术实施例根据业务的业务属性,从多个待读取的业务中确定出目标业务,基于目标业务与数据源之间的对应关系,读取目标业务对应的数据源中的业务数据,当目标业务对应的工作模式为第一工作模式时,对读取到的业务数据进行预处理,得到目标数据;获取预先为目标业务配置的、包括业务数据的处理流程的代码文件确定目标业务应用的目标流式运算平台,将代码文件中的代码转换为应用于目标流式计算平台的目标代码;将目标数据和转换后的代码文件进行打包,并将打包后得到的目标数据包发布到目标流式计算平台。本技术实施例实现自动将包含业务处理流程的代码文件中的代码转换为可应用于各目标流式计算平台的目标代码,无需开发人员开发分别编辑多套应用于各目标
流式计算平台的目标代码,降低了程序开发的难度。
168.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
169.本技术实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
170.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除图示或文字描述以外的顺序实施。
171.应该理解的是,虽然本技术实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本技术实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本技术实施例对此不限制。
172.以上仅是本技术部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的方案技术构思的前提下,采用基于本技术技术思想的其他类似实施手段,同样属于本技术实施例的保护范畴。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1