一种数据血缘的生成方法、系统、电子设备和存储介质与流程

文档序号:16781645发布日期:2019-02-01 19:11阅读:338来源:国知局
一种数据血缘的生成方法、系统、电子设备和存储介质与流程

本发明涉及大数据领域中的数据溯源技术,特别是涉及一种数据血缘的生成方法、系统、电子设备和存储介质。



背景技术:

近年来随着数据库和网络的发展,数据血缘成为一项重要的研究领域,数据血缘是数据的血统信息,记录了对数据处理的整个历史,包括数据的起源和数据产生、并随着时间推移而演变的整个过程。对于数据库系统来说,有时需要追溯查询结果的来源,以衡量数据的可信度和数据的质量等。

数据血缘研究的目的主要是通过数据血缘追踪,在分布数据共享时可以解决数据的可信度、质量和版本信息等。现有技术局限于sql(结构化查询语言)的解析生成库、表级血缘,对字段级的血缘支持非常困难且并不准确,这限制了数据血缘的追踪。尤其是面对不同的数据源时,由于数据源的格式各不相同,就需要通过不同的数据血缘工具来进行血缘的生成,严重制约了数据血缘的生成。

因此,如何打破不同数据源之间数据血缘的生成界限,以实现兼容不同的数据平台或工具,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种数据血缘的生成方法、系统、电子设备和存储介质,可以打破不同数据源之间数据血缘的生成界限,以实现兼容不同的数据平台或工具。

为解决上述技术问题,本发明提供了如下技术方案:

一种数据血缘的生成方法,包括:

获取各目标数据源和当前的任务信息;

通过统一的预设协议格式分别对各所述目标数据源和所述当前的任务信息进行定义;

当执行当前任务时,根据所述当前任务的执行过程以及所述统一的预设协议格式生成相应的数据血缘。

优选地,所述获取各目标数据源和当前的任务信息,包括:

获取各来源数据源和目的数据源的元数据信息,所述元数据信息包括:库、表和字段;

获取当前的任务信息。

优选地,所述通过统一的预设协议格式分别对各所述目标数据源和所述当前的任务信息进行定义,包括:

通过所述统一的预设协议格式定义各所述目标数据源,并对所述元数据信息进行解析,生成库包含表、表包含字段的关联关系信息;

通过所述统一的预设协议格式定义所述任务信息,并对所述任务信息进行解析,确定所述任务信息中所包含的库、表和/或字段的来源和去向。

优选地,所述当执行当前任务时,根据所述当前任务的执行过程以及所述统一的预设协议格式生成相应的数据血缘,包括:

当执行当前任务时,根据所述任务信息中所包含的库、表和/或字段的来源和去向生成相应的数据血缘。

优选地,所述预设协议格式为:json数据交换格式。

优选地,所述对所述任务信息进行解析,确定所述任务信息中所包含的库、表和/或字段的来源和去向,包括:

解析所述任务的数据源对象以及该任务所包含的库、表和/或字段;

根据对所述任务的解析内容,确定所述任务信息中所包含的库、表和/或字段的来源和去向。

优选地,所述根据对所述任务的解析内容,确定所述任务信息中所包含的库、表和/或字段的来源和去向,为:

根据对所述任务的解析内容,将对应的来源和去向的数据源的名称和相应的库名、表名以及字段名进行关联,以确定所述任务信息中所包含的库、表和/或字段的来源和去向。

一种数据血缘的生成系统,包括:

获取模块,用于获取各目标数据源和当前的任务信息;

定义模块,用于通过统一的预设协议格式分别对各所述目标数据源和所述当前的任务信息进行定义;

血缘生成模块,用于当执行当前任务时,根据所述当前任务的执行过程以及所述统一的预设协议格式生成相应的数据血缘。

优选地,所述获取模块包括:

元数据获取单元,用于获取各来源数据源和目的数据源的元数据信息,所述元数据信息包括:库、表和字段;

任务信息获取单元,用于获取当前的任务信息。

优选地,所述定义模块包括:

第一定义单元,用于通过所述统一的预设协议格式定义各所述目标数据源,并对所述元数据信息进行解析,生成库包含表、表包含字段的关联关系信息;

第二定义单元,用于通过所述统一的预设协议格式定义所述任务信息,并对所述任务信息进行解析,确定所述任务信息中所包含的库、表和/或字段的来源和去向。

优选地,所述血缘生成模块包括:

血缘生成单元,用于当执行当前任务时,根据所述任务信息中所包含的库、表和/或字段的来源和去向生成相应的数据血缘。

优选地,所述第一定义单元为:

json格式定义单元,用于将各所述来源数据源和所述目的数据源的元数据信息转换为json格式。

优选地,所述第二定义单元包括:

第一解析子单元,用于解析所述任务的数据源对象以及该任务所包含的库、表和/或字段;

第一确定子单元,用于根据对所述任务的解析内容,确定所述任务信息中所包含的库、表和/或字段的来源和去向。

优选地,所述第一确定子单元包括:

关联功能单元,用于根据对所述任务的解析内容,将对应的来源和去向的数据源的名称和相应的库名、表名以及字段名进行关联,以确定所述任务信息中所包含的库、表和/或字段的来源和去向。

一种用于数据血缘的生成的电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述的数据血缘的生成方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述数据血缘的生成方法的步骤。

与现有技术相比,上述技术方案具有以下优点:

本发明实施例所提供的一种数据血缘的生成方法,包括:获取各目标数据源和当前的任务信息;通过统一的预设协议格式分别对各所述目标数据源和所述当前的任务信息进行定义;当执行当前任务时,根据所述当前任务的执行过程以及所述统一的预设协议格式生成相应的数据血缘。通过统一的协议格式分别对目标数据源和任务进行定义,然后基于该协议格式生成数据血缘,无论目标数据源是何种格式,采用的是何种数据平台或工具,只要遵循该预设的协议格式即可生成血缘,打破了不同数据源之间数据血缘的生成界限,实现了不同的数据平台或工具的兼容。打破了只以数据库系统或分布式数据库为数据源,以etl任务或mapreduce任务为血缘依据的限制,扩展了数据血缘的生成范围。同时解决了多系统交互时,网络不通时的血缘生成问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种具体实施方式所提供的数据血缘的生成方法流程图;

图2为本发明一种具体实施方式所提供的数据血缘的生成系统示意图;

图3为本发明一种实施方式所提供的用于数据血缘的生成的电子设备结构示意图。

具体实施方式

本发明的核心是提供一种数据血缘的生成方法、系统、电子设备和存储介质,可以打破不同数据源之间数据血缘的生成界限,以实现兼容不同数据平台或工具的目的。

为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施的限制。

请参考图1,图1为本发明一种具体实施方式所提供的数据血缘的生成方法流程图。

本发明的一种具体实施方式提供了一种数据血缘的生成方法,包括:

s11:获取各目标数据源和当前的任务信息。

s12:通过统一的预设协议格式分别对各目标数据源和当前的任务信息进行定义。

s13:当执行当前任务时,根据当前任务的执行过程以及统一的预设协议格式生成相应的数据血缘。

在本实施方式中,通过统一的协议格式分别对目标数据源和任务进行定义,然后基于该协议格式生成数据血缘,无论目标数据源是何种格式,采用的是何种数据平台或工具,只要遵循该预设的协议格式即可生成血缘,打破了不同数据源之间数据血缘的生成界限,实现了不同的数据平台或工具的兼容。打破了只以数据库系统或分布式数据库为数据源,以etl任务或mapreduce任务为血缘依据的限制,扩展了数据血缘的生成范围。同时解决了多系统交互时,网络不通时的血缘生成问题。

在上述实施方式的基础上,本发明一种实施方式中,获取各目标数据源和当前的任务信息,包括:获取各来源数据源和目的数据源的元数据信息,元数据信息包括:库、表和字段;获取当前的任务信息。

进一步地,通过统一的预设协议格式分别对各目标数据源和当前的任务信息进行定义,包括:通过统一的预设协议格式定义各目标数据源,并对元数据信息进行解析,生成库包含表、表包含字段的关联关系信息;通过统一的预设协议格式定义任务信息,并对任务信息进行解析,确定任务信息中所包含的库、表和/或字段的来源和去向。

优选地,当执行当前任务时,根据当前任务的执行过程以及统一的预设协议格式生成相应的数据血缘,包括:当执行当前任务时,根据任务信息中所包含的库、表和/或字段的来源和去向生成相应的数据血缘。

在本发明的一种实施方式中,通过统一的预设协议格式定义各目标数据源,具体为:将各来源数据源和目的数据源的元数据信息转换为json格式。

进一步地,对任务信息进行解析,确定任务信息中所包含的库、表和/或字段的来源和去向,包括:解析任务的数据源对象以及该任务所包含的库、表和/或字段;根据对任务的解析内容,确定任务信息中所包含的库、表和/或字段的来源和去向。

更进一步地,根据对任务的解析内容,确定任务信息中所包含的库、表和/或字段的来源和去向,包括:根据对任务的解析内容,将对应的来源和去向的数据源的名称和相应的库名、表名以及字段名进行关联,以确定所述任务信息中所包含的库、表和/或字段的来源和去向。

在本实施方式中,在业务系统中,为了生成数据血缘,首先要生成库、表、字段信息。为了打破不同数据平台或工具中数据源的格式限制,在进行数据血缘生成时,首先获取各数据源的元数据信息,然后将这些元数据信息转换为统一的数据源协议格式,在本实施方式中,优选以json格式定义数据源的元数据信息。

其中,json即javascriptobjectnotation,是一种轻量级的数据交换格式。具有简洁和清晰的层次结构,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

其中,对元数据信息进行解析,生成库包含表、表包含字段的关联关系信息,包括:解析元数据信息中所包含的库、表和字段信息;根据库、表和字段的相应从属关系,生成相应的关系链。

数据血缘依托于库、表和字段信息,通过解析出库、表和字段的从属关系,生成相应的关系链,才能够便于得知目标字段所属的表和库。

通过对任务信息进行解析,获取该任务中的数据的来源和去向,即获取数据的来源数据源和目的数据源,并将之与该任务中的数据所在的库、表和字段进行匹配关联。为了方便生成数据血缘,进行数据的溯源等,在本实施方式中,进一步优选根据对任务的解析内容,确定任务信息中所包含的库、表和/或字段的来源和去向,包括:根据对任务的解析内容,将对应的来源和去向的数据源的名称和相应的库名、表名以及字段名进行关联。即,从已有的数据源中根据唯一的名称即可查找库、表和字段信息。

一个任务中的数据可以来源于不同的来源数据源,或者不同的库、表和/或字段。通过组装库、表和字段血缘,以生成数据血缘,当在查看血缘时,根据唯一的名称即可从数据库中查询库、表和字段级的血缘。

具体地,根据上述各实施方式,通过统一的协议格式分别对目标数据源和任务进行定义,然后基于该协议格式生成数据血缘,无论目标数据源是何种格式,采用的是何种数据平台或工具,只要遵循该预设的协议格式即可生成血缘,打破了不同数据源之间数据血缘的生成界限,实现了不同的数据平台或工具的兼容。

此外,对于当前无法访问的系统,只要能够得知该系统中的库、表、字段这些元数据信息,以及任务的处理过程,基于这些已知的信息生成协议内容,基于协议内容即可生成血缘信息,使得即便无法连接数据源时仍然可以生成血缘。

在本发明的一种实施方式中,以以下实际业务的处理过程进行详细说明。

在本实施方式中,以使用web爬虫抓取网页数据,并存入hdfs文件系统,然后将hdfs系统存储的网页数据使用spark处理生成结构化的数据流程为例,展示整个作业的处理流程以及相关的血缘信息。则该过程包括两项作业:

(1)假设web爬虫抓取目标a网页内容,并将内容存入hdfs文件系统的目标a目录中。

在该作业中,涉及了两个数据源,其中,来源数据源即目标a网页,目的数据源即hdfs文件系统的目标a目录。血缘来源即爬虫抓取的网页内容,数据的来源即来源数据源,去向即目的数据源。可以将这两个数据源抽象成库、表、字段形式,库名、表名和字段名一样即可。在爬虫抓取的过程中,通过指定的reader(来源)和writer(去向)将来源和去向关联起来。根据eader和writer生成血缘。

其中,目标a网页的库、表、字段的信息可以根据url请求的链接而定;hdfs数据源的库、表、字段的信息根据hdfs存储的文件信息而定。库、表、字段的名字可以相同。

