CN114510611B - 一种构建元数据血缘图谱的方法、装置及相关设备 - Google Patents

一种构建元数据血缘图谱的方法、装置及相关设备 Download PDF

Info

Publication number
CN114510611B
CN114510611B CN202210414959.4A CN202210414959A CN114510611B CN 114510611 B CN114510611 B CN 114510611B CN 202210414959 A CN202210414959 A CN 202210414959A CN 114510611 B CN114510611 B CN 114510611B
Authority
CN
China
Prior art keywords
metadata
nodes
node
identifier
blood
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.)
Active
Application number
CN202210414959.4A
Other languages
English (en)
Other versions
CN114510611A (zh
Inventor
王哲
赵梓荣
岳丰
舒光斌
张原�
方兴
宋群力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citic Securities Co ltd
Original Assignee
Citic Securities Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Citic Securities Co ltd filed Critical Citic Securities Co ltd
Priority to CN202210414959.4A priority Critical patent/CN114510611B/zh
Publication of CN114510611A publication Critical patent/CN114510611A/zh
Application granted granted Critical
Publication of CN114510611B publication Critical patent/CN114510611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种构建元数据血缘图谱的方法、装置及相关设备,包括:获取多个系统中的元数据以及用于指示多个系统中的元数据之间的关联关系的关系信息,该关系信息包括不同元数据各自对应的源系统标识、源模式标识、源数据表标识、目标系统标识、目标模式标识、目标数据表标识以及业务标识;遍历关系信息,确定元数据血缘图谱中的多个节点之间的关系,该多个节点包括系统节点、模式节点以及数据表节点,该多个节点对应于多个系统中的不同元数据,并以此生成元数据血缘图谱。如此,可以生成跨系统的元数据血缘图谱,从而可以利用该元数据血缘图谱,对异常数据进行溯源和/或确定受异常数据影响的其它数据等,满足实际应用的需求。

Description

一种构建元数据血缘图谱的方法、装置及相关设备
技术领域
本申请涉及数据处理技术领域,特别是涉及一种构建元数据血缘图谱的方法、装置及相关设备。
背景技术
元数据血缘图谱,是指用于表征元数据之间血缘关系的图谱,其中,元数据之间的血缘关系,例如可以是归属关系、推导关系等。元数据,是指用于描述数据的数据,如数据库中的字段属性等。
目前,在构建元数据血缘图谱时,主要是利用单个系统内的元数据,按照相应的规则构建出元数据血缘图谱,以便利用元数据血缘图谱进行信息管理、影响分析和溯源等。但是,这种元数据血缘图谱难以满足部分应用场景的实际使用需求。比如,在部分应用场景中,公司内部可能运行有多个业务系统,并且该多个业务系统之间存在数据以及元数据的传递,此时,在上游业务系统中的数据以及元数据发生变化后,根据各个业务系统各自对应的元数据血缘图谱,难以确定受影响的下游业务系统中的数据;或者,难以根据下游业务系统中的异常数据溯源上游业务系统中的异常数据等。
发明内容
本申请实施例提供了一种构建元数据血缘图谱的方法、装置及相关设备,以实现基于多个系统中的元数据构建元数据血缘图谱。
第一方面,本申请实施例提供了一种构建元数据血缘图谱的方法,所述方法包括:
获取多个系统中的元数据以及关系信息,所述关系信息用于指示所述多个系统中的元数据之间的关联关系,所述关系信息包括不同元数据各自对应的源系统标识、源模式标识、源数据表标识、目标系统标识、目标模式标识、目标数据表标识以及业务标识;
遍历所述关系信息,确定元数据血缘图谱中的多个节点之间的关系,所述多个节点包括系统节点、模式节点以及数据表节点,所述多个节点对应于所述多个系统中的不同元数据;
根据所述元数据血缘图谱中的多个节点以及所述多个节点之间的关系,生成所述多个系统中的元数据对应的元数据血缘图谱。
在一种可能的实施方式中,所述多个节点中每个节点的属性,至少包括时间信息。
在一种可能的实施方式中,所述获取多个系统中的元数据,包括:
从目标系统中的元数据信息表中提取第一元数据,所述目标系统为所述多个系统中的任意一个系统;
对所述目标系统中的程序代码进行解析,得到第二元数据,所述程序代码用于生产所述目标系统中的数据表。
在一种可能的实施方式中,当所述多个系统中的元数据包括所述第二元数据时,所述方法还包括:
呈现基于所述第二元数据构建的元数据血缘关系;
响应于针对所述元数据血缘关系的修改操作,获得修正后的元数据血缘关系;
利用所述修正后的元数据血缘关系,对所述元数据血缘图谱进行调整。
在一种可能的实施方式中,所述方法还包括:
呈现所述元数据血缘图谱。
在一种可能的实施方式中,在呈现所述元数据血缘图谱时,所述元数据血缘图谱中的第一节点对应的图标大于所述元数据血缘图谱中的第二节点对应的图标,所述元数据血缘图谱中与所述第一节点连接的节点数量大于与所述第二节点连接的节点数量。
在一种可能的实施方式中,所述呈现所述元数据血缘图谱,包括:
计算所述元数据血缘图谱中不同节点的重要程度以及不同边的重要程度;
根据所述不同节点的重要程度以及不同边的重要程度,呈现所述元数据血缘图谱,其中,重要程度较高的节点的呈现效果比重要程度较低的节点的呈现效果突出,重要程度较高的边的呈现效果比重要程度较低的边的呈现效果突出。
在一种可能的实施方式中,所述呈现所述元数据血缘图谱,包括:
采用分层的图示结构呈现所述元数据血缘图谱,所述元数据血缘图谱中的多个节点分布于不同的层级。
在一种可能的实施方式中,所述元数据血缘图谱还包括各个系统中的字段节点,所述方法还包括:
获取第一查询请求,所述第一查询请求包括输入字段的标识以及过滤条件;
响应所述第一查询请求,呈现所述元数据血缘图谱中的目标节点以及所述目标节点与所述输入字段的节点之间的边,所述目标节点与所述输入字段的节点之间的边满足所述过滤条件。
在一种可能的实施方式中,所述方法还包括:
获取第二查询请求,所述第二查询请求包括第一数据表节点的标识以及第二数据表节点的标识;
响应所述第二查询请求,确定所述元数据血缘图谱中与所述第一数据表相关的第一查询结果以及与所述第二数据表相关的第二查询结果;
对所述第一查询结果以及第二查询结果进行去重,得到目标查询结果;
呈现所述目标查询结果。
在一种可能的实施方式中,所述方法还包括:
获取第三查询请求,所述第三查询请求包括输入节点的标识;
响应所述第三查询请求,呈现所述输入节点对应的关联路径,所述关联路径上包括所述元数据血缘图谱中与所述输入节点相关的多个节点。
第二方面,本申请实施例还提供了一种构建元数据血缘图谱的装置,所述装置包括:
第一获取模块,用于获取多个系统中的元数据以及关系信息,所述关系信息用于指示所述多个系统中的元数据之间的关联关系,所述关系信息包括不同元数据各自对应的源系统标识、源模式标识、源数据表标识、目标系统标识、目标模式标识、目标数据表标识以及业务标识;
遍历模块,用于遍历所述关系信息,确定元数据血缘图谱中的多个节点之间的关系,所述多个节点包括系统节点、模式节点以及数据表节点,所述多个节点对应于所述多个系统中的不同元数据;
生成模块,用于根据所述元数据血缘图谱中的多个节点以及所述多个节点之间的关系,生成所述多个系统中的元数据对应的元数据血缘图谱。
在一种可能的实施方式中,所述多个节点中每个节点的属性,至少包括时间信息。
在一种可能的实施方式中,所述第一获取模块,包括:
提取单元,用于从目标系统中的元数据信息表中提取第一元数据,所述目标系统为所述多个系统中的任意一个系统;
解析单元,用于对所述目标系统中的程序代码进行解析,得到第二元数据,所述程序代码用于生产所述目标系统中的数据表。
在一种可能的实施方式中,所述装置还包括:
第一呈现模块,用于当所述多个系统中的元数据包括所述第二元数据时,呈现基于所述第二元数据构建的元数据血缘关系;
响应模块,用于响应于针对所述元数据血缘关系的修改操作,获得修正后的元数据血缘关系;
调整模块,用于利用所述修正后的元数据血缘关系,对所述元数据血缘图谱进行调整。
在一种可能的实施方式中,所述装置还包括:
第二呈现模块,用于呈现所述元数据血缘图谱。
在一种可能的实施方式中,在呈现所述元数据血缘图谱时,所述元数据血缘图谱中的第一节点对应的图标大于所述元数据血缘图谱中的第二节点对应的图标,所述元数据血缘图谱中与所述第一节点连接的节点数量大于与所述第二节点连接的节点数量。
在一种可能的实施方式中,所述第二呈现模块,包括:
计算单元,用于计算所述元数据血缘图谱中不同节点的重要程度以及不同边的重要程度;
第一呈现单元,用于根据所述不同节点的重要程度以及不同边的重要程度,呈现所述元数据血缘图谱,其中,重要程度较高的节点的呈现效果比重要程度较低的节点的呈现效果突出,重要程度较高的边的呈现效果比重要程度较低的边的呈现效果突出。
在一种可能的实施方式中,所述第二呈现模块,包括:
第二呈现单元,用于采用分层的图示结构呈现所述元数据血缘图谱,所述元数据血缘图谱中的多个节点分布于不同的层级。
在一种可能的实施方式中,所述元数据血缘图谱还包括各个系统中的字段节点,所述装置还包括:
第二获取模块,用于获取第一查询请求,所述第一查询请求包括输入字段的标识以及过滤条件;
第三呈现模块,用于响应所述第一查询请求,呈现所述元数据血缘图谱中的目标节点以及所述目标节点与所述输入字段的节点之间的边,所述目标节点与所述输入字段的节点之间的边满足所述过滤条件。
在一种可能的实施方式中,所述装置还包括:
第三获取模块,用于获取第二查询请求,所述第二查询请求包括第一数据表节点的标识以及第二数据表节点的标识;
确定模块,用于响应所述第二查询请求,确定所述元数据血缘图谱中与所述第一数据表相关的第一查询结果以及与所述第二数据表相关的第二查询结果;
去重模块,用于对所述第一查询结果以及第二查询结果进行去重,得到目标查询结果;
第四呈现模块,用于呈现所述目标查询结果。
在一种可能的实施方式中,所述装置还包括:
第四获取模块,用于获取第三查询请求,所述第三查询请求包括输入节点的标识;
第五呈现模块,用于响应所述第三查询请求,呈现所述输入节点对应的关联路径,所述关联路径上包括所述元数据血缘图谱中与所述输入节点相关的多个节点。
第三方面,本申请实施例还提供了一种计算设备,该设备可以包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行上述第一方面以及第一方面中任一种实施方式所述的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面以及第一方面中任一种实施方式所述的方法。
在本申请实施例的上述实现方式中,获取多个系统中的元数据以及关系信息,其中,关系信息用于指示多个系统中的元数据之间的关联关系,并且,该关系信息包括不同元数据各自对应的源系统标识、源模式标识、源数据表标识、目标系统标识、目标模式标识、目标数据表标识以及业务标识;然后,遍历该关系信息,确定所要构建的元数据血缘图谱中的多个节点之间的关系,该多个节点包括系统节点、模式节点以及数据表节点,该多个节点对应于多个系统中的不同元数据,从而根据元数据血缘图谱中的多个节点以及多个节点之间的关系,生成该多个系统中的元数据对应的元数据血缘图谱。
如此,根据多个系统中的元数据以及关系信息,可以生成跨系统的元数据血缘图谱,从而在存在跨系统的数据管理和分析时,可以利用所构建的元数据血缘图谱,对异常数据进行溯源和/或确定受异常数据影响的其它数据等,满足实际应用的需求。
另外,在构建元数据血缘图谱的过程中,该元数据血缘图谱可以主要包括在不同系统之间进行传递的元数据,而可以不要求各个系统内部的元数据之间的细粒度血缘关系,从而可以降低跨系统构建元数据血缘图谱的难度。实际应用时,各个系统内部的细粒度的元数据血缘关系可以独立构建,并在构建完成后与已构建的跨系统的元数据血缘图谱进行融合即可,无需基于多个系统中的所有元数据重新构建元数据血缘图谱。如此,可以实现元数据血缘图谱的增量构建、丰富整体图谱的内容,提高元数据血缘图谱的扩展性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的一示例性应用场景示意图;
图1b为本申请实施例中一种构建元数据血缘图谱的方法流程示意图;
图2a为一示例性基于多个系统之间的元数据所构建出的元数据血缘图谱的示意图;
图2b为另一示例性元数据血缘图谱的示意图;
图3为又一示例性元数据血缘图谱的示意图;
图4为元数据血缘图谱中的部分结构示意图;
图5为采用分层的图示结构的元数据血缘图谱中的部分结构示意图;
图6为由原始元数据血缘图谱切换至采用分层的图示结构的元数据血缘图谱的示意图;
图7为本申请实施例提供的一示例性查询界面示意图;
图8为三种查询模式下的影响路径示意图;
图9为本申请实施例中一种构建元数据血缘图谱的装置结构示意图;
图10为本申请实施例中一种计算设备的硬件结构示意图。
具体实施方式
目前,通常基于单个系统内的元数据构建相应的元数据血缘图谱,用于根据该元数据血缘图谱实现在单个系统内进行信息管理、影响分析和溯源等。但是,实际应用场景中,不同系统之间通常存在元数据的传递,比如公司内部运行的多个业务系统之间存在数据以及元数据的传递等,此时,在上游业务系统中的数据以及元数据发生变化后,基于各个业务系统单独构建的元数据血缘图谱,难以确定受影响的下游业务系统中的数据;或者,难以根据下游业务系统中的异常数据溯源上游业务系统中的异常数据等。
基于此,本申请实施例提供了一种构建元数据血缘图谱的方法,实现跨系统构建元数据血缘图谱,以满足实际应用场景的需求。具体实现时,获取多个系统中的元数据以及关系信息,其中,关系信息用于指示多个系统中的元数据之间的关联关系,并且,该关系信息包括不同元数据各自对应的源系统标识、源模式标识、源数据表标识、目标系统标识、目标模式标识、目标数据表标识以及业务标识;然后,遍历该关系信息,确定所要构建的元数据血缘图谱中的多个节点之间的关系,该多个节点包括系统节点、模式节点以及数据表节点,该多个节点对应于多个系统中的不同元数据,从而根据元数据血缘图谱中的多个节点以及多个节点之间的关系,生成该多个系统中的元数据对应的元数据血缘图谱。
如此,根据多个系统中的元数据以及关系信息,可以生成跨系统的元数据血缘图谱,从而在存在跨系统的数据管理和分析时,可以利用所构建的元数据血缘图谱,对异常数据进行溯源和/或确定受异常数据影响的其它数据等,满足实际应用的需求。
另外,在构建元数据血缘图谱的过程中,该元数据血缘图谱可以主要包括在不同系统之间进行传递的元数据,而可以不要求各个系统内部的元数据之间的细粒度血缘关系,从而可以降低跨系统构建元数据血缘图谱的难度。实际应用时,各个系统内部的细粒度的元数据血缘关系可以独立构建,并在构建完成后与已构建的跨系统的元数据血缘图谱进行融合即可,无需基于多个系统中的所有元数据重新构建元数据血缘图谱。如此,可以实现元数据血缘图谱的增量构建、丰富整体图谱的内容,提高元数据血缘图谱的扩展性。
示例性地,本申请实施例可以应用于如图1a所示的应用场景。在该应用场景中,多个系统(包括系统1、系统2、系统3等)可以向构建元数据血缘图谱的装置100发送各个系统相互传递的元数据以及用于指示元数据之间的关联关系的关系信息,从而装置100可以根据元数据确定元数据血缘图谱中的多个节点,并通过遍历该关系信息确定多个节点之间的关系,以此生成元数据血缘图谱。
实际应用时,装置100可以独立于各个系统进行部署,比如可以部署于独立于各个系统的终端或者服务器等,或者装置100也可以是与至少一个系统进行集成部署;并且,装置100可以通过硬件实现,如终端或者服务器等,也可以是通过软件实现,如运行在终端或者服务器上的应用程序等,本实施例对此并不进行限定。
为使本申请的上述目标、特征和优点能够更加明显易懂,下面将结合附图对本申请实施例中的各种非限定性实施方式进行示例性说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
参阅图1b,图1b示出了本申请实施例中一种构建元数据血缘图谱的方法流程示意图,该方法可以由图1a中所示的构建元数据血缘图谱的装置100执行,该装置100可以通过硬件实现,也可以通过软件实现。为便于说明与理解,下面装置100执行该方法为例进行说明。该方法具体可以包括:
S101:获取多个系统中的元数据以及关系信息,其中,该关系信息用于指示多个系统中的元数据之间的关联关系,并且,该关系信息包括不同元数据各自对应的源系统标识、源模式标识、源数据表标识、目标系统标识、目标模式标识、目标数据表标识以及业务标识。
实际应用时,不同系统之间基于业务需求,通常会相互传递数据以及用于描述该数据的元数据。比如,系统1可以将融资金额的数据表(数据)以及数据表的名称(元数据)一并发送给系统2,以便系统2对数据表中的信息进行核对和校验等。在此过程中,各个系统在相互传输元数据时,可以记录所传输的元数据以及不同系统之间的元数据之间的关联关系。这样,装置100可以获取多个系统中的元数据以及用于描述不同系统之间的元数据之间的关联关系的关系信息。
示例性地,所获取的关系信息可以是固定格式的关系信息表格,并且,该表格中的每一行可以记录元数据的一条血缘关系,每条血缘关系在表格中的字段可以包括源系统标识(source_system)、源模式标识(source_schema)、源数据表标识(source_table)、目标系统标识(target_system)、目标模式标识(target_schema)、目标数据表标识(target_table)、以及该元数据所属业务的业务标识(task_name)。实际应用时,每条血缘关系在表格中的字段还可以包括其它信息,本实施例对此并不进行限定。
在一种可能的实施方式中,多个系统之间可以通过操作性数据存储(OperationalData Store,ODS)系统的抽取转换加载(Extract-Transform-Load,ETL)操作实现。如此,装置100可以根据各个系统执行的ETL操作所涉及的源系统中的数据以及目标系统中的数据,通过结构化处理或者编程解析等方式,生成统一格式的元数据血缘关系。
具体地,针对多个系统中的任意一个系统,以下称之为目标系统,装置100可以获取目标系统中的元数据信息表,该元数据信息表中记录了系统之间传递的元数据(随数据一并传输),从而装置100可以从目标系统中的元数据信息表中提取出第一元数据,以便基于该第一元数据构建元数据血缘图谱。进一步地,由于目标系统在基于程序代码(如SQL代码)对数据进行连续处理时,会在该处理过程中生成中间字段和中间数据表,表征执行程序代码时的中间步骤的结果,从而产生多个元数据,因此,在其它实现方式中,装置100可以通过对目标系统中的程序代码进行解析,得到第二元数据(也即中间字段、中间数据表分别对应的元数据),以便基于该第二元数据构建元数据血缘图谱。当然,装置100可以通过上述方式同时获得第一元数据以及第二元数据,并以此构建元数据血缘图谱等,本实施例对此并不进行限定。
实际应用时,在不同系统之间基于ETL操作推送数据时,不同系统中的元数据描述可能存在差异。以数据表的名称为例,不同系统中按“.”分割的字段数目可能不严格按“系统名.模式名.数据表名”三段格式组织,因此,装置100可以进行统一对齐处理。比如,若源数据表在数据中全名为:“X1.X2.….XN-1.XN”,当N>2时,装置100所提取的信息为source_system = X1, source_schema= X2.….XN-1,source_table= XN;当N=2时,装置100所提取的信息为source_system = X1, source_schema=“default_schema”,source_table= X2。其中,每条元数据血缘关系中的字段取值为非空字符串。
S102:遍历获取的关系信息,确定元数据血缘图谱中的多个节点之间的关系,其中,该多个节点包括系统节点、模式节点以及数据表节点,多个节点对应于多个系统中的不同元数据。
本实施例中,装置100可以根据各个系统中的元数据,确定所要构建的元数据血缘图谱中的多个节点。具体地,装置100获取的元数据中,可以包括数据表(该数据表为系统之间传输的数据表)的标识、数据表所属模式(schema)的标识以及数据表所属系统的标识,从而装置100可以将数据表的标识作为数据表节点、将数据表所属模式的标识作为模式节点、将数据表所属系统的标识作为系统节点,以此得到元数据血缘图谱中的多个节点。
作为一种实现示例,在确定系统节点时,装置100可以通过结构化查询语言(Structured Query Language,SQL)代码从关系信息表格中提取source_system、target_system两列中系统名称,并在对这两列系统名称取联合体(union)以及进行去重后,即可得到血缘图谱中全部系统节点。进一步地,针对每个系统节点,可以利用预设算法(如uuid算法等)为每个系统节点分配唯一的标识。而在确定模式节点以及数据表节点时,由于不同系统中可能存在相同名称的模式、相同名称的数据表,因此,装置100可以利用元数据全名来区分,避免不同系统中的元数据存在重名。以确定数据表节点为例,数据表节点对应的元数据可以通过“source_system.source_schema.source_table”与按“target_system.target_schema.target_table”组成全名,并在对该元数据全名取联合体(union)以及进行去重后,即可得到血缘图谱中全部数据表节点。进一步地,针对每个数据表节点,可以利用预设算法(如uuid算法等)为每个数据表节点分配唯一的标识。其中,装置100确定模式节点的方式与确定数据表节点的方式类似,可参照上述描述理解,在此不做赘述。
并且,装置100通过遍历关系信息,根据该关系信息所指示的元数据之间的关系,确定节点之间的关系。比如,装置100可以根据关系信息中的source_system、source_schema字段的值,确定各个数据表所属的系统以及模式,从而装置100可以确定与该数据表节点存在关联的模式节点以及系统节点。对于不同系统中的数据表之间的关联关系,装置100可以通过关系信息表格中的“source_system.source_schema.source_table”、“target_system.target_schema.target_table”字段的值确定两个系统中的不同数据表之间的关联关系;不同系统之间的关联关系,可以通过关系信息表格中的“source_system”、“target_system”字段的值进行确定等。
在一种可能的实施方式中,装置100可以基于Neo4j图数据库存储元数据血缘图谱,相应的,装置100可以将关系信息表格中的数据,整合为Neo4j输入标准数据格式信息,包括多个节点的信息和不同节点之间的关系的信息。
S103:根据元数据血缘图谱中的多个节点以及多个节点之间的关系,生成多个系统中的元数据对应的元数据血缘图谱。
具体实现时,装置100可以根据多个节点之间的关系,确定连接不同节点的边,从而根据多个节点以及连接不同节点之间的边,绘制得到元数据血缘图谱,如图2a所示。示例性地,装置100可以利用Neo4j对应的Cypher图数据库语言,生成该元数据血缘图谱等。
值得注意的是,在基于多个系统中的元数据构建元数据血缘图谱时,该多个系统中的元数据可以包括在不同系统之间进行传递的元数据,则,所构建出的元数据血缘图谱可以如图2a所示,该元数据血缘图谱中包括系统节点、模式节点以及数据表节点。而在另一种实现方式中,装置100所获取的多个系统中的元数据,可以包括在不同系统之间进行传递的元数据以及各个系统内部并且未被传递至其它系统的元数据,则所构建的元数据血缘图谱中还可以包括单个系统内的元数据的精细化血缘图谱,以便体现元数据在单个系统内的传递过程,如图2b所示。其中,图2b所示的元数据血缘图谱中,不仅可以包括不同系统之间传递的元数据所对应的节点,还包括各个系统内部传输的元数据所对应的模式节点、数据表节点等。
本实施例中,装置100可以基于系统粒度(即系统节点)、模式粒度(即模式节点)以及数据表粒度(即数据表节点)构建如图2a以及图2b所示的元数据血缘图谱。在进一步可能的实施方式中,还可以在元数据血缘图谱中添加字段粒度的节点。具体地,参见图3,图3所示的元数据血缘图谱,在包括系统节点、模式节点以及数据表节点的基础上,还包括字段节点,该字段节点可以表征数据表中的一个字段(或者称之为属性)。这样,在构建元数据血缘图谱的初期,装置100可以基于实际的业务需求,构建如图2a(或者图2b)所示的跨系统的元数据血缘图谱;而在构建出如图2a(或者图2b)所示的元数据血缘图谱后,还可以根据各个系统内更多数量的元数据,丰富元数据血缘图谱中的信息,构建得到如图3所示的元数据血缘图谱。
其中,装置100在确定元数据血缘图谱中的字段节点时,可以先对元数据进行去重,并从去重后的元数据中识别出字段对应的元数据实体,从而基于各个元数据实体,生成相应的字段节点。并且,装置100还可以从元数据信息表中识别字段节点与数据表节点之间的归属关系,或者从程序代码中解析出字段节点与数据表节点之间的归属关系等,以便装置100根据该归属关系确定连接字段节点与数据表直接的边,并以此构建元数据血缘图谱。
通过上述方式,可以降低前期跨系统构建元数据血缘图谱的难度。而在后期,各个系统内部的细粒度的元数据血缘关系(即包括字段节点的元数据血缘关系)可以独立构建,并在构建完成后与已构建的跨系统的元数据血缘图谱进行融合即可,无需基于多个系统中的所有元数据重新构建元数据血缘图谱,具体可以是将跨系统构建的元数据血缘图谱与基于单个系统中的元数据构建的元数据血缘图谱中相同的节点进行合并,以此实现元数据血缘图谱的融合。如此,可以实现元数据血缘图谱的增量构建、丰富整体图谱的内容,提高元数据血缘图谱的扩展性;并且,在更新跨系统的元数据血缘图谱时,可以不用基于所有的元数据重新生成元数据血缘图谱,从而可以降低更新开销。
当然,装置100也可以直接根据多个系统内的元数据构建出如图3所示的元数据血缘图谱。或者,装置100也可以基于多个系统之间传递的元数据构建出如图2a(或者图2b)所示的元数据血缘图谱,并进一步基于各个系统内的元数据,构建出各个系统分别对应的元数据血缘图谱等,本实施例对此并不进行限定。
进一步地,当构建元数据血缘图谱的元数据中包括从程序代码中解析出的第二元数据时,程序代码表达方式的多样化,可能导致解析得到的元数据血缘关系存在和代码逻辑并不完全等价的问题。因此,装置100还可以呈现基于第二元数据所构建出的元数据血缘关系,如将该元数据血缘关系呈现给审核人员等,以便由审核人员对该元数据血缘关系进行人工校验。并且,当该元数据血缘关系存在错误时,审核人员可以对该元数据血缘关系进行修正(如对元数据血缘关系进行增加、删除和修改等)。相应的,装置100可以响应审核人员针对该元数据血缘关系的修改操作,获得修正后的元数据血缘关系,从而可以利用修正后的元数据血缘关系,生成元数据血缘图谱;或者,装置100可以利用修正后的元数据血缘关系,对已生成的元数据血缘图谱进行相应调整,以便调整后的元数据血缘图谱中所指示的元数据血缘关系正确。
本实施例中,装置100在基于多个系统中的元数据构建出元数据血缘图谱后,还可以向用户呈现该元数据血缘图谱,以实现元数据血缘图谱的可视化。作为一种实现示例,装置100可以利用图嵌入(Graph Embedding)算法,计算得到元数据血缘图谱中的各个节点的高维坐标,然后基于常用降维算法(如t-SNE算法)对各个节点的高维坐标进行降维,得到各个节点对应的二维或三维坐标坐标。例如,元数据血缘图谱中的N个节点的全图节点数据格式:[[A(1,1),…,A(1,D)],…, [A(N,1),…,A(N,D)]],其中,向量[A(j,1),…,A(j,D)]表征是第j个节点的二维或三维坐标,D取值为2或3。示例性地,装置100所采用的图嵌入算法例如可以是DeepWalk算法、LINE算法、Node2Vec算法、Struct2Vec算法中的一种或者多种,或者也可以是采用其它可适用的算法等。然后,装置100可以根据各个节点的坐标,在可视化界面中绘制各个节点,并根据多个节点之间的关系,绘制连接不同节点的边,以此绘制得到元数据血缘图谱。
在进一步可能的实施方式中,在呈现元数据血缘图谱时,对于重要程度较高的节点以及边,装置100可以以更加突出的呈现效果进行呈现,以便于用户在查看元数据血缘图谱时,能够查看到相对更加重要的节点以及边,以此可以展示其它节点对于该重要程度较高的节点的依赖。
具体实现时,以突出展示系统节点以及系统节点之间的边为例,装置100可以统计各个系统向其它系统输出的数据表的第一数量、各个系统接收其它系统发送的数据表的第二数量以及各个系统输入数据表以及输出数据表的总数量,并根据各个系统分别对应的第一数量、第二数量以及总数量,计算该系统对应的系统节点的重要程度。通常情况下,系统节点的重要程度分别与第一数量、第二数量以及总数量呈正相关。实际应用时,由于不同系统传输的数据表的数量可能差异较大,比如,系统A输入以及输出的数据表可能只有几张,而系统B输入以及输出的数据表可能高达几千张,因此,在一种实现示例中,装置100可以先对第一数量、第二数量以及总数量进行对数运算,并基于经过对数运算后的第一数量、第二数量以及总数量计算系统节点的重要程度,以此避免不同系统节点之间的重要程度的差异过大。
并且,装置100还可以统计不同系统之间传输的数据表的数量,从而根据不同系统之间的传输的数据表的数量计算不同系统节点之间的边的重要程度。通常情况下,不同系统之间传输的数据表的数量越大,对应的系统节点之间的边的重要程度越高。
相应的,装置100在呈现元数据血缘图谱时,对于元数据血缘图谱中重要程度较高的系统节点,该系统节点的呈现效果相对更加突出,比如,该系统节点的图标相对更大、图标颜色相对更加鲜艳等。比如,系统节点的图标面积大小,可以通过对该系统节点的重要程度进行求平方根计算得到。类似地,对于元数据血缘图谱中重要程度较高的边,该边的呈现效果相对更加突出,比如,该边的绘制线条相对更粗、边的颜色相对更加鲜艳等。
对于元数据血缘图谱中的其它节点以及其它边,装置100也可以采用相应的方式计算节点与边的重要程度,由于其实现方式可进行多样化设计,在提供上述针对系统节点重要程度计算的实现方式的情况下,本实施例对此不再进行过多赘述。比如,对于元数据血缘图谱中的数据表节点,可以基于主题敏感页面排名(Topic-sensitive Page Rank)算法计算出数据表节点的重要程度等。在进一步可能的实施方式中,部分节点以及边的重要程度,还可以由技术人员进行人为干预,如由技术人员通过创建白名单或者黑名单的方式指定部分节点和/或边的重要程度等,本实施例对此并不进行限定。
或者,对于元数据血缘图谱中的节点,装置100也可以是根据不同节点之间的连接情况,对节点进行突出显示。比如,装置100在呈现元数据血缘图谱时,当元数据血缘图谱中与第一节点连接的其它节点的数量,大于与该元数据血缘图谱中的第二节点连接的其它节点的数量时,表征其它节点对于第一节点的依赖程度较高,则第一节点对应的图标可以大于第二节点的图标,以此可以体现第一节点相对于第二节点的重要程度更高等。本实施例中,对于如何通过图示的方式体现元数据血缘图谱中相对更加重要的部分节点的具体实现并不进行限定。
另外,装置100在生成元数据血缘图谱时,还可以为该元数据血缘图谱中的节点(包括上述系统节点、模式节点、数据表节点以及字段节点中的至少一种)以及边添加属性信息。每个节点对应的属性信息可以包括:节点标识、节点名称(包括中文名和/或英文名等)、时间信息(如传递元数据的时间戳等)、重要程度等。其中,不同节点的属性信息可以存在差异,比如,系统节点的属性信息中还可以包括输入和/或输出的数据表的数量;数据表节点的属性信息中还可以包括与其对应的业务标识(该业务标识所指示业务的数据存储于该数据表中)等。每条边对应的属性信息可以包括:重要程度、时间信息、满足的过滤条件等。
装置100在向用户呈现该元数据血缘图谱时,还可以基于该元数据血缘图谱与用户进行前端交互。
比如,当用户操作控制的光标悬停在元数据血缘图谱中的某个节点上时,装置100可以呈现该节点对应的窗口,并在该窗口中展示该节点的属性信息。并且,当光标移开后,窗口消失。类似的,当用户操作控制的光标悬停在元数据血缘图谱中的某条边上时,装置100可以呈现该条边对应的窗口,并在该窗口中展示这条边的属性信息。并且,当光标移开后,窗口消失。如此,可以实现元数据血缘图谱中的节点、边的多方面属性信息的全面展示,方便用户查看属性信息。
又比如,当用户操作控制的光标移动至元数据血缘图谱中的某个节点上并点击鼠标以选中该节点时,装置100可以将该节点、与该节点直接连接的其它一个或者节点、以及连接的边进行高亮显示,并将元数据血缘图谱中的其他节点和边都做弱化展示。可选地,对于其他节点指向该节点、该节点指向其他节点、该节点与其他节点双向影响的边,装置100可以使用不同的颜色标识。如此,可以方便用户清晰、直白的查看到与各个节点直接相关的节点的信息。
另外,装置100还可以支持切换呈现元数据血缘图谱的方式的功能。具体地,初始情况下,装置100可以基于图2a、图2b或者图3所示的方式呈现元数据血缘图谱,而当用户选择查询某个节点所影响的下游节点(或者影响该节点的上游节点)时,装置100可以是基于分层的图示结构呈现元数据血缘图谱,此时,所呈现的元数据血缘图谱中的多个节点分布于不同的层级。比如,装置100所提供的可视化界面中可以配置有查询控件,初始状态下,装置100所呈现的元数据血缘图谱中的部分结构可以如图4所示,而当用户点击该查询控件时,装置100可以将该可视化界面中基于分层的图示结构呈现元数据血缘图谱,具体可以是将图4所示的元数据血缘图谱切换呈现为图5所示的采用分层图示结构的元数据血缘图谱,其中,图5所呈现的分层图示结构的元数据血缘图谱,可以是图3所示的基于多个系统中的元数据所构建出的元数据血缘图谱的子图。
比如,装置100可以采用分层绘图(Hierarchical Drawing)模型绘制采用分层图示结构的元数据血缘图谱。其中,分层绘图模型则能够按照源节点影响的递进传递性,给出子图中各个节点的层次化坐标布局,并且全部影响路径基本沿某个大方向延伸(例如:从左到右、从上到下等),更加适合表达节点血缘影响关系。其中,分层绘图模型可以采用Sugiyama布局算法实现,下面进行举例说明(对于不同节点之间的溯源关系,也可以采用类似方式进行呈现)。
操作1:装置100可以对原始元数据血缘图谱的子图谱中的节点进行排序并指定层数。具体的,装置100可以先确定原始元数据血缘图谱是否存在环(由多个节点与边之间的连接构成),若存在环,则装置可以通过对部分边进行翻转,将原始元数据血缘图谱转换为有向无环图(Directed Acyclic Graph,DAG)。并且,对于DAG图中每个节点分配层数值(层数值取值为非负整数,相同层数值允许有多个节点),起始源节点的层数值设为0。对任意节点对<A,B>,若存在从A指向B的边,则A层数值必须小于B层数值。装置100分配节点层数后,如果A指向B的边跨越L层(L>1),则在A,B之间增加(L-1)个辅助节点V1,…,VL-1,将A,B直接相连修改为一条路径A-> V1-> … ->VL-1->B,其中每一跳节点都只间隔1层。如此,可以得到如图6所示的子图谱a。
操作2:装置100可以调整层内节点顺序以减少边交叉。具体地,装置100可以调整各层内节点(含辅助节点)从左到右顺序,使得DAG图中发生交叉的边数目最小化。示例性地,装置100可以采用启发式算法计算:首先,装置100可以自顶向下遍历各层,只调整当前层下面一层节点的顺序减小边交叉;然后,装置100自底向上遍历各层,只调整当前层上面一层节点的顺序减小边交叉,如此循环多次直到不能再减少边交叉数目为止。如此,可以得到如图6所示的子图谱b。
操作3:装置100可以对节点进行微调并为节点分配x坐标、y坐标。具体地,装置100可保持节点层数和每层节点顺序不变,进一步左右微调节点(例如,左侧右侧节点尽量平衡、边尽量竖直向下),最终确定每个节点x方向坐标,并将节点层数值作为y坐标。然后,装置100删除辅助节点信息。如此,可以得到如图6所示的子图谱c。进一步的,位于不同层的节点,可以通过不同颜色进行区别,其中,相同颜色的多个节点指示这些节点位于同一层,不同颜色的节点指示这些节点位于不同层。
本实施例中,装置100不仅向用户呈现元数据血缘图谱(或者子图谱),还支持用户基于该元数据血缘图谱进行数据查询。
示例性地,装置100可以用户提供如图7所示的查询界面,该查询界面提供搜索输入框,从而用户可以向该搜索输入框中输入元数据,并通过点击“查询”按钮以请求查询元数据血缘图谱中与该元数据相关的其它元数据(以便进行影响分析或者问题溯源等)。如此,装置100可以根据用户输入的元数据以及触发的查询操作,通过遍历该元数据血缘图谱,查询到与用户输入的元数据相关的其它元数据并在该查询界面中输出。
作为一种实现示例,用户在搜索输入框中输入全部或部分元数据名称。装置100可以搜索返回所有全名匹配到输入的元数据列表,并按BM25相似度排序,并对表字段、数据表、系统等不同粒度元数据分组呈现。其中,对于较细粒度元数据,装置100还可以由其归属的较粗粒度的元数据查找到。例如,对数据表节点A,其全称为“system1.schema1.my_table1”,则用户输入“table1”或“schema1”时,装置100都能够在返回数据表类型元数据列表中找到A。也可以搜索用空格连接的“schema1”+“ ”+“table1”,即同时包含这两个字符串的元数据全名,可以将候选结果列表有效缩减。进一步地,装置100所输出的查询结果中的每个元数据单元,均可以包含一个影响查询按钮,从而用户点击后,装置100可以从数据库中按全名找到节点id,并触发元数据血缘图谱的影响查询。实际应用时,装置100所输出的查询结果中还可以包括溯源查询按钮,以便用户点击该溯源查询按钮后,装置100可以从数据库中按全名找到节点id,并触发元数据血缘图谱的溯源查询。
而在另一种实现示例中,装置100可以通过不同粒度元数据的包含关系,使用多个联动的选择框,定位到初始源节点。例如,当用户对数据表节点A=“system2.schema2.table2.column2”进行影响查询时,查询界面(如网页等)中可以设置有包含4个联动的选择框。这样,用户可以在选择框1中选择“system2”,然后触发选择框2中只保留该系统全部schema集合从中选择“schema2”,依次操作剩余选择框直到准确定位到源节点A。如此,用户点击查询按钮后,装置100可以从数据库中按全名找到节点id,并触发血缘图谱的影响查询。
除了上述基础的元数据查询功能之外,本实施例还提供了以下几种查询功能。
功能1:根据过滤条件查询元数据。
为便于理解,下面以针对字段进行查询和过滤为例。
具体地,当元数据血缘图谱中包括字段节点时,用户不仅可以在装置100提供的可视化界面中输入字段的标识,还可以输入过滤条件。其中,过滤条件,是指用于对元数据所描述的数据进行处理时所满足的约束条件。示例性地,过滤条件,例如可以是where条件、join条件等条件。可以理解,不同字段节点之间的边,表征了元数据(以及数据)在两个元数据实体之间的处理过程,并且,在进行数据处理时可能基于约束条件处理一个元数据实体对应的数据以得到另一个元数据实体对应的数据。比如,以查询数据时,查询语句可能为:select A form table_B where name=“张”(即从表格B中查询出姓为“张”的数据),则,约束条件(也即过滤条件)为“where name=“张””。
这样,前端的可视化界面可以生成包括输入字段的标识以及过滤条件的第一查询请求,并将其发送给装置100。装置100可以对接收到的第一查询请求进行解析,并针对解析得到的用户输入的过滤条件,根据元数据血缘图谱中不同节点之间的边所对应的数据处理过程,确定满足该过滤条件的边以及相应的目标节点,并将其呈现给用户。其中,目标节点位于输入字段的节点所在的路径,并且,可以存在部分目标节点与该输入字段的节点之间不直接连接。示例性地,装置100可以基于所确定出的满足该过滤条件的边,绘制子图谱(即元数据血缘图谱中的一部分图谱),并将该子图谱通过可视化界面呈现给用户。进一步地,装置100在呈现子图谱的同时,还可以将子图谱中的一条或者多条边的信息呈现给用户,比如还可以呈现每条边的时间信息或者重要程度等。
本实施例中,在用户未输入过滤条件的情况下,装置100可以根据用户输入的字段节点,呈现基于与该输入字段的节点相关的目标节点以及边绘制得到的子图谱,其子图谱中的目标节点与该输入字段的节点之间的边所满足的过滤条件可以包括所有条件。并且,装置100可以通过展示不同颜色的边来体现各条边分别满足的过滤条件。比如,装置100在呈现子图谱时,该子图谱中的红色的边表征元数据满足join条件、蓝色的边表征元数据满足where条件,以便用户根据边的颜色(或者其它方式)区分元数据对应的过滤条件,提高可视化效果。而在用户输入过滤条件的情况下,装置100可以仅呈现满足该过滤条件的边所对应的子图谱。
实际应用时,数据可能会在多个系统之间进行传递,这使得针对用户输入的元数据所对应的字段节点(以及过滤条件),可能在元数据血缘图谱中存在较多数量的节点以及边与其相关,从而导致装置100所呈现的该字段节点所在的一条或者多条路径(由节点以及节点之间的边构成)过长,可视化效果较低。因此,在一种可能的实施方式中,装置100还可以限制所确定/呈现的单条路径上包括的节点的最大数量(如15等),从而装置100最终所呈现的子图谱中,字段节点所在的每条路径上的节点数量均不超过该最大数量。其中,该最大数量可以由用户在可视化界面中进行设定,也可以是由装置100自动化设定等,本实施例对此并不进行限定。如此,在提高可视化效果的同时,也能在装置100在当前路径上搜索到的节点数量达到最大数量时在当前路径上停止搜索,以此可以避免过大范围的搜索而导致搜索时延过高。
当然,上述是以针对字段节点进行过滤查询为例,实际应用时,针对数据表节点、模式节点等也可以采用类似方式进行过滤查询,具体可参照上述过程进行理解,在此不做赘述。
功能2:批量查询。
为便于理解,下面以批量查询数据表为例进行示例性说明。
用户可以在前端的可视化界面中同时输入多个数据表节点的标识,以输入第一数据表节点的标识以及第二数据表节点的标识为例。前端的可视化界面可以生成包括该第一数据表节点的标识以及第二数据表节点的标识的第二查询请求,并将该第二查询请求发送给装置100。装置100可以对接收到的第三查询请求进行解析,并分别根据解析得到的第一数据表节点的标识以及第二数据表节点的标识,得到元数据血缘图谱中与第一数据表相关的第一查询结果以及与第二数据表相关的第二查询结果。由于第一数据表节点以及第二数据表节点可能会对其它相同的一个或者多个节点均产生影响,因此,装置100可以对第一查询结果以及第二查询结果进行去重,得到最终的目标查询结果,例如可以包括接收该数据表的系统信息、数据表在其它系统中的所属模式信息、数据表在其它系统中的标识等,并将该目标查询结果呈现给用户。如此,可以通过对多个查询结果进行合并,避免最终呈现的查询结果出现重复内容,影响用户体验。
当然,上述是以针对数据表进行查询和合并去重为例,实际应用时,针对字段节点等也可以采用类似方式进行查询去重,具体可参照上述过程进行理解,在此不做赘述。
功能3:关联路径(如影响路径、溯源路径等)查询。
用户可以在前端的可视化界面中输入一个或者多个节点(以下称之为输入节点)的标识,并由前端生成包括该输入节点的标识的第三查询请求,并将其发送给装置100。装置100可以对接收到的第三查询请求进行解析,并根据解析得到的输入节点的标识,查询元数据血缘图谱,确定与该输入节点存在关联的一个或者多个节点(也即沿着元数据传递方向上的节点),从而基于所确定的一个或者多个节点生成该输入节点对应的关联路径,该一个或者多个节点位于该关联路径。然后,装置100可以在可视化界面上呈现该关联路径,以便用户可以通过该关联路径查看到输入节点所影响的其它节点。另外,当用户选中该关联路径上的一个或者多个节点时,装置100还可以在弹出的窗口中呈现用户选中的节点的相关信息等。
进一步地,由于实际应用场景中元数据血缘图谱中包括的节点数量可能较多,因此,装置100可以限制所要查询的每条关联路径上的节点数量,以此在提高可视化效果的同时,也能避免过大范围的搜索而导致搜索时延过高。
在一些实现示例中,装置100可以支持三种模式来查询输入节点的关联路径。其中,模式1:在单个系统中查询输入节点的关联路径;模式2:在模式1的基础上,扩展到多个系统之间的关联路径,以此可以方便用户查看到该输入节点所影响的其它系统;模式3:在模式2的基础上,扩展到一个或者多个其它系统内的关联路径,以此可以方便用户查看到该输入节点在其它系统内的关联路径。
以关联路径具体为影响路径为例(影响路径上的其它节点均为被输入节点所影响),用户在前端输入节点为图8中的源节点X,则,装置100可以在用户请求查询后先呈现如图8中模式1对应的影响路径。当用户确定进一步查看输入节点所影响的其它系统时,装置100可以进一步呈现如图8中模式2对应的影响路径。而当用户确定进一步查看输入节点在其它系统内的影响路径时,装置100可以进一步呈现如图8中模式3对应的影响路径。
进一步地,当用户在前端的可视化界面中同时输入两个系统中的输入节点时,装置100还可以呈现这两个系统中的输入节点之间的关联路径等。
值得注意的是,本实施例提供的上述功能仅作为一些示例性说明,实际应用时,装置100还可以提供其它功能,本实施例对此并不进行限定。并且,装置100还可以提供元数据血缘图谱的查询以及可视化的功能页,支持用户对于该功能页的切换,降低用户与装置100交互的复杂度、提高查询展示效率。
此外,本申请实施例还提供了一种构建元数据血缘图谱的装置。参阅图9,图9示出了本申请实施例中一种构建元数据血缘图谱的装置的结构示意图,该装置900包括:
第一获取模块901,用于获取多个系统中的元数据以及关系信息,所述关系信息用于指示所述多个系统中的元数据之间的关联关系,所述关系信息包括不同元数据各自对应的源系统标识、源模式标识、源数据表标识、目标系统标识、目标模式标识、目标数据表标识以及业务标识;
遍历模块902,用于遍历所述关系信息,确定元数据血缘图谱中的多个节点之间的关系,所述多个节点包括系统节点、模式节点以及数据表节点,所述多个节点对应于所述多个系统中的不同元数据;
生成模块903,用于根据所述元数据血缘图谱中的多个节点以及所述多个节点之间的关系,生成所述多个系统中的元数据对应的元数据血缘图谱。
在一种可能的实施方式中,所述多个节点中每个节点的属性,至少包括时间信息。
在一种可能的实施方式中,所述第一获取模块901,包括:
提取单元,用于从目标系统中的元数据信息表中提取第一元数据,所述目标系统为所述多个系统中的任意一个系统;
解析单元,用于对所述目标系统中的程序代码进行解析,得到第二元数据,所述程序代码用于生产所述目标系统中的数据表。
在一种可能的实施方式中,所述装置900还包括:
第一呈现模块,用于当所述多个系统中的元数据包括所述第二元数据时,呈现基于所述第二元数据构建的元数据血缘关系;
响应模块,用于响应于针对所述元数据血缘关系的修改操作,获得修正后的元数据血缘关系;
调整模块,用于利用所述修正后的元数据血缘关系,对所述元数据血缘图谱进行调整。
在一种可能的实施方式中,所述装置900还包括:
第二呈现模块,用于呈现所述元数据血缘图谱。
在一种可能的实施方式中,在呈现所述元数据血缘图谱时,所述元数据血缘图谱中的第一节点对应的图标大于所述元数据血缘图谱中的第二节点对应的图标,所述元数据血缘图谱中与所述第一节点连接的节点数量大于与所述第二节点连接的节点数量。
在一种可能的实施方式中,所述第二呈现模块,包括:
计算单元,用于计算所述元数据血缘图谱中不同节点的重要程度以及不同边的重要程度;
第一呈现单元,用于根据所述不同节点的重要程度以及不同边的重要程度,呈现所述元数据血缘图谱,其中,重要程度较高的节点的呈现效果比重要程度较低的节点的呈现效果突出,重要程度较高的边的呈现效果比重要程度较低的边的呈现效果突出。
在一种可能的实施方式中,所述第二呈现模块,包括:
第二呈现单元,用于采用分层的图示结构呈现所述元数据血缘图谱,所述元数据血缘图谱中的多个节点分布于不同的层级。
在一种可能的实施方式中,所述元数据血缘图谱还包括各个系统中的字段节点,所述装置900还包括:
第二获取模块,用于获取第一查询请求,所述第一查询请求包括输入字段的标识以及过滤条件;
第三呈现模块,用于响应所述第一查询请求,呈现所述元数据血缘图谱中的目标节点以及所述目标节点与所述输入字段的节点之间的边,所述目标节点与所述输入字段的节点之间的边满足所述过滤条件。
在一种可能的实施方式中,所述装置900还包括:
第三获取模块,用于获取第二查询请求,所述第二查询请求包括第一数据表节点的标识以及第二数据表节点的标识;
确定模块,用于响应所述第二查询请求,确定所述元数据血缘图谱中与所述第一数据表相关的第一查询结果以及与所述第二数据表相关的第二查询结果;
去重模块,用于对所述第一查询结果以及第二查询结果进行去重,得到目标查询结果;
第四呈现模块,用于呈现所述目标查询结果。
在一种可能的实施方式中,所述装置900还包括:
第四获取模块,用于获取第三查询请求,所述第三查询请求包括输入节点的标识;
第五呈现模块,用于响应所述第三查询请求,呈现所述输入节点对应的关联路径,所述关联路径上包括所述元数据血缘图谱中与所述输入节点相关的多个节点。
需要说明的是,上述装置各模块、单元之间的信息交互、执行过程等内容,由于与本申请实施例中方法实施例基于同一构思,其带来的技术效果与本申请实施例中方法实施例相同,具体内容可参见本申请实施例前述所示的方法实施例中的叙述,此处不再赘述。
此外,本申请实施例还提供了一种计算设备。参阅图10,图10示出了本申请实施例中一种计算设备的硬件结构示意图,该设备1000可以包括处理器1001以及存储器1002。
其中,所述存储器1002,用于存储计算机程序;
所述处理器1001,用于根据所述计算机程序执行上述方法实施例中所述的构建元数据血缘图谱的方法。
另外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方法实施例中所述的构建元数据血缘图谱的方法。
本申请实施例中提到的“第一元数据”、“第一节点”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”、“第三”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目标。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。

Claims (14)

1.一种构建元数据血缘图谱的方法,其特征在于,所述方法包括:
获取多个系统中的元数据以及关系信息,所述关系信息用于指示所述多个系统中的元数据之间的关联关系,所述关系信息包括不同元数据各自对应的源系统标识、源模式标识、源数据表标识、目标系统标识、目标模式标识、目标数据表标识以及业务标识,所述源系统标识、所述源模式标识、所述源数据表标识、所述目标系统标识、所述目标模式标识、所述目标数据表标识用于指示所述多个系统中的不同数据表之间的关联关系,所述多个系统中的元数据包括从程序代码中解析出的所述程序代码处理数据时生成的中间字段和中间数据表所对应第二元数据;
遍历所述关系信息,确定元数据血缘图谱中的多个节点之间的关系,所述多个节点包括系统节点、模式节点以及数据表节点,所述多个节点对应于所述多个系统中的不同元数据;
根据所述元数据血缘图谱中的多个节点以及所述多个节点之间的关系,生成所述多个系统中的元数据对应的元数据血缘图谱。
2.根据权利要求1所述的方法,其特征在于,所述多个节点中每个节点的属性,至少包括时间信息。
3.根据权利要求1所述的方法,其特征在于,所述获取多个系统中的元数据,包括:
从目标系统中的元数据信息表中提取第一元数据,所述目标系统为所述多个系统中的任意一个系统;
对所述目标系统中的程序代码进行解析,得到第二元数据,所述程序代码用于生产所述目标系统中的数据表。
4.根据权利要求3所述的方法,其特征在于,当所述多个系统中的元数据包括所述第二元数据时,所述方法还包括:
呈现基于所述第二元数据构建的元数据血缘关系;
响应于针对所述元数据血缘关系的修改操作,获得修正后的元数据血缘关系;
利用所述修正后的元数据血缘关系,对所述元数据血缘图谱进行调整。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
呈现所述元数据血缘图谱。
6.根据权利要求5所述的方法,其特征在于,在呈现所述元数据血缘图谱时,所述元数据血缘图谱中的第一节点对应的图标大于所述元数据血缘图谱中的第二节点对应的图标,所述元数据血缘图谱中与所述第一节点连接的节点数量大于与所述第二节点连接的节点数量。
7.根据权利要求5所述的方法,其特征在于,所述呈现所述元数据血缘图谱,包括:
计算所述元数据血缘图谱中不同节点的重要程度以及不同边的重要程度;
根据所述不同节点的重要程度以及不同边的重要程度,呈现所述元数据血缘图谱,其中,第一节点的呈现效果比第二节点的呈现效果突出,所述第一节点的重要程度高于所述第二节点的重要程度,第一边的呈现效果比第二边的呈现效果突出,所述第一边的重要程度高于所述第二边的重要程度。
8.根据权利要求5所述的方法,其特征在于,所述呈现所述元数据血缘图谱,包括:
采用分层的图示结构呈现所述元数据血缘图谱,所述元数据血缘图谱中的多个节点分布于不同的层级。
9.根据权利要求5所述的方法,其特征在于,所述元数据血缘图谱还包括各个系统中的字段节点,所述方法还包括:
获取第一查询请求,所述第一查询请求包括输入字段的标识以及过滤条件;
响应所述第一查询请求,呈现所述元数据血缘图谱中的目标节点以及所述目标节点与所述输入字段的节点之间的边,所述目标节点与所述输入字段的节点之间的边满足所述过滤条件。
10.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取第二查询请求,所述第二查询请求包括第一数据表节点的标识以及第二数据表节点的标识;
响应所述第二查询请求,确定所述元数据血缘图谱中与所述第一数据表相关的第一查询结果以及与所述第二数据表相关的第二查询结果;
对所述第一查询结果以及第二查询结果进行去重,得到目标查询结果;
呈现所述目标查询结果。
11.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取第三查询请求,所述第三查询请求包括输入节点的标识;
响应所述第三查询请求,呈现所述输入节点对应的关联路径,所述关联路径上包括所述元数据血缘图谱中与所述输入节点相关的多个节点。
12.一种构建元数据血缘图谱的装置,其特征在于,所述装置包括:
获取模块,用于获取多个系统中的元数据以及关系信息,所述关系信息用于指示所述多个系统中的元数据之间的关联关系,所述关系信息包括不同元数据各自对应的源系统标识、源模式标识、源数据表标识、目标系统标识、目标模式标识、目标数据表标识以及业务标识,所述源系统标识、所述源模式标识、所述源数据表标识、所述目标系统标识、所述目标模式标识、所述目标数据表标识用于指示所述多个系统中的不同数据表之间的关联关系,所述多个系统中的元数据包括从程序代码中解析出的所述程序代码处理数据时生成的中间字段和中间数据表所对应第二元数据;
遍历模块,用于遍历所述关系信息,确定元数据血缘图谱中的多个节点之间的关系,所述多个节点包括系统节点、模式节点以及数据表节点,所述多个节点对应于所述多个系统中的不同元数据;
生成模块,用于根据所述元数据血缘图谱中的多个节点以及所述多个节点之间的关系,生成所述多个系统中的元数据对应的元数据血缘图谱。
13.一种计算设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1-11中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-11中任一项所述的方法。
CN202210414959.4A 2022-04-20 2022-04-20 一种构建元数据血缘图谱的方法、装置及相关设备 Active CN114510611B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210414959.4A CN114510611B (zh) 2022-04-20 2022-04-20 一种构建元数据血缘图谱的方法、装置及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210414959.4A CN114510611B (zh) 2022-04-20 2022-04-20 一种构建元数据血缘图谱的方法、装置及相关设备

Publications (2)

Publication Number Publication Date
CN114510611A CN114510611A (zh) 2022-05-17
CN114510611B true CN114510611B (zh) 2022-07-05

Family

ID=81555226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210414959.4A Active CN114510611B (zh) 2022-04-20 2022-04-20 一种构建元数据血缘图谱的方法、装置及相关设备

Country Status (1)

Country Link
CN (1) CN114510611B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115168605A (zh) * 2022-06-28 2022-10-11 青岛海尔科技有限公司 图谱的确定方法和装置、存储介质及电子装置
CN117290355B (zh) * 2023-08-29 2024-05-14 云启智慧科技有限公司 一种元数据地图构建系统
CN116932831B (zh) * 2023-09-14 2023-12-26 北京滴普科技有限公司 一种数据血缘图的构建方法及装置
CN117312331B (zh) * 2023-12-01 2024-03-29 浪潮云信息技术股份公司 一种元数据血缘分析方法、装置、设备及存储介质
CN117891979B (zh) * 2024-03-15 2024-05-17 中信证券股份有限公司 血缘图谱构建方法、装置、电子设备和可读介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739893A (zh) * 2018-12-28 2019-05-10 上海连尚网络科技有限公司 一种元数据管理方法、设备及计算机可读介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9411890B2 (en) * 2012-04-04 2016-08-09 Google Inc. Graph-based search queries using web content metadata
US11093553B2 (en) * 2015-12-17 2021-08-17 Business Objects Software Ltd Graph database visualization by node and edge type
US10803014B2 (en) * 2017-07-28 2020-10-13 Adp, Llc Dynamic data relationships in a graph database
CN109614433B (zh) * 2018-12-13 2022-02-15 杭州数梦工场科技有限公司 业务系统间数据血缘的识别方法、装置、设备及存储介质
CN113010616A (zh) * 2021-04-26 2021-06-22 广州小鹏汽车科技有限公司 数据处理方法和数据处理系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739893A (zh) * 2018-12-28 2019-05-10 上海连尚网络科技有限公司 一种元数据管理方法、设备及计算机可读介质

Also Published As

Publication number Publication date
CN114510611A (zh) 2022-05-17

Similar Documents

Publication Publication Date Title
CN114510611B (zh) 一种构建元数据血缘图谱的方法、装置及相关设备
CN111542813B (zh) 使用异构数据的对象模型来便于建立数据可视化
US8726177B2 (en) Systems and methods for generating a database query using a graphical user interface
CN113272801A (zh) 根据选择的数据源的对象模型生成数据可视化
CN107111639B (zh) 构建报表
US20170193116A1 (en) Indirect Filtering in Blended Data Operations
US10579678B2 (en) Dynamic hierarchy generation based on graph data
US10140325B2 (en) Data source identification mapping in blended data operations
US20140330821A1 (en) Recommending context based actions for data visualizations
JP2017500664A (ja) 多ディメンション・データー構造に対する実行のためのクエリー構築
CN110515896B (zh) 模型资源管理方法、模型文件制作方法、装置和系统
KR20210041554A (ko) 데이터베이스 레코드들을 비교하고 선택적으로 병합하기 위한 시스템 및 방법
US20210397601A1 (en) Enforcing path consistency in graph database path query evaluation
CN109408502A (zh) 一种数据标准处理方法、装置及其存储介质
US10983997B2 (en) Path query evaluation in graph databases
CN114817558A (zh) 一种构建子图模型进行图谱查询的方法
US20200334052A1 (en) Providing user interfaces based on data source semantics
KR102353806B1 (ko) 그래프 데이터 베이스 기반 의사 결정 지원 방법 및 시스템
KR20140104544A (ko) 의미 데이터 구축을 위한 시스템 및 방법
Catania et al. Recurring Retrieval Needs in Diverse and Dynamic Dataspaces: Issues and Reference Framework.
CN117909734A (zh) 标签生成装置、方法、电子设备和计算机可读存储介质
AU2014201362A1 (en) A Data Management System
CN117891979A (zh) 血缘图谱构建方法、装置、电子设备和可读介质
CN114610791A (zh) 数据血缘关系的分析方法、装置、计算机设备及存储介质
CN116415004A (zh) 知识图谱构建方法及装置、存储介质及电子设备

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