数据血缘分析方法、装置、系统、服务器及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据血缘分析方法、系统、服务器及存储介质。
背景技术
在大数据时代,庞大的数据在快速产生,这些海量的复杂的数据通过各种加工融合、转换,又会生成新的数据,这些数据之间存在着天然的联系,这些联系称之为数据血缘。现有技术中,在许多业务场景中都需要数据血缘关系图谱,例如,数据溯源、数据质量评估等,因此,获得高质量的数据血缘迫在眉睫。
发明内容
本说明书实施例提供及一种数据血缘分析方法、装置、系统、服务器及存储介质。
第一方面,本说明书实施例提供一种数据血缘分析方法,所述方法包括:
获取业务数据,所述业务数据包括在线业务数据,以及离线业务数据;
对所述业务数据进行数据血缘分析,得到所述业务数据的全链路数据血缘,所述全链路数据血缘包括与所述在线业务数据对应的在线数据血缘,以及与所述离线业务数据对应的离线数据血缘。
第二方面,本说明书实施例提供一种数据血缘分析装置,包括:
数据获取模块,用于获取业务数据,所述业务数据包括在线业务数据,以及离线业务数据;
数据血缘分析模块,用于对所述业务数据进行数据血缘分析,得到所述业务数据的全链路数据血缘,所述全链路数据血缘包括与所述在线业务数据对应的在线数据血缘,以及与所述离线业务数据对应的离线数据血缘。
第三方面,本说明书实施例提供一种数据血缘分析系统,包括:
数据获取层,用于获取业务数据,所述业务数据包括在线业务数据,以及离线业务数据;
数据血缘分析层,与所述数据获取层连接,用于对所述业务数据进行数据血缘分析,得到所述业务数据的全链路数据血缘,所述全链路数据血缘包括与所述在线业务数据对应的在线数据血缘,以及与所述离线业务数据对应的离线数据血缘;
能力层,与所述数据血缘分析层连接,用于提供数据血缘查询接口,所述数据血缘查询接口为基于所述全链路数据血缘、所述在线数据血缘以及所述离线数据血缘构建的接口;
场景层,与所述数据血缘分析层以及所述能力层连接,所述场景层包括M个数据血缘应用场景,其中,每个数据血缘应用场景用于通过所述数据血缘分析层和/或所述数据血缘查询接口,获取目标数据血缘,并基于该数据血缘应用场景下配置的数据血缘处理方法对所述目标数据血缘进行应用处理,以得到处理结果,M为正整数。
第四方面,本说明书实施例提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述任一项所述方法的步骤。
第五方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
本说明书实施例有益效果如下:
在本说明书实施例提供的数据血缘分析方法中,获取业务数据,所述业务数据包括在线业务数据,以及离线业务数据;对所述业务数据进行数据血缘分析,得到所述业务数据的全链路数据血缘,所述全链路数据血缘包括与所述在线业务数据对应的在线数据血缘,以及与所述离线业务数据对应的离线数据血缘。上述方案中,通过对在线业务数据和离线业务数据的处理,得到全链路数据血缘,将在线数据血缘和离线数据血缘打通,获得了能够覆盖整个业务流程的数据流转关系,增加了数据血缘的覆盖率,丰富了数据的血缘关系,进而提升了数据血缘的质量。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本说明书实施例第一方面提供的一种数据血缘分析方法的流程图;
图2为本说明书实施例第二方面提供的第一种数据血缘分析装置的示意图;
图3为本说明书实施例第三方面提供的一种数据血缘分析系统的示意图;
图4为本说明书实施例提供的数据血缘分析层的示意图;
图5为本说明书实施例第四方面提供的服务器的示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
第一方面,本说明书实施例提供一种数据血缘分析方法,如图1所示,为本说明书实施例提供的数据血缘分析方法的流程图,该方法包括以下步骤:
步骤S11:获取业务数据,所述业务数据包括在线业务数据,以及离线业务数据;
步骤S12:对所述业务数据进行数据血缘分析,得到所述业务数据的全链路数据血缘,所述全链路数据血缘包括与所述在线业务数据对应的在线数据血缘,以及与所述离线业务数据对应的离线数据血缘。
本说明书实施例中的方法,可以应用于各类系统中,以企业级的服务系统为例,该服务系统中可以包括多个子系统,多个子系统之间能够相互协作,以完成多种业务。例如,以支付宝的服务系统为例,支付宝服务系统中可以包含有数量众多的子系统,通过子系统之间的相互调用能够实现各项业务,例如缴费业务、外卖业务、购物业务、各类查询业务等等。
另外,一个服务系统还可以分为在线系统和离线系统,在线系统可以为实时响应用户请求的系统,举例来讲,当用户请求访问一个网页时,与该网页服务对应的在线系统能够迅速响应用户的访问请求,将网页的数据进行呈现。离线系统通常来说对响应速度没有要求,时效性要求较低,以支付宝的离线系统为例,离线系统能够基于离线任务,对采集到的支付宝用户的用户数据进行用户画像分析、用户风险评估等分析处理。
由于系统是时刻运转工作的,因此,业务数据也是时刻产生的。本说明书实施例中,在线系统产生或调用的数据为在线业务数据,离线系统产生或调用的数据为离线业务数据。
需要说明的是,在线系统产生的在线业务数据,以及离线系统产生的离线数据可以根据数据库的部署,存储在各自的数据库或数据系统中。例如,在线数据存储于各个在线系统的数据库中,离线数据存储在离线数仓中。由于存储业务数据的数据库、数据系统可能存在多种类型,例如MySQL、ODPS(open data processing service)、lindorm、geabase等,因此,业务数据的类型也不相同。为了能够更高效的对数据进行处理,可以先对业务数据进行预处理,再将预处理后的业务数据进行下一步的处理。对业务数据的预处理可以根据实际需要进行设置,例如数据清洗、数据合并、数据标准化等,这里不做限定。
为了能够获取覆盖整个业务流程的数据血缘,本说明书实施例中,通过对业务数据进行数据血缘分析,得到全链路数据血缘。例如,先将在线业务数据以及离线业务数据结合起来,对结合起来的业务数据进行数据血缘分析,得到全链路数据血缘,或者,分别对在线业务数据以及离线业务数据进行处理,得到全链路数据血缘,这里不做限定。
全链路数据血缘包括在线数据血缘以及离线数据血缘。在线数据血缘与在线系统的业务流程相对应,用于表征在线业务涉及到的数据传递和处理过程,离线数据血缘与离线系统的业务流程相对应,用于表征离线业务涉及到的数据传递和处理过程。
在线数据血缘可以分为表级数据血缘和字段级数据血缘两个维度。具体来讲,在线业务数据以数据表的形式保存在数据库中,数据表又包含多个字段。通过数据血缘分析,可以分析出各个数据表之间的关联,如数据表A是对数据表B进行加工处理得到的,数据表B又是通过对数据表C处理得到的,这种映射关系即为表级数据血缘。另外,还可以从字段的角度来进行数据血缘分析,例如数据表D中的字段1与数据表E中的字段2相关联,数据表E中的字段2与数据表F中的字段3相关联,这种字段之间的映射关系可以作为字段级数据血缘。在线数据血缘用于表征在线业务数据中各个数据表、字段之间的映射关系。同样的,离线数据血缘也可以分为表级数据血缘和字段级数据血缘,用于表征离线数仓中的离线业务数据中各个数据表、字段之间的映射关系。
本说明书实施例中的方案,通过对在线业务数据和离线业务数据的处理,得到全链路数据血缘,将在线数据血缘和离线数据血缘打通,获得了能够覆盖整个业务流程的数据流转关系,增加了数据血缘的覆盖率,丰富了数据的血缘关系,进而提升了数据血缘的质量。
在具体实施过程中,全链路数据血缘可以通过以下方式获得:对所述在线业务数据进行数据血缘分析,得到所述在线数据血缘;对所述离线业务数据进行数据血缘分析,得到所述离线数据血缘;将所述在线数据血缘以及所述离线数据血缘进行结合,得到所述全链路数据血缘。
具体来讲,分别通过对在线业务数据以及离线业务数据进行数据血缘分析,得到在线数据血缘和离线数据血缘,然后将这两类数据血缘进行结合,得到全链路数据血缘。需要说明的是,在线业务数据的数据血缘分析方法和离线业务数据的数据血缘分析方法可以相同,也可以不同。下面,分别对在线数据血缘以及离线数据血缘的处理方法进行描述。
在线数据血缘,基于在线业务的特点,可以分为在线动态数据血缘和在线静态数据血缘。在线动态血缘能够表示数据在处理业务请求过程中的动态传递过程,在线静态血缘能够表示在线系统内部的数据对象之间的关联。本说明书实施例中,在线数据血缘可以为在线动态数据血缘,也可以为在线静态数据血缘,还可以包括在线动态数据血缘和在线静态数据血缘。
在具体实施过程中,可以通过以下方式获得在线动态数据血缘:基于所述在线业务数据中的跟踪日志集合,对所述跟踪日志集合中的每个跟踪日志进行动态数据血缘分析,得到与所述每个跟踪日志对应的动态数据血缘分析结果,并将与所述每个跟踪日志对应的动态数据血缘分析结果构成的集合作为在线动态数据血缘。
首先对在线动态数据血缘进行说明,在线动态数据血缘是数据表、字段与在线业务链路之间的映射关系。举例来讲,当接收到用户针对某业务服务的目标请求时,服务系统基于该目标请求,层层调用与该请求对应的子系统,确定出该请求的响应结果,并将响应结果反馈给用户。例如,当用户发起目标请求时,该目标请求首先发送给系统1,然后系统1调用系统2,系统2在数据库中获取字段A,接下来系统2将数据A反馈至上游的系统1,系统1再将字段A反馈给用户。上述调用过程构成一条调用链路,字段A与该调用链路之间的映射关系可以作为字段A的在线动态数据血缘。应理解的是,对于多个字段或数据表来说,每个字段或每个数据表都可以确定出一条以上的在线动态数据血缘,这些字段、数据表与在线业务链路的映射关系的集合就构成了在线业务数据的在线动态数据血缘。
本说明书实施例中,在业务场景中,可以通过系统调用跟踪组件将业务调用链路中的各种网络、系统的调用情况以日志的方式记录下来,这种日志即为跟踪日志。举例来讲,当系统1接收到用户发起的请求后,基于该请求调用系统2时,系统调用跟踪组件会将系统2的调用操作记录在系统1的跟踪日志中,当系统2在数据库中读取字段A,并将字段A反馈给系统1时,系统调用跟踪组件会将读取字段以及反馈给系统1的操作记录在系统2的跟踪日志中。由此可以看出,通过各个跟踪日志,可以还原出系统调用的整个流程。这些跟踪日志构成了跟踪日志集合,通过对跟踪日志集合中的每个跟踪日志进行动态数据血缘分析,能够得到在线业务数据的在线动态数据血缘。
在具体实施过程中,可以通过以下方式来确定在线动态数据血缘:对所述每个跟踪日志进行解析,得到N个数据对象,N为正整数;基于所述每个跟踪日志中记录的系统调用信息,确定出与每个数据对象对应的调用链路,并建立所述每个数据对象与对应的调用链路之间的映射关系,共计获得N组映射关系,所述N组映射关系即为所述动态数据血缘分析结果。
具体来讲,对于跟踪日志集合中的每个跟踪日志都可以执行以下步骤:对每个跟踪日志执行数据库语句解析,解析出该跟踪日志对应的一个以上的数据对象,数据对象可以为数据库名、表名、字段名。通过上面的描述可知,数据对象可以是通过层层的系统调用确定出来的,系统调用的详情被记录在跟踪日志中,因此,可以结合每个跟踪日志中记录的系统调用逻辑以及操作,由数据对象为起点,反向推出与数据对象对应的系统调用链路,然后将数据对象与确定出来的调用链路之间建立映射关系,得到该数据对象的动态数据血缘分析结果。所有数据对象与各自调用链路之间的映射关系的集合就构成了在线动态数据血缘。
应理解的是,不同的请求可能会产生不同的调用链路,因此,对于同一数据对象,例如同一字段,可能会有多条调用链路与之相对应,或者,对于同一数据表来说,也可能存在多条调用链路与之相对应。这些字段与调用链路之间的映射关系,以及数据表与调用链路之间的映射关系的集合构成了在线业务数据的在线动态数据血缘。
本说明书实施例中,可以通过以下方式获得在线静态数据血缘:基于所述在线业务数据中的系统源代码信息集合,对所述系统源代码信息集合中的每套系统源代码信息进行静态数据血缘分析,得到与所述每套系统源代码信息对应的静态数据血缘分析结果,并将与所述每套系统源代码信息对应的静态数据血缘分析结果构成的集合作为在线静态数据血缘。
需要说明的是,在线业务是由多个系统之间的协同来实现的,例如,一个用户请求,首先发送给系统1,系统1再调用系统2,系统2再调用系统3。对于在线业务涉及到的每个系统,都有一套系统源代码信息。本说明书实施例中,通过对每套系统源代码信息进行静态数据血缘分析,来确定在线静态数据血缘。
在具体实施过程中,可以通过以下方式对每套系统源代码信息进行静态数据血缘分析:对所述每套系统源码信息进行静态代码分析,得到与所述每套系统源代码对应的数据对象流转关系,作为所述静态数据血缘分析结果。
需要说明的是,本说明书实施例中的在线静态数据血缘,是由多个单系统内部的静态数据血缘分析结果构成的,不需要分析跨系统的静态数据血缘。具体来讲,当在线业务是由系统1和系统2协同实现的,通过获取系统1内部的数据对象之间的流转关系,确定系统1的静态数据血缘分析结果,通过获取系统2内容部的数据对象之间的流转关系,确定系统2的静态数据血缘分析结果,虽然系统1和系统2之间存在调用关系,但本说明书实施例中无需分析系统1和系统2之间的静态数据血缘。
在具体实施过程中,以一个系统的静态数据血缘为例,获取该系统的系统源代码,对系统源代码进行静态代码分析,构建抽象语法树。抽象语法树可以是系统源代码的抽象语法结构的树状表现形式。抽象语法树可以通过系统的字节码文件以及字节码文件中的字节码信息来构建,字节码文件可以是类文件,字节码信息可以是类的属性字段、类函数字段等。通过字节码信息能够得到改系统的静态结构,确定出系统中存在的类之间的关系。通过抽象语法树以及字节码指令解析的方法,对系统内部的数据链路继续梳理,能够得到系统内部的数据对象之间的流转关系,即系统内部的静态数据血缘分析结果。以java源代码为例,根据上述方式,可以分析出VO(View Object,视觉对象)与DO(Domain Object,领域对象)之间的流转关系。多个系统的静态数据血缘分析结果的集合就构成了在线数据血缘。
进一步的,在确定了在线动态数据血缘和在线静态数据血缘之后,将在线动态数据血缘和在线静态数据血缘进行结合,形成在线数据血缘,这样就可以获得整个在线业务数据的血缘信息,覆盖了单系统内部、系统之间的数据关联。在线动态数据血缘和在线静态数据的结合方式可以根据实际需要进行选择。例如,通过在线动态数据血缘检测到系统2存储的字段A与链路1存在映射关系,通过系统2的静态数据血缘,能够得到字段A与系统2中其他数据对象之间的映射关系,因此,可以通过字段A将系统2的静态数据血缘与链路1进行关联,即将在线动态数据血缘与在线静态血缘打通结合。
本说明书实施例中,各个系统的在线静态数据血缘通过与在线动态血缘结合,使得各个系统的在线静态数据血缘之间关联起来。举例来讲,系统1在接收到用户请求后调用系统2,系统2读取数据表2中的字段A反馈给系统1,系统1将字段A写入数据表1,并将写入的字段A重命名为字段B。在上述调用链路中,字段A与调用链路之间的映射关系为在线动态数据血缘,系统1中字段B的数据流转为系统1的在线静态数据血缘,系统2中字段A的数据流转为系统2的在线静态数据血缘,系统1的静态数据血缘和系统2的静态数据血缘均和在线动态数据血缘中的调用链路相关联。因此,通过在线动态数据血缘,将两个系统的在线静态数据血缘打通,可以确定出字段A和字段B之间的对应关系。因此,本说明书实施例中,通过上述方案能够实现跨系统的数据血缘,无需对跨系统的静态数据血缘单独进行分析计算。
进一步的,对于离线数据血缘,可以由入仓数据血缘、仓内数据血缘以及出仓数据血缘组成,所述对所述离线业务数据进行数据血缘分析,得到所述离线数据血缘,包括:基于由在线系统同步至离线系统的入仓业务数据,确定所述入仓数据血缘;基于存储在所述离线系统内部的仓内业务数据,确定所述仓内数据血缘;基于由所述离线系统传递到所述在线系统的出仓业务数据,确定所述出仓数据血缘。
具体来讲,在线业务和离线业务可以看作是一个闭环,在线业务产生的数据可以同步至离线数仓中,通过离线业务对离线数仓中的数据进行加工处理,然后将加工处理得到的结果再提供给在线业务使用。因此,从离线数仓的数据流向来看,数据经过入仓、仓内、出仓三部分。本说明书实施例中,对于上述每个部分,都进行数据血缘分析,分别得到入仓数据血缘、仓内数据血缘和出仓数据血缘。在具体实施过程中,离线数据血缘可以是基于离线任务的执行日志,对执行日志进行解析,最终得到离线数据血缘。
对于入仓血缘来说,通过对离线任务的执行日志进行解析,得到对应的数据对象,数据对象可以是数据表、字段。以字段为例,在同步到离线数仓的在线业务数据中确定出与该字段相关联的目标字段,如确定出与该字段相同的字段,或确定出该字段的来源字段等,建立该字段与在线业务数据中的目标字段之间的映射关系,作为一条入仓数据血缘。确定出解析得到的所有数据对象的入仓数据血缘,作为入仓数据血缘。
对于仓内血缘来说,离线数仓中的各个数据表、字段之间存在关联,例如通过对数据表1进行处理,得到数据表2,或者通过对数据表1中的字段A进行处理,得到数据表2中的字段B。那么数据表1与数据表2之间的映射关系、字段A与字段B之间的映射关系可以看作是仓内血缘。
对于出仓血缘来说,当在线业务需要调用离线数仓中的数据时,离线数仓将数据反馈至在线系统,即,离线数仓中的数据会写入在线系统的数据库中,例如,将离线数仓中数据表3中的字段C写入到在线系统的数据表4中,并命名为字段D,那么字段C与字段D之间的映射关系可以看作是出仓血缘。
仓内血缘和出仓血缘的确定方法也可以通过对离线任务的执行日志进行解析得到,还可以通过其他方式获得,这里不做限定。另外,离线数据血缘也可以分为字段级和表级的离线数据血缘。即离线数据血缘可以包括字段级的入仓数据血缘、字段级的仓内数据血缘、字段级的出仓数据血缘、表级的入仓数据血缘、表级的仓内数据血缘、表级的出仓数据血缘。
进一步的,基于入仓数据血缘以及出仓数据血缘,能够将在线数据血缘和离线数据血缘进行链接,进行得到全链路数据血缘。
具体来讲,在线数据血缘以及离线数据血缘中的每个字段、数据表、系统都可以看作是血缘数据中的数据结点,字段与字段之间的映射关系、数据表与数据表之间的映射关系、字段与系统之间的映射关系等都可以看作是数据结点之间的边。通过在线静态数据血缘、在线动态数据血缘、离线数据血缘,能够将整个业务链路的数据结点之间的关联信息体现出来,形成全链路数据血缘关系图。
本说明书实施例中的方案,在获得了全链路数据血缘之后,为了便于用户使用,还可以基于所述全链路数据血缘、所述在线数据血缘以及所述在线动态数据血缘,构建数据血缘接口,以在接收到对所述数据血缘接口的调用请求时,通过所述数据血缘接口输出与所述调用请求对应的目标数据血缘。
在具体实施过程中,在得到全链路数据血缘、在线数据血缘以及离线数据血缘之后,可以将这些数据在预设框架里进行处理封装,封装成数据血缘接口。数据血缘接口能够提供多种服务,如提供查询在线动态数据血缘的服务、查询在线静态数据血缘的服务、查询离线数据血缘的服务、查询全链路数据血缘的服务等。当接收到对数据血缘接口的调用请求时,可以根据具体请求的数据血缘类型,将对应类型数据血缘输出。当然,除了封装成接口,还可以进行前端页面的开发,以使用户通过页面进行数据血缘的查询。
上述方案中,通过对业务数据的数据血缘分析,得到了业务数据的在线动态数据血缘、在线静态数据血缘、离线数据血缘,同时基于这三种数据血缘获得了全链路数据血缘,丰富了数据血缘的种类,且能够覆盖整个业务数据,有效的提升了数据血缘的质量。
第二方面,基于同一发明构思,本说明书实施例提供的第一种数据血缘分析装置,请参考图2,该装置包括:
数据获取模块21,用于获取业务数据,所述业务数据包括在线业务数据,以及离线业务数据;
数据血缘分析模块22,用于对所述业务数据进行数据血缘分析,得到所述业务数据的全链路数据血缘,所述全链路数据血缘包括与所述在线业务数据对应的在线数据血缘,以及与所述离线业务数据对应的离线数据血缘。
在一种可选实现方式中,数据血缘分析模块22,用于:
对所述在线业务数据进行数据血缘分析,得到所述在线数据血缘;
对所述离线业务数据进行数据血缘分析,得到所述离线数据血缘;
将所述在线数据血缘以及所述离线数据血缘进行组合,得到所述全链路数据血缘。
在一种可选实现方式中,数据血缘分析模块22,包括:
在线动态数据血缘分析模块,用于基于所述在线业务数据中的跟踪日志集合,对所述跟踪日志集合中的每个跟踪日志进行动态数据血缘分析,得到与所述每个跟踪日志对应的动态数据血缘分析结果,并将与所述每个跟踪日志对应的动态数据血缘分析结果构成的集合作为在线动态数据血缘。
在一种可选实现方式中,所述在线动态数据血缘分析模块,用于:
对所述每个跟踪日志进行解析,得到N个数据对象,N为正整数;
基于所述每个跟踪日志中记录的系统调用信息,确定出与每个数据对象对应的调用链路,并建立所述每个数据对象与对应的调用链路之间的映射关系,共计获得N组映射关系,所述N组映射关系即为所述动态数据血缘分析结果。
在一种可选实现方式中,数据血缘分析模块22,包括:
在线静态数据血缘分析模块,用于基于所述在线业务数据中的系统源代码信息集合,对所述系统源代码信息集合中的每套系统源代码信息进行静态数据血缘分析,得到与所述每套系统源代码信息对应的静态数据血缘分析结果,并将与所述每套系统源代码信息对应的静态数据血缘分析结果构成的集合作为在线静态数据血缘。
在一种可选实现方式中,所述在线静态数据血缘分析模块,用于:
对所述每套系统源码信息进行静态代码分析,得到与所述每套系统源代码对应的数据对象流转关系,作为所述静态数据血缘分析结果。
在一种可选实现方式中,数据血缘分析模块,包括:
离线数据血缘分析模块,用于基于由在线系统同步至离线系统的入仓业务数据,确定所述入仓数据血缘;基于存储在所述离线系统内部的仓内业务数据,确定所述仓内数据血缘;基于由所述离线系统传递到所述在线系统的出仓业务数据,确定所述出仓数据血缘。
在一种可选实现方式中,数据血缘分析模块,用于:
基于所述入仓数据血缘以及所述出仓数据血缘,将所述在线数据血缘以及所述离线数据血缘进行链接,得到所述全链路数据血缘。
在一种可选实现方式中,所述装置还包括:
构建接口模块,用于基于所述全链路数据血缘、所述在线数据血缘以及所述离线数据血缘,构建数据血缘接口,以在接收到对所述数据血缘接口的调用请求时,通过所述数据血缘接口输出与所述调用请求对应的目标数据血缘。
关于上述系统,其中各个模块的具体功能已经在本发明实施例提供的数据血缘分析方法的实施例中进行了详细描述,此处将不做详细阐述说明。
第三方面,基于同一发明构思,本说明书实施例提供的第一种数据血缘分析系统,请参考图3,该系统包括:
数据获取层31,用于获取业务数据,所述业务数据包括在线业务数据,以及离线业务数据;
数据血缘分析层32,与所述数据获取层连接,用于对所述业务数据进行数据血缘分析,得到所述业务数据的全链路数据血缘,所述全链路数据血缘包括与所述在线业务数据对应的在线数据血缘,以及与所述离线业务数据对应的离线数据血缘;
能力层33,与所述数据血缘分析层连接,用于提供数据血缘查询接口,所述数据血缘查询接口为基于所述全链路数据血缘、所述在线数据血缘以及所述离线数据血缘构建的接口;
场景层34,与所述数据血缘分析层以及所述能力层连接,所述场景层包括M个数据血缘应用场景,其中,每个数据血缘应用场景用于通过所述数据血缘分析层和/或所述数据血缘查询接口,获取目标数据血缘,并基于该数据血缘应用场景下配置的数据血缘处理方法对所述目标数据血缘进行应用处理,以得到处理结果,M为正整数。
本说明书实施例中,数据获取层31可以部署有多个数据库和数据系统,例如MySQL、ODPS、lindorm、geabase,用于获取这些数据库和数据系统中的业务数据,包括在线业务数据以及离线业务数据。进一步的,数据获取层31还可以对获取到的业务数据进行预处理,例如数据清洗、数据合并、数据标准化等,这里不做限定。
数据血缘分析层32,用于对数据获取层31获取到的数据进行数据血缘分析,得到在线动态数据血缘、在线静态数据血缘、离线数据血缘。如图4所示,数据血缘分析层32可以部署有在线动态数据血缘分析模块41、在线静态数据血缘分析模块42、离线数据血缘分析模块43,分别以用来计算在线动态数据血缘、在线静态数据血缘、以及离线数据血缘。具体的数据血缘分析方法与本发明实施例提供的数据血缘分析方法的实施例中描述的分析方法相同,这里就不再赘述了。
为了便于用户操作,能力层33可以将数据血缘分析层32的数据血缘进行封装,封装成数据血缘查询接口,当接收到针对该数据血缘查询接口的调用请求时,可以将请求对应的数据血缘进行反馈。当然,能力层33可以根据实际需要提供多个接口,例如在线静态数据血缘查询接口、离线数据血缘查询接口等。另外,能力层33还可以提供平台查询功能,为用户提供页面查询数据血缘的服务。
场景层34可以与数据血缘分析层32以及能力层33相连,能够直接获取数据血缘分析层32中的数据血缘,或者通过调用能力层33的接口得到相应的数据血缘。场景层34可以包含一个或多个数据血缘应用场景,通过数据血缘来解决应用场景中的问题。数据血缘应用场景可以根据实际需要进行设定,例如数据资产分级场景、离线业务数据监控和问题追溯定位场景等,针对不同的场景,可以获取不同的数据血缘,进一步的基于数据血缘进行该场景下的应用处理,以得到数据处理结果。
第四方面,基于与前述实施例中数据血缘分析方法同样的发明构思,本发明还提供一种服务器,如图5所示,包括存储器404、处理器402及存储在存储器404上并可在处理器402上运行的计算机程序,所述处理器402执行所述程序时实现前文所述数据血缘分析方法的任一方法的步骤。
其中,在图5中,总线架构(用总线400来代表),总线400可以包括任意数量的互联的总线和桥,总线400将包括由处理器402代表的一个或多个处理器和存储器404代表的存储器的各种电路链接在一起。总线400还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口406在总线400和接收器401和发送器403之间提供接口。接收器401和发送器403可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器402负责管理总线400和通常的处理,而存储器404可以被用于存储处理器402在执行操作时所使用的数据。
第五方面,基于与前述实施例中基于数据血缘分析方法的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述基于数据血缘分析方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。