CN113343036A - 基于关键拓扑结构分析的数据血缘关系解析方法和系统 - Google Patents
基于关键拓扑结构分析的数据血缘关系解析方法和系统 Download PDFInfo
- Publication number
- CN113343036A CN113343036A CN202110889427.1A CN202110889427A CN113343036A CN 113343036 A CN113343036 A CN 113343036A CN 202110889427 A CN202110889427 A CN 202110889427A CN 113343036 A CN113343036 A CN 113343036A
- Authority
- CN
- China
- Prior art keywords
- key
- data
- node
- blood relationship
- analysis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/83—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于关键拓扑结构分析的数据血缘关系解析方法和系统,其中方法利用XML事件驱动模型方法对kettle资源库导出XML文件进行解析;记录kettle资源库XML文件中步骤结点的上下游结点,构建包含所有步骤结点的关键步骤拓扑结构;从关键步骤拓扑结构中识别关键结点并对对应的步骤进行血缘解析,采用递归处理关键步骤拓扑结构上的各个步骤,在血缘关系解析过程中,不断传递解析的血缘关系数据给关键拓扑结构中的上游结点,直到对开始结点完成解析,从而完成kettle数据血缘关系的解析过程。本发明方法方便对kettle数据血缘关系进行解析,对外部框架依赖较少,而且更加高效、灵活。
Description
技术领域
本发明涉及数据血缘关系解析领域,更具体的,涉及一种基于关键拓扑结构分析的数据血缘关系解析方法和系统。
背景技术
数据在产生、加工融合、流转流通,到最终消亡的过程中,会自然地形成一种关系,借鉴人类社会中类似的关系来表达数据之间的这种关系,称之为数据的血缘关系。
数据血缘是元数据的组成部分之一。它分析表和字段从数据源到当前表的血缘路径,以及血缘字段之间存在的关系是否满足,关注的数据一致性以及表设计的合理性。数据血缘可用于分析上游数据发生变化会给下游数据带来哪些影响;可在下游数据发生变化时追踪上游问题的源头。目前实现数据血缘的方法主要有以下两种:
第一种是在Hive数据仓库中,使用Hive提供的原生API如LineageInfoAPI来解析当前Hive任务的数据血缘关系。这种方案在Hadoop生态中的数据治理组件ApacheAtlas中有着广泛的使用,使用简单、解析准确,数据血缘的粒度可达到列级血缘。然而该方法使得血缘解析功能与Hive组件具有强耦合,无法在任意时刻解析不同的SQL方言,因此对于不使用Hive和处理不同SQL方言的环境无法适用。
第二种是借助数据库厂商或公司的支持,使用专门提供的SQL解析API,或自主开发解析SQL语句的库,对SQL语句进行词法和语法分析,转成AST抽象语法树,然后递归遍历和分析抽象语法树中的结点获取血缘关系。这种方案的适用性更强,然而增加了实现血缘功能的难度。
然而,以上的方案只适用在获取给定SQL语句进行血缘解析的场景中。在大数据场景中,执行数据仓库执行抽取-转换-加载(Extract, Transform, and Load, ETL)作业时,无法从一个更高的层次上来解析作业内部的数据血缘关系。因此,如何提供一种数据血缘关系解析方法,用于实现在抽取-转换-加载(ETL)作业中,尤其是在开源的ETL工具——kettle中的数据血缘关系解析,是本领域技术人员亟待解决的技术问题。
发明内容
鉴于上述问题,本发明的目的是提供一种基于关键拓扑结构分析的kettle数据血缘关系解析方法和系统,用于实现在抽取-转换-加载(ETL)作业中,尤其是在开源的ETL工具——kettle中的数据血缘关系解析。
本发明第一方面提供了一种基于关键拓扑结构分析的数据血缘关系解析方法,包括以下步骤:
导出kettle资源库为XML格式的文件,并通过XML事件驱动模型方法对所述文件进行解析,得到XML文件;
为所述XML文件的order结点和transformation结点添加访问事件处理器;
以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构;
根据所述关键步骤拓扑结构识别所述transformation结点的关键结点,所述关键结点为含有有效数据血缘关系的步骤结点;
从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对所述关键步骤拓扑结构的开始结点完成解析。
本方案中,所述以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构具体为:
以XML事件驱动模型方法遍历访问所述XML文件;
读取所述order结点下的所有的hop子结点,并读取所述hop子结点内包含的from、to结点对,构建哈希表,得到上游结点到下游结点的映射;
根据哈希表整理每一个结点的上下游结点,从而获得包含所有步骤结点的关键步骤拓扑结构。
本方案中,所述从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对述关键步骤拓扑结构的开始结点完成解析具体包括:
对位于下游的关键结点进行数据血缘关系解析,得到血缘关系数据;
将所述血缘关系数据以血缘数据业务对象的方式暂存,并传递给上游的关键结点;
对上游的关键结点进行数据血缘关系解析后,更新血缘数据业务对象;
采取递归处理的方式,直到所述关键步骤拓扑结构的开始结点完成解析。
本方案中,进行数据血缘关系分析的方式包括:针对不同类型的关键结点,对应的采用SQL语句解析或XML事件处理的方式进行数据血缘关系解析。
本方案中,在所述关键步骤拓扑结构的开始结点完成解析之后,还包括:
在所述关键步骤拓扑结构的开始结点处将完成解析的血缘数据业务对象持久化到数据库中。
本方案中,在所述关键步骤拓扑结构的开始结点处将完成解析的血缘数据业务对象持久化到数据库中之前,还包括:
在数据库中新建表血缘关系的表和字段血缘关系的表;
所述表血缘关系的表包括的字段有:上游表的ID、数据库名和表名,下游表的ID、数据库名和表名;
所述字段血缘关系的表包括的字段有:上游表的ID、数据库名、上游字段名、上游字段常量标记,下游表的ID、数据库名、下游字段名。
本发明第二方面还提供一种基于关键拓扑结构分析的数据血缘关系解析系统,包括存储器和处理器,所述存储器中包括种基于关键拓扑结构分析的数据血缘关系解析方法程序,所述种基于关键拓扑结构分析的数据血缘关系解析方法程序被所述处理器执行时实现如下步骤:
导出kettle资源库为XML格式的文件,并通过XML事件驱动模型方法对所述文件进行解析,得到XML文件;
为所述XML文件的order结点和transformation结点添加访问事件处理器;
以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构;
根据所述关键步骤拓扑结构识别所述transformation结点的关键结点,所述关键结点为含有有效数据血缘关系的步骤结点;
从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对所述关键步骤拓扑结构的开始结点完成解析。
本方案中,所述以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构具体为:
以XML事件驱动模型方法遍历访问所述XML文件;
读取所述order结点下的所有的hop子结点,并读取所述hop子结点内包含的from、to结点对,构建哈希表,得到上游结点到下游结点的映射;
根据哈希表整理每一个结点的上下游结点,从而获得包含所有步骤结点的关键步骤拓扑结构。
本方案中,所述从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对述关键步骤拓扑结构的开始结点完成解析具体包括:
对位于下游的关键结点进行数据血缘关系解析,得到血缘关系数据;
将所述血缘关系数据以血缘数据业务对象的方式暂存,并传递给上游的关键结点;
对上游的关键结点进行数据血缘关系解析后,更新血缘数据业务对象;
采取递归处理的方式,直到所述关键步骤拓扑结构的开始结点完成解析。
本发明第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中包括机器的一种基于关键拓扑结构分析的数据血缘关系解析方法程序,所述基于关键拓扑结构分析的数据血缘关系解析方法程序被处理器执行时,实现如上述任一项所述的一种基于关键拓扑结构分析的数据血缘关系解析方法的步骤。
本发明公开了一种基于关键拓扑结构分析的数据血缘关系解析方法,包括:导出kettle资源库为XML格式的文件,并通过XML事件驱动模型方法对文件进行解析,得到XML文件;为XML文件的order结点和transformation结点添加访问事件处理器;以XML事件驱动模型方法遍历访问XML文件,记录order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构;根据关键步骤拓扑结构识别transformation结点的关键结点,关键结点为含有有效数据血缘关系的步骤结点;从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将血缘关系数据传递给上游的关键结点,直到对关键步骤拓扑结构的开始结点完成解析。本方法利用XML事件驱动模型方法对kettle资源库导出XML文件进行解析;记录kettle资源库XML文件中步骤结点的上下游结点,构建包含所有步骤结点的关键步骤拓扑结构;从关键步骤拓扑结构中识别关键结点并对对应的步骤进行血缘解析,采用递归处理关键步骤拓扑结构上的各个步骤,在血缘关系解析过程中,不断传递解析的血缘关系数据给关键拓扑结构中的上游结点,直到对开始结点完成解析,从而完成kettle数据血缘关系的解析过程。本发明方法方便对kettle数据血缘关系进行解析,对外部框架依赖较少,而且更加高效、灵活。
附图说明
图1示出了本申请一种基于关键拓扑结构分析的数据血缘关系解析方法的流程图;
图2示出了本申请实施例的关键步骤路径结构示意图;
图3示出了本发明一种基于关键拓扑结构分析的数据血缘关系解析系统的框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了本申请一种基于关键拓扑结构分析的数据血缘关系解析方法的流程图。
如图1所示,本申请公开了一种基于关键拓扑结构分析的数据血缘关系解析方法,包括以下步骤:
S102,导出kettle资源库为XML格式的文件,并通过XML事件驱动模型方法对所述文件进行解析,得到XML文件;
S104,为所述XML文件的order结点和transformation结点添加访问事件处理器;
S106,以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构;
S108,根据所述关键步骤拓扑结构识别所述transformation结点的关键结点,所述关键结点为含有有效数据血缘关系的步骤结点;
S110,从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对所述关键步骤拓扑结构的开始结点完成解析。
需要说明的是,本发明实施例是用于实现在ETL(抽取-转换-加载)作业中,尤其是在开源的ETL工具——kettle中的数据血缘关系解析,因此在资源库导出文件记录的作业包含以下信息:作业的名称、描述、创建者、创建时间、更改者、更改时间、作业执行日志的记录表、作业内的转换名称;资源库导出文件记录的转换包含以下信息:转换的名称、描述、创建者、创建时间、更改者、更改时间、包含的步骤信息、各个步骤的上下游步骤。
需要说明的是,资源库导出文件包含此资源库中定义的所有作业及其依赖的转换。在一个具体的实施例中,假设资源库导出文件记录的关键作业信息:作业的名称为“合并关键的表数据”,创建者为“Sysadmin”,创建时间为“2015-10-12 11:00:00”,作业执行日志的记录表为“job_log”,作业内的转换名称有“开始”、“合并关键的表数据”和“成功”。其中完成作业任务的关键转换为“合并关键的表数据”。
需要说明的是,order结点表示作业顺序,而transformation结点表示转换后的信息,因此根据order结点中的步骤结点得到的关键步骤拓扑结构,可以识别出transformation结点中的步骤结点。
需要说明的是,在上述的具体实施例中,资源库导出文件记录的转换(以“合并关键的表数据”来说)包含以下关键的信息:转换的名称为“合并关键的表数据”,创建者为“admin”,创建时间为“2015-10-11 12:00:00”,包含的步骤信息有“表输入”、“执行SQL脚本”、“记录集连接”、“执行Java代码”、“表输出”和“空操作”,以及各个步骤的上下游步骤。其中转换内的步骤信息描述了该项转换使用到的所有步骤,这些步骤以逻辑图结构形成关键拓扑关系。
需要说明的是,从上述的关键步骤拓扑结构中识别关键结点,尽可能处于关键步骤拓扑结构的下游,将解析的结果传递给所有的上游关键结点做进一步处理,从而获得该条数据更多的血缘表和字段。当对开始结点进行了血缘解析后,即相当于完整记录了当前的血缘关系。
需要说明的是,含有有效数据血缘关系的步骤结点指:当一个步骤结点的类型不再有后续操作或者执行外部操作时,该结点并非是包含有效的数据血缘关系的结点,因此排出在关键结点之外。后续具体实施例中会进行进一步说明。
本发明实施例所提供的基于关键拓扑结构分析的数据血缘关系解析方法,利用XML事件驱动模型方法对kettle资源库导出XML文件进行解析;记录kettle资源库XML文件中步骤结点的上下游结点,构建包含所有步骤结点的关键步骤拓扑结构;从关键步骤拓扑结构中识别关键结点并对对应的步骤进行血缘解析,采用递归处理关键步骤拓扑结构上的各个步骤,在血缘关系解析过程中,不断传递解析的血缘关系数据给关键拓扑结构中的上游结点,直到对开始结点完成解析,从而完成kettle数据血缘关系的解析过程。本发明方法方便对kettle数据血缘关系进行解析,对外部框架依赖较少,而且更加高效、灵活。
根据本发明实施例,所述以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构具体为:
以XML事件驱动模型方法遍历访问所述XML文件;
读取所述order结点下的所有的hop子结点,并读取所述hop子结点内包含的from、to结点对,构建哈希表,得到上游结点到下游结点的映射;
根据哈希表整理每一个结点的上下游结点,从而获得包含所有步骤结点的关键步骤拓扑结构。
需要说明的是,order结点下的步骤结点通常以的hop子结点及其from、to结点对表示,在一个具体实例中,假设kettle资源库XML文件含有的order结点为如下内容:
<order>
<hop>
<from>表输入</from>
<to>记录集连接</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>执行SQL脚本</from>
<to>记录集连接</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>记录集连接</from>
<to>表输出</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>记录集连接</from>
<to>执行Java代码</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>表输出</from>
<to>空操作</to>
<enabled>Y</enabled>
</hop>
</order>
当访问到XML文件的order结点时,事件处理器定义的操作开始执行:读取order结点内的hop子结点,并读取hop内包含的from、to结点对,构建哈希表从而得到上游结点到下游结点的映射。从下游结点的哈希表中,整理得到每一个结点的上下游结点,从而获得当前转换内所有步骤结点的关键步骤拓扑结构。因此,上述内容可以解析得到“表输入”到“记录集连接”和“执行SQL脚本”到“记录集连接”的映射结果。对于除“表输入”和“执行SQL脚本”以外的结点,也获取到它们的下游结点映射。请参阅图2,图2示出了本申请实施例的关键步骤路径结构示意图。每个结点以名称作为表示,构建逻辑结点对象记步骤结点的上游结点和下游结点,并最终以关键步骤路径结构记录所有步骤的拓扑结构。
根据本发明实施例,所述从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对述关键步骤拓扑结构的开始结点完成解析具体包括:
对位于下游的关键结点进行数据血缘关系解析,得到血缘关系数据;
将所述血缘关系数据以血缘数据业务对象的方式暂存,并传递给上游的关键结点;
对上游的关键结点进行数据血缘关系解析后,更新血缘数据业务对象;
采取递归处理的方式,直到所述关键步骤拓扑结构的开始结点完成解析。
需要说明的是,当访问到transformation结点时,事件处理器执行的操作是:读取transformation结点下所有的步骤结点。这些步骤结点的邻近结点由S106构建的关键步骤拓扑结构来获得。根据图2所示的上述具体实施例,名称为“执行Java代码”和“空操作”的结点为关键拓扑结构的下游结点,然而它们的类型为“执行Java代码”和“空操作”,并非是包含有效的数据血缘关系的结点,因此排除在关键结点之外。在此实施例中,关键结点集合是{“表输出”}。解析“表输出”对应的step结点,构建血缘数据业务对象,并传递给“表输出”结点上游的“记录集连接”结点进一步处理。
采取递归处理的方式遍历到关键步骤拓扑结构的最上游结点,该结点为递归处理过程的出口,一般对应为“表输入”类型或“执行SQL语句”类型的结点。在本实施例的示意图图2中,所述的关键步骤拓扑结构的最上游结点为名称“表输入”和“执行SQL语句”的结点,从该结点中解析血缘关系,并更新从下游结点传递而来的血缘数据业务对象。
根据本发明实施例,进行数据血缘关系分析的方式包括:针对不同类型的关键结点,对应的采用SQL语句解析或XML事件处理的方式进行数据血缘关系解析。
需要说明的是,对于不同类型的step结点,采取不同的数据血缘解析方法。采用SQL语句解析的方式分析SQL中的数据血缘关系,采用XML事件处理的方式明确手动配置的表、字段血缘关系。
需要说明的是,血缘关系数据以血缘数据业务对象的方式暂存,并传递给拓扑结构中的上游结点。具体如下:
对于“表输出”类型的step结点,采用XML事件处理的方式解析步骤中记录的直接的数据表和字段映射关系,构建血缘数据业务对象,记录映射关系中的上游表、上游字段,和对应的下游表和下游字段。
对于“更新”、“插入更新”、“表输入”或“执行SQL语句”类型的step,采用SQL语句解析的方式解析该步骤中的SQL语句,进而解析其中的数据血缘关系,构建血缘数据业务对象,记录映射关系中的上下游表和上下游字段。
在实际操作中,基于druid开源语法分析器,生成步骤内SQL语句的抽象语法树,并通过抽象语法树遍历的事件驱动处理机制,获取所述SQL库名、表名、字段名以及表和字段描述的元数据信息,将所述元数据信息作为生成表和表、字段和字段、表和表实例、字段和字段实例之间血缘关系的源信息,并获取所述元信息之间的血缘映射关系。
对于“选择值”类型的step结点,因为该步骤记录了上游字段和下游字段的映射关系,所以需要更新递归过程中从下游结点传过来的血缘数据业务对象,通过当前结点作为上游的输出表和字段与下游结点的输入表和字段对应的关系进行匹配,更新血缘数据业务对象中记录的上游表和字段。
对于“增加常量”类型的step结点,因为该步骤以常量值作为字段传递给下游,所以需要更新递归过程中从下游结点传过来的血缘数据业务对象,将上下游字段匹配的血缘数据业务对象,设置其上游字段为相应的常量值,此时得到的血缘数据业务对象即为完整记录了当前血缘关系的业务对象。
根据本发明实施例,在所述关键步骤拓扑结构的开始结点完成解析之后,还包括:
在所述关键步骤拓扑结构的开始结点处将完成解析的血缘数据业务对象持久化到数据库中。
需要说明的是,在其他关键结点中,血缘关系数据以血缘数据业务对象的方式暂存,但是在开始结点处,以及获得完整的血缘数据业务对象,因此在所述关键步骤拓扑结构的开始结点处将完成解析的血缘数据业务对象持久化到数据库中。
根据本发明实施例,在所述关键步骤拓扑结构的开始结点处将完成解析的血缘数据业务对象持久化到数据库中之前,还包括:
在数据库中新建表血缘关系的表和字段血缘关系的表;
所述表血缘关系的表包括的字段有:上游表的ID、数据库名和表名,下游表的ID、数据库名和表名;
所述字段血缘关系的表包括的字段有:上游表的ID、数据库名、上游字段名、上游字段常量标记,下游表的ID、数据库名、下游字段名。
需要说明的是,表字段映射的血缘关系数据和字段映射的血缘关系数据分别同步到数据库中表血缘关系的表,和字段血缘关系的表,从而完成kettle数据血缘关系的解析过程。在一个实施例中,具体为:在MySql数据库中新建表血缘关系的表table_lineage和字段血缘关系的表table_column_lineage。所述表血缘关系的表包括的字段有:上游表的ID、数据库名和表名,下游表的ID、数据库名和表名。所述字段血缘关系的表包括的字段有:上游表的ID、数据库名、上游字段名、上游字段常量标记,下游表的ID、数据库名、下游字段名。其中上游字段常量标记用于表示上游的来源字段是否是常量值。
图3示出了本发明一种基于关键拓扑结构分析的数据血缘关系解析系统的框图。
如图3所示,本发明公开了一种基于关键拓扑结构分析的数据血缘关系解析系统3,包括存储器31和处理器32,所述存储器31中包括种基于关键拓扑结构分析的数据血缘关系解析方法程序,所述种基于关键拓扑结构分析的数据血缘关系解析方法程序被所述处理器32执行时实现如下步骤:
导出kettle资源库为XML格式的文件,并通过XML事件驱动模型方法对所述文件进行解析,得到XML文件;
为所述XML文件的order结点和transformation结点添加访问事件处理器;
以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构;
根据所述关键步骤拓扑结构识别所述transformation结点的关键结点,所述关键结点为含有有效数据血缘关系的步骤结点;
从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对所述关键步骤拓扑结构的开始结点完成解析。
需要说明的是,本发明实施例是用于实现在ETL(抽取-转换-加载)作业中,尤其是在开源的ETL工具——kettle中的数据血缘关系解析,因此在资源库导出文件记录的作业包含以下信息:作业的名称、描述、创建者、创建时间、更改者、更改时间、作业执行日志的记录表、作业内的转换名称;资源库导出文件记录的转换包含以下信息:转换的名称、描述、创建者、创建时间、更改者、更改时间、包含的步骤信息、各个步骤的上下游步骤。
需要说明的是,资源库导出文件包含此资源库中定义的所有作业及其依赖的转换。在一个具体的实施例中,假设资源库导出文件记录的关键作业信息:作业的名称为“合并关键的表数据”,创建者为“Sysadmin”,创建时间为“2015-10-12 11:00:00”,作业执行日志的记录表为“job_log”,作业内的转换名称有“开始”、“合并关键的表数据”和“成功”。其中完成作业任务的关键转换为“合并关键的表数据”。
需要说明的是,order结点表示作业顺序,而transformation结点表示转换后的信息,因此根据order结点中的步骤结点得到的关键步骤拓扑结构,可以识别出transformation结点中的步骤结点。
需要说明的是,在上述的具体实施例中,资源库导出文件记录的转换(以“合并关键的表数据”来说)包含以下关键的信息:转换的名称为“合并关键的表数据”,创建者为“admin”,创建时间为“2015-10-11 12:00:00”,包含的步骤信息有“表输入”、“执行SQL脚本”、“记录集连接”、“执行Java代码”、“表输出”和“空操作”,以及各个步骤的上下游步骤。其中转换内的步骤信息描述了该项转换使用到的所有步骤,这些步骤以逻辑图结构形成关键拓扑关系。
需要说明的是,从上述的关键步骤拓扑结构中识别关键结点,尽可能处于关键步骤拓扑结构的下游,将解析的结果传递给所有的上游关键结点做进一步处理,从而获得该条数据更多的血缘表和字段。当对开始结点也进行血缘解析后,即相当于完整记录了当前的血缘关系。
需要说明的是,含有有效数据血缘关系的步骤结点指:当一个步骤结点的类型不再有后续操作或者执行外部操作时,该结点并非是包含有效的数据血缘关系的结点,因此排出在关键结点之外。
本发明实施例所提供的基于关键拓扑结构分析的数据血缘关系解析方法,利用XML事件驱动模型方法对kettle资源库导出XML文件进行解析;记录kettle资源库XML文件中步骤结点的上下游结点,构建包含所有步骤结点的关键步骤拓扑结构;从关键步骤拓扑结构中识别关键结点并对对应的步骤进行血缘解析,采用递归处理关键步骤拓扑结构上的各个步骤,在血缘关系解析过程中,不断传递解析的血缘关系数据给关键拓扑结构中的上游结点,直到对开始结点完成解析,从而完成kettle数据血缘关系的解析过程。本发明方法方便对kettle数据血缘关系进行解析,对外部框架依赖较少,而且更加高效、灵活。
根据本发明实施例,所述以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构具体为:
以XML事件驱动模型方法遍历访问所述XML文件;
读取所述order结点下的所有的hop子结点,并读取所述hop子结点内包含的from、to结点对,构建哈希表,得到上游结点到下游结点的映射;
根据哈希表整理每一个结点的上下游结点,从而获得包含所有步骤结点的关键步骤拓扑结构。
需要说明的是,当访问到XML文件的order结点时,事件处理器定义的操作开始执行:读取order结点内的hop子结点,并读取hop内包含的from、to结点对,构建哈希表从而得到上游结点到下游结点的映射。从下游结点的哈希表中,整理得到每一个结点的上下游结点,从而获得当前转换内所有步骤结点的关键步骤拓扑结构。
根据本发明实施例,所述从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对述关键步骤拓扑结构的开始结点完成解析具体包括:
对位于下游的关键结点进行数据血缘关系解析,得到血缘关系数据;
将所述血缘关系数据以血缘数据业务对象的方式暂存,并传递给上游的关键结点;
对上游的关键结点进行数据血缘关系解析后,更新血缘数据业务对象;
采取递归处理的方式,直到所述关键步骤拓扑结构的开始结点完成解析。
需要说明的是,当访问到transformation结点时,事件处理器执行的操作是:读取transformation结点下所有的步骤结点。这些步骤结点的邻近结点由关键步骤拓扑结构来获得。采取递归处理的方式遍历到关键步骤拓扑结构的最上游结点,该结点为递归处理过程的出口,一般对应为“表输入”类型或“执行SQL语句”类型的结点,从该结点中解析血缘关系,并更新从下游结点传递而来的血缘数据业务对象。
本发明第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中包括一种基于关键拓扑结构分析的数据血缘关系解析方法程序,所述基于关键拓扑结构分析的数据血缘关系解析方法程序被处理器执行时,实现如上述任一项所述的一种基于大数据分析的健康警示方法的步骤。
本发明公开的一种基于关键拓扑结构分析的数据血缘关系解析方法和系统和可读存储介质,利用XML事件驱动模型方法对kettle资源库导出XML文件进行解析;记录kettle资源库XML文件中步骤结点的上下游结点,构建包含所有步骤结点的关键步骤拓扑结构;从关键步骤拓扑结构中识别关键结点并对对应的步骤进行血缘解析,采用递归处理关键步骤拓扑结构上的各个步骤,在血缘关系解析过程中,不断传递解析的血缘关系数据给关键拓扑结构中的上游结点,直到对开始结点完成解析,从而完成kettle数据血缘关系的解析过程。本发明方法方便对kettle数据血缘关系进行解析,对外部框架依赖较少,而且更加高效、灵活。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种基于关键拓扑结构分析的数据血缘关系解析方法,其特征在于,包括以下步骤:
导出kettle资源库为XML格式的文件,并通过XML事件驱动模型方法对所述文件进行解析,得到XML文件;
为所述XML文件的order结点和transformation结点添加访问事件处理器;
以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构;
根据所述关键步骤拓扑结构识别所述transformation结点的关键结点,所述关键结点为含有有效数据血缘关系的步骤结点;
从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对所述关键步骤拓扑结构的开始结点完成解析。
2.根据权利要求1所述的基于关键拓扑结构分析的数据血缘关系解析方法,其特征在于,所述以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构具体为:
以XML事件驱动模型方法遍历访问所述XML文件;
读取所述order结点下的所有的hop子结点,并读取所述hop子结点内包含的from、to结点对,构建哈希表,得到上游结点到下游结点的映射;
根据哈希表整理每一个结点的上下游结点,从而获得包含所有步骤结点的关键步骤拓扑结构。
3.权利要求1所述的基于关键拓扑结构分析的数据血缘关系解析方法,其特征在于,所述从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对述关键步骤拓扑结构的开始结点完成解析具体包括:
对位于下游的关键结点进行数据血缘关系解析,得到血缘关系数据;
将所述血缘关系数据以血缘数据业务对象的方式暂存,并传递给上游的关键结点;
对上游的关键结点进行数据血缘关系解析后,更新血缘数据业务对象;
采取递归处理的方式,直到所述关键步骤拓扑结构的开始结点完成解析。
4.根据权利要求3所述的基于关键拓扑结构分析的数据血缘关系解析方法,其特征在于,进行数据血缘关系分析的方式包括:针对不同类型的关键结点,对应的采用SQL语句解析或XML事件处理的方式进行数据血缘关系解析。
5.根据权利要求4所述的基于关键拓扑结构分析的数据血缘关系解析方法,其特征在于,在所述关键步骤拓扑结构的开始结点完成解析之后,还包括:
在所述关键步骤拓扑结构的开始结点处将完成解析的血缘数据业务对象持久化到数据库中。
6.根据权利要求5所述的基于关键拓扑结构分析的数据血缘关系解析方法,其特征在于,在所述关键步骤拓扑结构的开始结点处将完成解析的血缘数据业务对象持久化到数据库中之前,还包括:
在数据库中新建表血缘关系的表和字段血缘关系的表;
所述表血缘关系的表包括的字段有:上游表的ID、数据库名和表名,下游表的ID、数据库名和表名;
所述字段血缘关系的表包括的字段有:上游表的ID、数据库名、上游字段名、上游字段常量标记,下游表的ID、数据库名、下游字段名。
7.一种基于关键拓扑结构分析的数据血缘关系解析系统,其特征在于,包括存储器和处理器,所述存储器中包括种基于关键拓扑结构分析的kettle数据血缘关系解析方法程序,所述种基于关键拓扑结构分析的kettle数据血缘关系解析方法程序被所述处理器执行时实现如下步骤:
导出kettle资源库为XML格式的文件,并通过XML事件驱动模型方法对所述文件进行解析,得到XML文件;
为所述XML文件的order结点和transformation结点添加访问事件处理器;
以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构;
根据所述关键步骤拓扑结构识别所述transformation结点的关键结点,所述关键结点为含有有效数据血缘关系的步骤结点;
从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对所述关键步骤拓扑结构的开始结点完成解析。
8.根据权利要求7所述的基于关键拓扑结构分析的数据血缘关系解析系统,其特征在于,所述以XML事件驱动模型方法遍历访问所述XML文件,记录所述order结点下的步骤结点及其上下游关系,从而得到包含所有步骤结点的关键步骤拓扑结构具体为:
以XML事件驱动模型方法遍历访问所述XML文件;
读取所述order结点下的所有的hop子结点,并读取所述hop子结点内包含的from、to结点对,构建哈希表,得到上游结点到下游结点的映射;
根据哈希表整理每一个结点的上下游结点,从而获得包含所有步骤结点的关键步骤拓扑结构。
9.根据权利要求8所述的基于关键拓扑结构分析的数据血缘关系解析系统,其特征在于,所述从位于下游的关键结点开始进行数据血缘关系解析,得到血缘关系数据后,将所述血缘关系数据传递给上游的关键结点,直到对述关键步骤拓扑结构的开始结点完成解析具体包括:
对位于下游的关键结点进行数据血缘关系解析,得到血缘关系数据;
将所述血缘关系数据以血缘数据业务对象的方式暂存,并传递给上游的关键结点;
对上游的关键结点进行数据血缘关系解析后,更新血缘数据业务对象;
采取递归处理的方式,直到所述关键步骤拓扑结构的开始结点完成解析。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括一种基于关键拓扑结构分析的数据血缘关系解析方法程序,所述基于关键拓扑结构分析的数据血缘关系解析方法程序被处理器执行时,实现如权利要求1至6中任一项所述的一种基于关键拓扑结构分析的数据血缘关系解析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110889427.1A CN113343036B (zh) | 2021-08-04 | 2021-08-04 | 基于关键拓扑结构分析的数据血缘关系解析方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110889427.1A CN113343036B (zh) | 2021-08-04 | 2021-08-04 | 基于关键拓扑结构分析的数据血缘关系解析方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113343036A true CN113343036A (zh) | 2021-09-03 |
CN113343036B CN113343036B (zh) | 2021-11-16 |
Family
ID=77480547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110889427.1A Active CN113343036B (zh) | 2021-08-04 | 2021-08-04 | 基于关键拓扑结构分析的数据血缘关系解析方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113343036B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064640A (zh) * | 2021-11-09 | 2022-02-18 | 珠海市新德汇信息技术有限公司 | 应用于数据溯源的血缘关系构造方法、存储介质及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880492A (zh) * | 2012-09-24 | 2013-01-16 | 广东华大集成技术有限责任公司 | 一种基于as的xml脚本解析器及其方法 |
US20130332449A1 (en) * | 2012-06-06 | 2013-12-12 | Revitas, Inc. | Generating data processing code from a directed acyclic graph |
CN107169023A (zh) * | 2017-04-07 | 2017-09-15 | 广东精点数据科技股份有限公司 | 基于sql语义自动解析的数据血统分析系统及方法 |
CN110232056A (zh) * | 2019-05-21 | 2019-09-13 | 苏宁云计算有限公司 | 一种结构化查询语言的血缘解析方法及其工具 |
CN112434046A (zh) * | 2020-12-16 | 2021-03-02 | 杭州天均科技有限公司 | 一种数据血缘分析方法、装置、设备及存储介质 |
CN112925777A (zh) * | 2021-02-25 | 2021-06-08 | 吉林亿联银行股份有限公司 | 一种用于探测hive数据库数据血缘的方法及系统 |
-
2021
- 2021-08-04 CN CN202110889427.1A patent/CN113343036B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130332449A1 (en) * | 2012-06-06 | 2013-12-12 | Revitas, Inc. | Generating data processing code from a directed acyclic graph |
CN102880492A (zh) * | 2012-09-24 | 2013-01-16 | 广东华大集成技术有限责任公司 | 一种基于as的xml脚本解析器及其方法 |
CN107169023A (zh) * | 2017-04-07 | 2017-09-15 | 广东精点数据科技股份有限公司 | 基于sql语义自动解析的数据血统分析系统及方法 |
CN110232056A (zh) * | 2019-05-21 | 2019-09-13 | 苏宁云计算有限公司 | 一种结构化查询语言的血缘解析方法及其工具 |
CN112434046A (zh) * | 2020-12-16 | 2021-03-02 | 杭州天均科技有限公司 | 一种数据血缘分析方法、装置、设备及存储介质 |
CN112925777A (zh) * | 2021-02-25 | 2021-06-08 | 吉林亿联银行股份有限公司 | 一种用于探测hive数据库数据血缘的方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064640A (zh) * | 2021-11-09 | 2022-02-18 | 珠海市新德汇信息技术有限公司 | 应用于数据溯源的血缘关系构造方法、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113343036B (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11907247B2 (en) | Metadata hub for metadata models of database objects | |
JP7360328B2 (ja) | 異種にプログラムされたデータ処理システムの自動依存性アナライザ | |
US8997070B2 (en) | Extension mechanism for scripting language compiler | |
US8959106B2 (en) | Class loading using java data cartridges | |
US8447744B2 (en) | Extensibility platform using data cartridges | |
US10180984B2 (en) | Pivot facets for text mining and search | |
US20130318095A1 (en) | Distributed computing environment for data capture, search and analytics | |
US8849874B2 (en) | Method and device for ontology evolution | |
US20140173559A1 (en) | Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files | |
Fokaefs et al. | Wsdarwin: Studying the evolution of web service systems | |
Euzenat et al. | Ontology alignments: an ontology management perspective | |
US20120233186A1 (en) | Exposing and using metadata and meta-metadata | |
CN111259067A (zh) | 一种基于Spring实现DAO接口的方法、装置及设备 | |
US11573790B2 (en) | Generation of knowledge graphs based on repositories of code | |
CN113343036B (zh) | 基于关键拓扑结构分析的数据血缘关系解析方法和系统 | |
CN112970011A (zh) | 记录查询优化中的谱系 | |
Ledvinka et al. | A comparison of object-triple mapping libraries | |
Schlegel et al. | MLflow2PROV: extracting provenance from machine learning experiments | |
US9201937B2 (en) | Rapid provisioning of information for business analytics | |
CN115757525A (zh) | 列算子血缘构建方法、服务器、计算机可读存储介质 | |
CN116010461A (zh) | 数据血缘关系解析方法及装置、存储介质及电子设备 | |
Kryszyn et al. | Comparison of OpenEHR and HL7 FHIR Standards | |
CN113312373A (zh) | 一种数据结构化查询语句的解析方法及设备 | |
CN112699642A (zh) | 复杂医疗文书的索引提取方法及装置、介质及电子设备 | |
Christopher et al. | SCHEMADB: Structures in relational datasets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |