获取拓扑图数据对象的方法、装置、及电子设备与流程

文档序号:29072639发布日期:2022-03-01 21:48阅读:109来源:国知局
获取拓扑图数据对象的方法、装置、及电子设备与流程

1.本技术涉及数据处理技术领域,具体而言,本技术涉及一种获取拓扑图数据对象的方法、装置及电子设备。


背景技术:

2.随着数据处理技术的发展,大数据的价值被越来越多人认可,如何对大数据进行处理,是数据处理领域的热门课题。目前,大数据的计算模式可以包括批量计算(batch computing)、流式计算(stream computing)、交互计算(interactive computing)、图计算(graph computing)等。
3.其中,流式计算和批量计算是两种主要的大数据计算模式。流式计算,是对数据流进行处理,即实时计算;而批量计算是统一收集数据,存储到数据库中,然后对数据进行批量处理的数据计算方式。相较于传统的批量计算方法,流式计算能做到数据随到随处理,有效降低了处理延时。
4.通常,在分布式实时计算系统中,需要先设计一个实时计算结构,该计算结构可以称之为拓扑(topology),本质是一个与处理数据的执行流程对应的有向无环图(directed acyclic graph,dag)。拓扑一般由程序编码实现,其代码较为抽象,每个节点之间的层级关系、以及与实际执行流程中步骤的对应关系不够清晰,不利于查看和管理,使数据处理效率难以提高。


技术实现要素:

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.从数据源集合中数据源子标签对应的配置数据对象开始遍历,将数据源数据集合中配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里第一层级对应的层级数据对象中;
43.若数据源数据集合中配置数据对象存储的标签属性中包括下一数据处理节点的节点标识,则从该配置数据对象中确定下一数据处理节点的节点标识对应的第一配置数据对象,并将确定出的第一配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里第一层级的下一层级对应的层级数据对象中;
44.若第一配置数据对象存储的标签属性中包括下一数据处理节点的节点标识,则从处理步骤数据集合中的配置数据对象里确定下一数据处理节点的节点标识对应的第二配置数据对象;
45.将第二配置数据对象存储的标签属性和标签内容按照对应的层级关系进行存储,并将第二配置数据对象作为新的第一配置数据对象,直到配置数据对象遍历完成为止。
46.在第二方面的可选实施例中,拓扑图数据对象获取模块在将配置参数中各子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中,获取目标拓扑图数据对象时,具体用于:
47.将配置参数中各子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中;
48.若层级数据对象集合中存在相同的节点标识,则对层级数据对象集合中的层级进行调整,得到目标拓扑图数据对象。
49.在第二方面的可选实施例中,若层级数据对象集合中存在相同的节点标识,拓扑图数据对象获取模块在对层级数据对象集合中的层级进行调整,得到目标拓扑图数据对象时,具体用于:
50.若层级数据对象集合中存在相同的节点标识,且该节点标识在层级数据对象集合中对应于至少两个层级,则在至少两个层级中确定出最大层级以及最大层级对应的层级数据对象;
51.将除了最大层级对应的层级数据对象之外的、拥有相同的节点标识的其余层级数据对象的层级关系合并到最大层级对应的层级数据对象的层级关系中,得到目标拓扑图数据对象。
52.第三方面,提供了一种电子设备,该电子设备包括:
53.存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例的获取拓扑图数据对象的方法。
54.第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算
机程序,该程序被处理器执行时实现上述任一实施例的获取拓扑图数据对象的方法。
55.第五方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现第一方面实施例中所提供的方法。
56.上述的获取拓扑图数据对象的方法,获取用于描述业务数据处理流程的配置文件,其中,配置文件可以包含与所述业务处理流程中各个数据处理节点分别对应的配置参数,可以通过预配置的拓扑图配置对象对配置文件进行解析,得到包含配置参数的配置数据对象,然后基于配置数据对象之间的层级关系,将配置参数按照与业务数据处理流程相对应的层级关系进行存储,得到目标拓扑图数据对象。通过预设格式的配置文件来对拓扑结构进行配置,灵活性高,并且,配置文件中可以清晰体现配置参数与实际业务数据处理流程的对应关系,利于查看和管理,提高了数据处理效率。
附图说明
57.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
58.图1为本技术实施例提供的一种获取拓扑图数据对象的方法的流程示意图;
59.图2为本技术实施例提供的一种获取拓扑图数据对象的方法中配置数据对象的数据结构的示意图;
60.图3为本技术实施例提供的一种获取拓扑图数据对象的方法中层级数据对象的数据结构的示意图;
61.图4为本技术实施例提供的一种获取拓扑图数据对象的方法中遍历配置数据对象的流程示意图;
62.图5为本技术实施例提供的一种获取拓扑图数据对象的方法中调整层级数据对象集合的示意图;
63.图6为本技术实施例提供的一种获取拓扑图数据对象的方法的流程示意图;
64.图7为本技术实施例提供的一种获取拓扑图数据对象的装置的结构示意图;
65.图8为本技术实施例提供的一种获取拓扑图数据对象的电子设备的结构示意图。
具体实施方式
66.下面结合本技术中的附图描述本技术的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本技术实施例的技术方案的示例性描述,对本技术实施例的技术方案不构成限制。
67.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件
建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“a和/或b”指示实现为“a”,或者实现为“a”,或者实现为“a和b”。
68.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
69.首先对本技术涉及的几个名词进行介绍和解释:
70.目前主流的流式计算框架可以包括apache storm。
71.apache storm:一个流式计算框架,在storm中,可以先设计一个实时计算结构,称之为拓扑(topology)或者拓扑图结构。可以将这个拓扑图结构提交给集群,其中主节点(master node)负责给工作节点(worker node)分配代码,工作节点负责执行代码。
72.拓扑(topology):也可以称为拓扑图几个,相较于数学概念中的拓扑,在数据处理领域中的拓扑的定义更为广义,可以指用传输介质互连各种设备的物理布局,是构成网络的成员间特定的物理的(即真实的),或者逻辑的,即虚拟的排列方式。拓扑不关心事物的细节,也不在乎相互的比例关系,只是以图的形式表示一定范围内多个物体之间的相互关系。在数据处理领域,拓扑更多指的是类似于网络拓扑的结构,用于描述数据处理的流程。
73.本技术提供的获取拓扑图数据对象的方法、装置及电子设备,旨在解决现有技术中的拓扑结构不利于查看和管理,使数据处理效率难以提高技术问题。
74.下面通过对几个示例性实施方式的描述,对本技术实施例的技术方案以及本技术的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
75.本技术实施例中提供的获取拓扑图数据对象的方法,该方法可以应用于终端。
76.本技术领域技术人员可以理解,这里所使用的“终端”可以是个人计算机、手机、平板电脑、pda(personal digital assistant,个人数字助理)、mid(mobile internet device,移动互联网设备)等。
77.本技术实施例中提供了一种数据处理的方法,如图1所示,该方法包括:
78.步骤s101,获取用于描述业务数据处理流程的配置文件,其中,配置文件包含与业务处理流程中各个数据处理节点分别对应的配置参数。
79.在本技术实施例中,可以获取用于描述业务数据处理流程的配置文件,配置文件可以为预设格式。具体的,预设格式的配置文件可以为基于xml(extensible markup language,可扩展标记语言)编写的配置文件。
80.在xml语言中,可以自定义标签,用标签来描述一段数据,一个标签可以分为开始标签和结束标签,在开始标签和结束标签之间,又可以使用其他标签描述其他数据,以此来实现数据关系的描述。在本技术中,当配置文件为xml文件时,配置文件中可以包括父标签和子标签,用父标签和子标签,以及父标签和子标签分别对应的标签内容和标签属性来描述指定的业务数据处理流程。
81.具体的,父标签的标签内容和标签属性可以用于描述指定的业务数据处理流程的流程说明和版本信息,子标签的标签内容和标签属性可以用于描述获取待处理业务数据、以及具体如何对待处理业务数据进行处理。可以将用于描述指定业务数据处理流程的父标
签和子标签的标签内容和标签属性作为业务处理流程的配置参数。
82.在本技术实施例中,当配置文件包括至少两个子标签时,一个子标签对应于所述业务数据处理流程中的一个数据处理节点,配置文件包含的配置参数可以包括各子标签的标签属性和标签内容。
83.针对每一子标签,标签属性可以包括该子标签对应的数据处理节点的节点标识、以及该数据处理节点对应的下一数据处理节点的节点标识,标签内容用于确定该数据处理节点对应的数据处理类。
84.其中,子标签可以对应于业务数据处理流程中的数据处理节点,子标签的标签属性可以包括该子标签对应的数据处理节点的节点标识、以及该数据处理节点对应的下一数据处理节点的节点标识。节点标识包括但不限于节点id和节点名称,每个数据处理节点有其唯一的节点标识,同时,每一数据处理节点对应的子标签的标签属性可以包括该数据处理节点的节点标识。
85.当子标签的标签属性中包括该子标签对应的数据处理节点的节点标识、以及该数据处理节点对应的下一数据处理节点的节点标识时,可以基于下一数据处理节点的节点标识确定出下一数据处理节点对应的子标签,形成子标签之间的执行顺序关系,可以理解的是,子标签之间的执行顺序关系与业务数据处理流程中数据处理节点之间的执行顺序关系相对应。
86.在一些实施例中,子标签的配置信息中的标签属性还可以包括节点说明、并行度等其他属性。节点说明可以用于描述该子标签对应的数据处理节点的功能信息、版本信息等,并行度可以说明该数据处理节点处理数据时可以同时处理几个流数据。
87.在一些实施例中,子标签的标签内容包括路径信息,路径信息用于确定数据处理节点对应的数据处理类。
88.其中,子标签标签内容中的路径信息可以是数据处理类的全路径,全路径可以是以“/”开头的路径信息,即从项目根目录(webcontent)出发到其他资源的过程。可以通过反射基于全路径确定数据处理节点(该子标签对应的)对应的数据处理类。数据处理类可以是数据处理相关的方法或者函数,用于在数据处理时被调用从而实现对待处理业务数据进行处理。基于任一子标签的标签内容确定出的数据处理类对应的数据处理方法,与该子标签在业务数据处理流程中对应的数据处理节点的数据处理方法相对应。例如,数据处理节点a对应的数据处理方法为求和,则基于数据处理节点a对应的子标签的标签内容确定出的数据处理类可以为求和函数。
89.在一个示例中,假设指定的业务数据处理流程为统计句子中单词出现的频率,则该业务数据处理流程可以具体包括数据处理节点a、数据处理节点b和数据处理节点c,三个数据处理节点分别对应于三个数据处理步骤:发送语句、切分语句和累加单词频率。则描述该业务数据处理流程的配置文件可以包括一个父标签和三个子标签,以及父标签和各子标签的配置信息。其中,父标签的配置信息,例如父标签的标签属性可以用于描述该业务数据处理流程为统计句子中单词出现频率的任务流程。三个子标签分别对应三个数据处理节点,每个子标签的配置信息可以描述每个数据处理节点代表的数据处理方案以及各数据处理节点之间的执行顺序。例如,数据处理节点a对应的子标签的标签属性中的下一数据处理节点的节点标识为数据处理节点b对应的节点标识,意味着在业务数据处理流程中,数据处
理节点a的下一步骤是数据处理节点b。
90.各子标签的标签内容则可以描述每个数据处理节点代表的数据处理方案。子标签的标签内容可以是类全路径,可以基于类全路径确定出该子标签对应的数据处理类。
91.具体的,数据处理节点a在业务数据处理流程中的步骤为发送语句,则基于数据处理节点a对应的子标签的标签内容确定出的数据处理类的作用即是发送语句,通过调用该数据处理类,即可实现发送语句的功能。
92.步骤s102,通过预配置的拓扑图配置对象对配置文件进行解析,得到与每一数据处理节点分别对应的配置数据对象,配置数据对象可以包含对应数据处理节点对应的配置参数。
93.在本技术实施例中,预配置的拓扑图配置对象可以是预配置的、用于解析配置文件的解析工具。预配置的拓扑图配置对象可以获取配置文件的相对地址,并使用xml document工具解析配置文件,得到配置参数对应的配置参数数据对象。
94.其中,配置参数可以包括业务数据处理流程对应的父标签以及至少一个子标签的标签内容和标签属性。当通过预配置的拓扑图配置对象对配置文件进行解析时,可以得到配置参数对应的多个配置数据对象,每个配置数据对象可以分别对应于一个子标签,而配置数据对象中可以存储有对应子标签的标签内容和标签属性。
95.在一个示例中,配置数据对象的数据结构示意图可以如图2所示,配置数据对象中的节点标识可以是与其对应的子标签的标签属性中的节点标识;下一步信息可以是对应的子标签的标签属性中下一数据处理节点的节点标识;类名可以基于对应子标签的标签内容中的类全路径确定,类名可以是该子标签对应的数据处理类的名称;节点说明可以用于描述该子标签对应的数据处理节点的功能信息、版本信息等;并行度可以说明该数据处理节点处理数据时可以同时处理几个流数据。
96.步骤s103,可以基于业务数据处理流程的数据处理顺序,确定各个数据处理节点之间的节点执行顺序;根据节点执行顺序确定各个配置数据对象之间的层级关系;基于各个配置数据对象所属的数据对象类型,确定与配置数据对象对应的数据集合;根据层级关系,将配置数据对象存储到数据集合中;基于数据集合,获取目标拓扑图数据对象。
97.在本技术实施例中,业务数据处理流程中,各个数据处理节点之间存在节点执行顺序。每个配置数据对象可以分别对应于一个子标签,而一个子标签对应于业务数据处理流程中的一个数据处理节点,则可以根据数据处理节点之间的执行关系确定各个配置数据对象之间的层级关系。
98.配置数据对象中可以存储有对应子标签的配置信息,子标签的配置信息中的标签属性可以包括该子标签对应的数据处理节点的节点标识、以及该数据处理节点对应的下一数据处理节点的节点标识,可以基于各个子标签标签属性中的下一数据处理节点的节点标识确定子标签之间的层级关系(即执行顺序关系),然后将各个子标签的配置信息按照对应的层级关系进行存储,得到目标拓扑图数据对象。
99.数据集合包括但不限于数据源数据集合、处理步骤数据集合以及层级数据对象集合,每个数据集合的作用将在下文具体说明。
100.在本技术实施例中,上述的获取拓扑图数据对象的方法还可以包括:通过预配置的流式处理平台基于目标拓扑图数据对象对待处理的业务数据进行处理。
101.其中,预配置的流式处理平台可以包括但不限于目前主流的流式计算框架,例如storm、spark streaming和flink。
102.流式处理平台可以基于目标拓扑图数据对象生成相应的数据处理执行计划,基于数据处理执行计划对待处理的业务数据进行处理。
103.具体的,目标拓扑图数据对象与指定的业务处理流程相关联,可以理解为通过拓扑(topology)的形式描述业务处理流程。
104.在实际应用场景中,不同的业务处理流程对应于不同的拓扑图数据对象,不同的待处理的业务数据若所需求的业务处理流程相同,则可以通过流式处理平台基于同一个拓扑图数据对象对待处理的业务数据进行处理。
105.上述的获取拓扑图数据对象的方法,获取用于描述业务数据处理流程的配置文件,其中,配置文件可以包含与所述业务处理流程中各个数据处理节点分别对应的配置参数,可以通过预配置的拓扑图配置对象对配置文件进行解析,得到包含配置参数的配置数据对象,然后基于配置数据对象之间的层级关系,将配置参数按照与业务数据处理流程相对应的层级关系进行存储,得到目标拓扑图数据对象。通过预设格式的配置文件来对拓扑结构进行配置,灵活性高,并且,配置文件中可以清晰体现配置参数与实际业务数据处理流程的对应关系,利于查看和管理,提高了数据处理效率。
106.本技术实施例中提供了一种可能的实现方式,至少两个子标签包括数据源子标签(datasource)和至少一个处理步骤子标签(step),业务数据处理流程的数据处理节点可以包括起始数据处理节点,数据源子标签对应于业务数据处理流程中的起始数据处理节点;针对每一配置数据对象,配置数据对象包含对应数据处理节点对应的子标签的标签属性和标签内容。
107.可以理解的是,在子标签之间的执行顺序关系中,数据源子标签可以为执行顺序关系中的第一步,作为拓扑的入口,数据源子标签的标签内容所对应的数据处理类可以是接收流数据的方法或者函数。
108.在本技术实施例中,基于配置数据对象,将配置参数按照对应的层级关系进行存储,得到目标拓扑图数据对象,可以包括如下步骤:创建数据源子标签对应的数据源数据集合、以及至少一个处理步骤子标签对应的处理步骤数据集合;将数据源子标签对应的配置数据对象存储到数据源数据集合中,将处理步骤子标签对应的配置数据对象存储到处理步骤数据集合中;按照层级关系,依次遍历数据源集合和处理步骤数据集合中的配置数据对象,将配置参数存储于层级数据对象集合中,得到目标拓扑图数据对象。
109.其中,每个配置数据对象可以存储有一个子标签的配置信息(标签内容和标签属性),则配置数据对象可以分为数据源子标签对应的配置数据对象以及处理步骤子标签对应的配置数据对象。可以进一步创建数据源数据集合以及处理步骤数据集合,将配置数据对象根据其对应的子标签是数据源子标签还是处理步骤子标签来进行分类,将所有配置数据对象分类后分别存储于两个集合中。
110.在本技术实施例中,层级关系可以包括各子标签分别对应的数据处理节点之间的节点执行顺序;可以按照层级关系,依次遍历数据源集合和处理步骤数据集合中的配置数据对象,将配置参数存储于层级数据对象集合里相应层级的层级数据对象中,具体可以包括如下步骤:
111.(1)创建层级数据对象集合;其中,层级数据对象集合可以由多个层级数据对象构成,每个层级数据对象可以用来存储相应的配置参数,而配置参数可以包括子标签的标签内容和标签属性。
112.可以理解的是,业务数据处理流程中的数据处理节点与子标签之间存在对应关系,子标签与配置数据对象之间存在对应关系,而层级数据对象用于遍历配置数据对象之后,将配置数据对象中的子标签的配置信息存储在层级数据对象集合里相应层级的层级数据对象中,即层级数据对象与数据处理节点之间也存在对应关系。
113.在实际应用场景中,层级数据对象的数据结构示意图可以如图3所示,一个层级数据对象中可以包括如下信息:并行度,该层级数据对象对应的数据处理节点可同时处理的流数据个数;拓扑版本,用于描述该拓扑结构的版本信息;当前阶段层级,该层级数据对象在层级数据对象集合中的层级;类名,可以是基于该层级数据对象应的子标签的标签内容确定出的数据处理类的类名;阶段id,由于层级数据对象集合的同一层级中可以存在多个层级数据对象,阶段id可以为该层级数据对象在本层级中的标号,也可以是该层级数据对象对应的配置数据对象中子标签的节点标识;前一步信息可以为该层级数据对象的上一层级(上一步骤)对应的另一个层级数据对象的阶段id,同理,下一步信息可以为该层级数据对象的下一层级(下一步骤)对应的另一个层级数据对象的阶段id,可以基于上一步信息和下一步信息确定出各层级数据对象之间的层级关系。
114.(2)基于各子标签分别对应的数据处理节点之间的节点执行顺序,从数据源集合中数据源子标签对应的配置数据对象开始遍历,将配置参数中各子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中,生成目标拓扑图数据对象。
115.其中,业务数据处理流程中的数据处理节点之间存在节点执行顺序,则与各个数据处理节点对应的子标签之间也存在执行顺序关系(即层级关系),可以根据节点执行顺序从数据源子标签对应的配置数据对象开始遍历,将配置数据对象中的子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中,生成目标拓扑图数据对象。
116.层级数据对象集合可以为链式结构,内部可以为依据层级依次排列的层级数据对象,用来存储拓扑的层级结构。
117.在本技术实施例中,从数据源集合中数据源子标签对应的配置数据对象开始遍历,将配置参数中各子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中,可以包括如下步骤:
118.(1)从数据源集合中的数据源子标签对应的配置数据对象开始遍历,将数据源数据集合中配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里第一层级对应的层级数据对象中;其中,第一层级可以是层级数据对象集合中的顶层层级,则可以将数据源子标签对应的配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里顶层层级对应的层级数据对象中。
119.(2)若数据源数据集合中的配置数据对象存储的标签属性中包括下一数据处理节点的节点标识,则从配置数据对象中确定下一数据处理节点的节点标识对应的第一配置数据对象,并将确定出的第一配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里第一层级的下一层级对应的层级数据对象中。
120.具体的,标签属性可以包括该子标签对应的数据处理节点的节点标识、以及该数据处理节点对应的下一数据处理节点的节点标识。再进行遍历时,可以先检测数据源数据集合中配置数据对象存储数据源子标签的标签属性中是否包括下一数据处理节点的节点标识,若包括,则可以从处理步骤数据集合的配置数据对象中确定出下一数据处理节点的节点标识对应的第一配置数据对象,此确定出的第一配置数据对象代表数据源数据集合中配置数据对象的下一步骤,可以将确定出的第一配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里第一层级的下一层级对应的层级数据对象中。例如,可以将数据源子标签对应的配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里层级为0级的层级数据对象中,则可以将确定出的第一配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里层级为1级(第一层级的下一层级)的层级数据对象中。
121.(3)若第一配置数据对象存储的标签属性中包括下一数据处理节点的节点标识,则从配置数据对象中确定下一数据处理节点的节点标识对应的第二配置数据对象;将第二配置数据对象存储的标签属性和标签内容按照对应的层级关系进行存储,并将第二配置数据对象作为新的第一配置数据对象,直到配置数据对象遍历完成为止。上述遍历流程可以理解为,以数据源子标签对应的配置数据对象为遍历起点,根据配置数据对象中存储的下一数据处理节点的节点标识确定下一个遍历的配置数据对象,直到所有配置数据对象遍历完成为止。
122.在一个示例中,遍历配置数据对象的过程可以如图4所示,包括如下步骤:
123.步骤s401,从数据源集合中的数据源子标签对应的配置数据对象开始遍历,将数据源数据集合中配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里第一层级对应的层级数据对象中;
124.步骤s402,判断数据源数据集合中的配置数据对象存储的标签属性中是否包括下一数据处理节点的节点标识,若包括,进入步骤s404,否则进入步骤s403;
125.步骤s403,无下一步骤信息,结束遍历;
126.步骤s404,基于数据源数据集合中的配置数据对象存储的标签属性中的下一数据处理节点的节点标识从配置数据对象中确定下一数据处理节点的节点标识对应的第一配置数据对象,并将确定出的第一配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里第一层级的下一层级对应的层级数据对象中;
127.步骤s405,判断第一配置数据对象存储的标签属性中是否包括下一数据处理节点的节点标识,若包括,进入步骤s406,否则进入步骤s403;
128.步骤s406,从配置数据对象中确定下一数据处理节点的节点标识对应的第二配置数据对象;将第二配置数据对象存储的标签属性和标签内容按照对应的层级关系进行存储;
129.步骤s407,将第二配置数据对象作为新的第一配置数据对象,进入步骤s405。
130.在本技术实施例中,将配置参数中各子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中,获取目标拓扑图数据对象,可以包括如下步骤:将配置参数中各子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中;检测层级数据对象集合中的节点标识;若存在相同的节点标识,则对层级数据对象集合中的层级进行调整,得到目标拓扑图数据对象。
131.在一个示例中,对层级数据对象集合层级的调整方法可以如图5所示,对层级数据对象集合中层级数据对象的层级进行调整之后,可以将调整前层级数据对象集合对应的拓扑a调整为拓扑a’。
132.拓扑a和拓扑a’分别为层级调整前和层级调整后层级数据对象集合对应的拓扑结构。每个节点对应于配置文件中的各子标签,各子标签对应于各配置数据对象,各配置数据对象对应于各层级数据对象,因此,各层级数据对象中存有相应节点的节点标识。
133.如图所示,拓扑a在层级3和层级4中都存在结束节点f,两个结束节点f存在于不同的层级,可以对层级进行调整,将节点c的下一步骤的结束节点f删除,并将节点c的下一步关联到节点e下一步的结束节点f上。
134.具体的,可以逐层检测层级数据对象集合中是否存在重复的节点标识,若存在,可以确定该节点标识对应的层级中的最大层级以及最大层级对应的层级数据对象,将除了最大层级对应的层级数据对象之外的、拥有相同节点标识的其他层级数据对象的层级关系合并到该最大层级对应的层级数据对象的层级关系列表中,例如,原本节点e下一步的结束节点f对应的层级数据对象中,上一步信息为节点e的节点标识,经过层级调整之后,节点e之下的结束节点f对应的层级数据对象中,上一步信息除了包括节点e的节点标识,还包括节点c的节点标识。
135.本可选实施例提供的获取拓扑图数据对象的方法,如图6所示,可以包括如下步骤:
136.步骤s601,获取预设格式的配置文件;配置文件用于描述指定的业务数据处理流程,配置文件包含业务处理流程对应的配置参数;
137.步骤s602,通过预配置的拓扑图配置对象对配置文件进行解析,得到配置参数对应的配置数据对象;
138.步骤s603,创建数据源子标签对应的数据源数据集合、以及至少一个处理步骤子标签对应的处理步骤数据集合,将数据源子标签对应的配置数据对象存储到数据源数据集合中,将处理步骤子标签对应的配置数据对象存储到处理步骤数据集合中;
139.步骤s604,创建层级数据对象集合,基于各子标签分别对应的数据处理节点之间的节点执行顺序,从数据源集合中数据源子标签对应的配置数据对象开始遍历,将配置参数中各子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中;
140.步骤s605,检测层级数据对象集合中的节点标识;
141.步骤s606,是否存在相同的节点标识,若存在,进入步骤s608,否则进入步骤s607;
142.步骤s607,生成目标拓扑图数据对象,结束遍历流程;
143.步骤s608,对层级数据对象集合中的层级进行调整,得到目标拓扑图数据对象。
144.在本技术实施例中,配置文件还可以结合图形化形式展现,更加的直观、清晰。还可以结合图形拖拽方式实现对拓扑图的编辑,进一步提高使用者和管理者的理解。
145.本技术实施例提供了一种获取拓扑图数据对象的装置,如图7所示,该数据处理装置70可以包括:配置文件获取模块701、配置文件解析模块702以及拓扑图数据对象获取模703,其中,
146.配置文件获取模块701,用于获取用于描述业务数据处理流程的配置文件;配置文
件包含与业务处理流程中各个数据处理节点分别对应的配置参数;
147.配置文件解析模块702,用于通过预配置的拓扑图配置对象对配置文件进行解析,得到与每一数据处理节点分别对应的配置数据对象,配置数据对象包含对应数据处理节点对应的配置参数;
148.拓扑图数据对象获取模块703,用于基于业务数据处理流程的数据处理顺序,确定各个数据处理节点之间的节点执行顺序;根据节点执行顺序确定各个配置数据对象之间的层级关系;基于各个配置数据对象所属的数据对象类型,确定与配置数据对象对应的数据集合;根据层级关系,将配置数据对象存储到数据集合中;基于数据集合,获取目标拓扑图数据对象。
149.在本技术实施例中,配置文件包括至少两个子标签,一个子标签对应于业务数据处理流程中的一个数据处理节点,配置文件包含的配置参数包括各子标签的标签属性和标签内容;
150.针对每一子标签,标签属性包括该子标签对应的数据处理节点的节点标识、以及该数据处理节点对应的下一数据处理节点的节点标识,标签内容用于确定与该数据处理节点对应的数据处理方式。
151.在本技术实施例中,至少两个子标签包括数据源子标签和至少一个处理步骤子标签,数据源子标签对应于数据处理流程中的起始数据处理节点,处理步骤子标签对应于数据处理流程中除了起始数据处理节点以外的其他数据处理节点;针对每一配置数据对象,配置数据对象包含对应数据处理节点对应的子标签的标签属性和标签内容;
152.拓扑图数据对象获取模块703在数据集合包括数据源数据集合、处理步骤数据集合以及层级数据对象集合,基于各个配置数据对象所属的数据对象类型,确定与配置数据对象对应的数据集合,根据层级关系,将配置数据对象存储到数据集合中,基于数据集合,获取目标拓扑图数据对象时,具体用于:
153.将数据源子标签对应的配置数据对象存储到数据源数据集合中,将处理步骤子标签对应的配置数据对象存储到处理步骤数据集合中;
154.根据层级关系,依次遍历数据源集合和处理步骤数据集合中的配置数据对象,将配置参数存储于层级数据对象集合中,得到目标拓扑图数据对象。
155.在本技术实施例中,拓扑图数据对象获取模块703在根据层级关系,依次遍历数据源集合和处理步骤数据集合中的配置数据对象,将配置参数存储于层级数据对象集合中,得到目标拓扑图数据对象时,具体用于:
156.基于各子标签分别对应的数据处理节点之间的节点执行顺序,从数据源集合中的数据源子标签对应的配置数据对象开始遍历,将配置参数中各子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中,获取目标拓扑图数据对象。
157.在本技术实施例中,拓扑图数据对象获取模块703在从数据源集合中数据源子标签对应的配置数据对象开始遍历,将配置参数中各子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中时,具体用于:
158.从数据源集合中数据源子标签对应的配置数据对象开始遍历,将数据源数据集合中配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里第一层级对应的层级数据对象中;
159.若数据源数据集合中配置数据对象存储的标签属性中包括下一数据处理节点的节点标识,则从该配置数据对象中确定下一数据处理节点的节点标识对应的第一配置数据对象,并将确定出的第一配置数据对象存储的标签属性和标签内容存储于层级数据对象集合里第一层级的下一层级对应的层级数据对象中;
160.若第一配置数据对象存储的标签属性中包括下一数据处理节点的节点标识,则从处理步骤数据集合中的配置数据对象里确定下一数据处理节点的节点标识对应的第二配置数据对象;
161.将第二配置数据对象存储的标签属性和标签内容按照对应的层级关系进行存储,并将第二配置数据对象作为新的第一配置数据对象,直到配置数据对象遍历完成为止。
162.在本技术实施例中,拓扑图数据对象获取模块703在将配置参数中各子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中,获取目标拓扑图数据对象时,具体用于:
163.将配置参数中各子标签的标签属性和标签内容存储于层级数据对象集合里相应层级的层级数据对象中;
164.若层级数据对象集合中存在相同的节点标识,则对层级数据对象集合中的层级进行调整,得到目标拓扑图数据对象。
165.在本技术实施例中,若层级数据对象集合中存在相同的节点标识,拓扑图数据对象获取模块703在对层级数据对象集合中的层级进行调整,得到目标拓扑图数据对象时,具体用于:
166.若层级数据对象集合中存在相同的节点标识,且该节点标识在层级数据对象集合中对应于至少两个层级,则在至少两个层级中确定出最大层级以及最大层级对应的层级数据对象;
167.将除了最大层级对应的层级数据对象之外的、拥有相同的节点标识的其余层级数据对象的层级关系合并到最大层级对应的层级数据对象的层级关系中,得到目标拓扑图数据对象。
168.本技术实施例的装置可执行本技术实施例所提供的方法,其实现原理相类似,本技术各实施例的装置中的各模块所执行的动作是与本技术各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
169.本技术实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现获取拓扑图数据对象的方法的步骤,与现有技术相比可实现:通过预设格式的配置文件来对拓扑结构进行配置,灵活性高,并且,配置文件中可以清晰体现配置参数与实际业务数据处理流程的对应关系,利于查看和管理,提高了数据处理效率。
170.在一个可选实施例中提供了一种电子设备,如图8所示,图8所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本技术实施例的限定。
171.处理器4001可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
172.总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
173.存储器4003可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
174.存储器4003用于存储执行本技术实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
175.其中,电子设备包括但不限于诸如移动电话、笔记本电脑、pad等等移动终端以及诸如数字tv、台式计算机等等固定终端。
176.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
177.本技术实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
178.应该理解的是,虽然本技术实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本技术实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本技术实施例对此不限制。
179.以上所述仅是本技术部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的方案技术构思的前提下,采用基于本技术技术思想的其他类似实施手段,同样属于本技术实施例的保护范畴。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1