(2)假设spark读取hdfs文件系统的目标a目录的信息,并收集了页面上引用的url信息,并将其存入web库的webinfo表的urls字段。

在该作业中,也涉及两个数据源,来源数据源即hdfs文件系统的目标a目录,目的数据源即web库的webinfo表。其血缘生成的过程和上述作业相同,在此不做赘述。

在本实施方式中,对于上述两个作业进行单独解析,即分别对各个作业的数据血缘进行解析生成。

优选地,对于每个作业中所涉及的数据源、库、表、字段等信息可以采用“数据源名称.库名.表名.字段名(列名)”的格式作为在系统中的唯一的名称存在。

在对作业进行解析时,根据唯一的名称可以查找已存在的数据源及其库、表、字段的信息。

然后,解析作业模板的血缘的输入、输出信息,从已有的数据源中根据上述的唯一的名称即可查找对应的库、表、字段信息,并进行组装,将作业数据的来源、去向和库、表、字段信息进行关联,生成血缘,并存入数据库即可。

当需要查询血缘时,根据唯一的名称即可从数据库中查询库、表、字段的血缘。

其中,作业模板即预先定义的作业的模板,可以对其格式进行定义,作业模板包含作业名称、描述、状态、创建时间、开始/结束时间和血缘等信息。而血缘的生成过程主要是对作业中血缘信息的解析。血缘信息包括输入和输出两部分,一个或者多个输入对应一个输出。其中,血缘信息中reader作为输入,包含数据源类型、名称、描述、输入表、输入列和输出列的信息,每个输入列对应一个输出列;而血缘信息中writer作为输出,包含数据源类型、名称、描述、输出列、依赖类型和依赖表达式等信息。其中,依赖表达式用于表示该列从可能的多个字段经过哪些数据处理过程而来的,如转换、分隔、合并和/或过滤等。

需要说明的是,本文中所指的“列”即等同于字段。

本发明上述各实施方式所提供的数据血缘的生成方法,由于通过统一的协议格式分别对目标数据源和任务的元数据进行定义,打破了只以数据库系统或分布式数据库为数据源,以etl任务或mapreduce任务为血缘依据的限制,扩展了数据血缘的生成范围。

基于本发明上述各实施方式,可以扩展数据源及任务范围,如web爬虫抓取数据的过程即为此类情况。其中web页面,hdfs磁盘文件均可以定义为数据源,web爬虫的抓取网页的过程可以定义为血缘依据。

此外,本发明实施方式所提供的数据血缘的生成方法,同时解决了多系统交互时,网络不通时的血缘生成问题。即离线问题,其血缘生成过程和上述各实施方式中的血缘生成过程基本相同,不同之处在于,当处于离线状态时,其流程增设了以下步骤:任意系统a如果包含数据血缘,可以生成指定协议格式后存入磁盘指定目录,该磁盘指定目录可以预先设定。操作人员将指定格式的数据拷贝到血缘生成系统的指定目录,血缘生成系统定时读取磁盘指定目录解析生成血缘。

请参考图2,图2为本发明一种具体实施方式所提供的数据血缘的生成系统示意图。

相应地,本发明一种实施方式还提供了一种数据血缘的生成系统,包括:获取模块21,用于获取各目标数据源和当前的任务信息;定义模块22,用于通过统一的预设协议格式分别对各目标数据源和当前的任务信息进行定义;血缘生成模块23,用于当执行当前任务时,根据当前任务的执行过程以及统一的预设协议格式生成相应的数据血缘。

通过统一的协议格式分别对目标数据源和任务进行定义,然后基于该协议格式生成数据血缘,无论目标数据源是何种格式,采用的是何种数据平台或工具,只要遵循该预设的协议格式即可生成血缘,打破了不同数据源之间数据血缘的生成界限,实现了不同的数据平台或工具的兼容。打破了只以数据库系统或分布式数据库为数据源,以etl任务或mapreduce任务为血缘依据的限制,扩展了数据血缘的生成范围。同时解决了多系统交互时,网络不通时的血缘生成问题。

在本发明的一种实施方式中,获取模块21包括:元数据获取单元,用于获取各来源数据源和目的数据源的元数据信息,元数据信息包括:库、表和字段;任务信息获取单元,用于获取当前的任务信息。

进一步地,定义模块22包括:第一定义单元,用于通过统一的预设协议格式定义各目标数据源,并对元数据信息进行解析,生成库包含表、表包含字段的关联关系信息;第二定义单元,用于通过统一的预设协议格式定义任务信息,并对任务信息进行解析,确定任务信息中所包含的库、表和/或字段的来源和去向。

更进一步地,血缘生成模块23包括:血缘生成单元,用于当执行当前任务时,根据任务信息中所包含的库、表和/或字段的来源和去向生成相应的数据血缘。

在本实施方式中,在业务系统中,为了生成数据血缘,首先要生成库、表、字段信息。为了打破不同数据平台或工具中数据源的格式限制,在进行数据血缘生成时,首先获取各数据源的元数据信息,然后将这些元数据信息转换为统一的数据源协议格式。

数据血缘依托于库、表和字段信息,通过解析出库、表和字段的从属关系,生成相应的关系链,才能够便于得知目标字段所属的表和库。

通过对任务信息进行解析,获取该任务中的数据的来源和去向,即获取数据的来源数据源和目的数据源,并将之与该任务中的数据所在的库、表和字段进行匹配关联。

在本发明的一种实施方式中,第一定义单元为:json格式定义单元,用于将各来源数据源和目的数据源的元数据信息转换为json格式。

json即javascriptobjectnotation,是一种轻量级的数据交换格式。具有简洁和清晰的层次结构,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率

优选地,第二定义单元包括:第一解析子单元,用于解析任务的数据源对象以及该任务所包含的库、表和/或字段;第一确定子单元,用于根据对任务的解析内容,确定任务信息中所包含的库、表和/或字段的来源和去向。

优选地,第一确定子单元包括:关联功能单元,用于根据对任务的解析内容,将对应的来源和去向的数据源的名称和相应的库名、表名以及字段名进行关联,以确定所述任务信息中所包含的库、表和/或字段的来源和去向。

在本实施方式中,从已有的数据源中根据唯一的名称即可查找库、表和字段信息。一个任务中的数据可以来源于不同的来源数据源,或者不同的库、表和/或字段。通过组装库、表和字段血缘,以生成数据血缘,当在查看血缘时,根据唯一的名称即可从数据库中查询库、表和字段级的血缘。

通过统一的协议格式分别对目标数据源和任务进行定义,然后基于该协议格式生成数据血缘,无论目标数据源是何种格式,采用的是何种数据平台或工具,只要遵循该预设的协议格式即可生成血缘,打破了不同数据源之间数据血缘的生成界限,实现了不同的数据平台或工具的兼容。

此外,对于当前无法访问的系统,只要能够得知该系统中的库、表、字段这些元数据信息,以及任务的处理过程,基于这些已知的信息生成协议内容,基于协议内容即可生成血缘信息,使得即便无法连接数据源时仍然可以生成血缘。

请参考图3,图3为本发明一种实施方式所提供的用于数据血缘的生成的电子设备结构示意图。

相应地,本发明一种实施方式还提供了一种用于数据血缘的生成的电子设备3,包括:存储器31,用于存储计算机程序;处理器32,用于执行计算机程序时实现如上述任一实施方式所提供的数据血缘的生成方法的步骤。

当然,该用于数据血缘的生成的电子设备还可以包括各种必要的网络接口、电源以及其它零部件等,在此不做限定,具体视情况而定。

相应地,本发明一种实施方式还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施方式所提供的数据血缘的生成方法的步骤。该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质,本实施方式在此不做限定,具体视情况而定。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

综上所述,本发明所提供的数据血缘的生成方法、系统、电子设备和存储介质,通过统一的协议格式分别对目标数据源和任务进行定义,然后基于该协议格式生成数据血缘,无论目标数据源是何种格式,采用的是何种数据平台或工具,只要遵循该预设的协议格式即可生成血缘,打破了不同数据源之间数据血缘的生成界限,实现了不同的数据平台或工具的兼容。打破了只以数据库系统或分布式数据库为数据源,以etl任务或mapreduce任务为血缘依据的限制,扩展了数据血缘的生成范围。同时解决了多系统交互时,网络不通时的血缘生成问题。

以上对本发明所提供的一种数据血缘的生成方法、系统、电子设备和存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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