CN115934855B - 一种全链路字段级血缘解析方法、系统、设备及存储介质 - Google Patents
一种全链路字段级血缘解析方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115934855B CN115934855B CN202211526385.6A CN202211526385A CN115934855B CN 115934855 B CN115934855 B CN 115934855B CN 202211526385 A CN202211526385 A CN 202211526385A CN 115934855 B CN115934855 B CN 115934855B
- Authority
- CN
- China
- Prior art keywords
- field
- blood
- relation
- edge
- sql
- 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
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种全链路字段级血缘解析方法、系统、设备及存储介质,通过响应于Hive引擎执行sql脚本完成,获取对应的sql字段关系并封装成血缘服务消息写入MQ消息队列,实时读取MQ消息队列中的血缘服务消息,解析得到对应的sql字段关系并生成对应的字段关联关系存入关系型数据库后,响应于血缘关系查询请求,解析得到待查询血缘数据,并根据待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息以及根据血缘展示信息生成血缘链路关系图进行展示和更新的方法,不仅能保证字段级血缘数据的准确率,而且能准确溯源每个血缘字段,便于多个血缘数据串联展示,还能保证血缘链路数据存储、查询和更新的灵活性。
Description
技术领域
本发明涉及大数据的数据治理技术领域,特别是涉及一种基于大数据集群的全链路字段级血缘解析方法、系统、计算机设备和存储介质。
背景技术
数据血缘是大数据行业中通过对数据仓库的数据集合进行融合、联合、转换、变换等操作生成新的数据集合,在数据与数据之间会串成一条链路,从而自然地形成的一种上下游的依赖关系。在使用大数据相关技术进行数据加工处理时,经常会面临着数据回溯和影响分析问题的处理,就需要及时且准确地获取能够表示数据生产过程链路关系的数据血缘。
现有行业内针对大数据集群的字段级血缘解析的方法主要有两种:第一种是利用常用的druid框架去解析单个sql的字段血缘关系,该框架内部实现了大部分的解析功能,可以根据sql生成AST语法树,并提供了相关了api可以提取字段间的血缘;第二种是开发人员自行解析sql生成AST语法树,并通过AST语法树提取字段关系。虽然上述两种方案都能够提供数据血缘解析,但二者明显都是基于解析sql得到AST语法树作进一步解析的技术方案,且各自存在着应用缺陷:第一种方案不能很好的兼容hive数据库的语法,不能保证解析结果的准确性;第二种方案需要开发人员自行解析sql得到AST语法树,不仅对于开发人员的技能要求非常高,而且针对结构复杂多变的sql很难保证准确率,还存在解析sql逻辑需要随数据库语法版本的更新而更新,实现难度高且运维成本较高。
因此,亟需一种能够简单有效且能保证血缘解析精准性的全链路字段级血缘解析方法。
发明内容
本发明的目的是提供一种全链路字段级血缘解析方法,通过重写Hive解析sql的hook函数获取准确的sql字段关系数据,并基于此设计特殊的字段关联关系结构,且采用具有递归查询特性的PostgreSQL数据库存储管理,实现多个sql的血缘关系的有效串联整合,解决现有大数据集群字段级血缘解析方法的应用缺陷,提供简单高效且准确的大数据集群sql解析,支持数据表和字段的精准溯源,以及多个sql间字段血缘关系串联展示,且提供血缘链路数据的灵活存储、查询和更新,为数据治理提供可靠且高效的技术支持。
为了实现上述目的,有必要针对上述技术问题,提供了一种全链路字段级血缘解析方法、系统、计算机设备和存储介质。
第一方面,本发明实施例提供了一种全链路字段级血缘解析方法,所述方法包括以下步骤:
响应于Hive引擎执行sql脚本完成,获取对应的sql字段关系,并将所述sql字段关系封装成血缘服务消息写入MQ消息队列;所述sql字段关系包括字段映射关系和表映射关系;
实时读取所述MQ消息队列中的所述血缘服务消息,解析得到对应的sql字段关系,并根据所述sql字段关系生成对应的字段关联关系,以及将所述字段关联关系存入关系型数据库;
响应于血缘关系查询请求,解析得到待查询血缘数据,并根据所述待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息,以及根据所述血缘展示信息生成血缘链路关系图进行展示;所述元数据管理库用于存储和管理大数据集群内的元数据;所述元数据包括表结构数据和字段数据。
进一步地,所述方法还包括:
响应于所述元数据管理库的血缘变更请求,更新所述关系型数据库中对应字段关联关系的状态字段,并根据更新后的关系型数据库,同步更新对应的血缘链路关系图;所述血缘变更请求包括表删除请求、表增加请求、字段删除请求和字段增加请求;所述状态字段包括有效和失效。
进一步地,所述关系型数据库为PostgreSQL数据库;所述关系型数据库包括通过pgpool-ii工具实现自动切换的主关系型数据库和备关系型数据库。
进一步地,所述根据所述sql字段关系生成对应的字段关联关系的步骤包括:
解析所述sql字段关系,得到映射关系数据;所述映射关系数据包括字段映射关系和hashcode编码;
对所述映射关系数据进行清洗和整合,得到所述字段关联关系;所述字段关联关系包括hashcode编码、来源库、来源表、来源字段、目标库、目标表、目标字段和状态字段。
进一步地,所述待查询血缘数据包括待查询库名、待查询表名和待查询字段名;
所述根据所述待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息的步骤包括:
根据所述待查询血缘数据查询所述关系型数据库,得到对应的待查询元数据;
根据所述待查询元数据查询元数据管理库得到对应的元数据关联信息,并将所述待查询元数据和对应的元数据关联信息合并,得到所述血缘展示信息。
进一步地,所述响应于所述元数据管理库的血缘变更请求,更新所述关系型数据库中对应字段关联关系的状态字段的步骤包括:
接收并解析所述元数据管理库的血缘变更请求,得到血缘变更信息;所述血缘变更信息包括待变更库名、待变更表名、待变更字段名和变更状态;所述变更状态包括血缘上线和血缘下线;
根据所述血缘变更信息,查询并更新所述关系型数据库中对应字段关联关系的状态字段。
第二方面,本发明实施例提供了一种全链路字段级血缘解析系统,所述系统包括:
字段关系提取模块,用于响应于Hive引擎执行sql脚本完成,获取对应的sql字段关系,并将所述sql字段关系封装成血缘服务消息写入MQ消息队列;所述sql字段关系包括字段映射关系和表映射关系;
血缘清洗整合模块,用于实时读取所述MQ消息队列中的所述血缘服务消息,解析得到对应的sql字段关系,并根据所述sql字段关系生成对应的字段关联关系,以及将所述字段关联关系存入关系型数据库;
血缘查询服务模块,用于响应于血缘关系查询请求,解析得到待查询血缘数据,并根据所述待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息,以及根据所述血缘展示信息生成血缘链路关系图进行展示;
元数据管理库,用于存储和管理大数据集群内的元数据;所述元数据包括表结构数据和字段数据。
进一步地,所述系统还包括:
血缘更新服务模块,用于响应于所述元数据管理库的血缘变更请求,更新所述关系型数据库中对应字段关联关系的状态字段,并根据更新后的关系型数据库,同步更新对应的血缘链路关系图;所述血缘变更请求包括表删除请求、表增加请求、字段删除请求和字段增加请求;所述状态字段包括有效和失效。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述本申请提供了一种全链路字段级血缘解析方法、系统、计算机设备及存储介质,通过所述方法,实现了通过响应于Hive引擎执行sql脚本完成,获取对应的sql字段关系并封装成血缘服务消息写入MQ消息队列,实时读取MQ消息队列中的血缘服务消息,解析得到对应的sql字段关系并生成对应的字段关联关系存入关系型数据库后,响应于血缘关系查询请求,解析得到待查询血缘数据,并根据待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息以及根据血缘展示信息生成血缘链路关系图进行展示,且实时更新血缘链路关系图的技术方案。与现有技术相比,该全链路字段级血缘解析方法,不仅通过重写Hive解析sql的hook函数获取准确的sql字段关系数据,提供简单高效且准确的大数据集群sql解析,而且通过采用MQ消息队列对大数据集群和字段血缘清洗服务进行解耦,有效减少字段级血缘分析功能对大数据集群脚本机资源的损耗,还通过设计的特殊字段关联关系结构,结合具有递归查询特性的PostgreSQL数据库存储管理,支持数据表和字段的精准溯源的同时,实现了多个sql的血缘关系的有效串联整合和展示,便于了解字段的整个加工使用血缘链路信息,且提供血缘链路数据的灵活存储、查询和更新,为数据治理提供可靠且高效的技术支持。
附图说明
图1是本发明实施例中全链路字段级血缘解析方法的应用场景示意图;
图2是本发明实施例中全链路字段级血缘解析方法的流程示意图;
图3是本发明实施例中sql字段关系的Json格式示意图;
图4是本发明实施例中血缘链路关系图的示意图;
图5是本发明实施例中全链路字段级血缘解析方法的另一流程示意图;
图6是本发明实施例中血缘更新服务的流程示意图;
图7是本发明实施例中全链路字段级血缘解析系统的结构示意图;
图8是本发明实施例中全链路字段级血缘解析系统的另一结构示意图;
图9是本发明实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案和有益效果更加清楚明白,下面结合附图及实施例,对本发明作进一步详细说明,显然,以下所描述的实施例是本发明实施例的一部分,仅用于说明本发明,但不用来限制本发明的范围。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的全链路字段级血缘解析方法是基于SpringCloud框架的Eureka服务注册发现中心提供血缘查询服务、前端页面服务(查询输入与结果展示)、血缘上下线服务和血缘清洗整合服务等微服务且保证服务高可用性的hive数据仓库的全链路字段血缘解析方法,可以应用于如图1所示的基于hadoop大数据集群字段级血缘链路分析应用场景,通过在hadoop集群部署重写官方的字段关系数据Hook函数,并将开发的Hook函数打包成jar包,并部署到大数据集群和进行相关配置,且在前端页面请求发送到血缘查询服务的过程中,使用SpringCloud的gateway组件基于yml配置文件中查询服务的路由配置实现网关和负载,以及将血缘清洗整合服务、血缘上线下线更新服务和血缘查询服务采用多节点部署且关系型数据库采用主备节点部署实现高可用,并将MQ消息队列采用集群模式部署,在尽可能使用现有大数据工具的基础上提高大数据集群sql解析的准确性,提供数据表和字段的精准溯源,以及多个sql间字段血缘关系串联展示,且支持血缘链路数据的灵活存储、查询和更新;下述实施例将对本发明的全链路字段级血缘解析方法进行详细说明。
在一个实施例中,如图2所示,提供了一种全链路字段级血缘解析方法,包括以下步骤:
S11、响应于Hive引擎执行sql脚本完成,获取对应的sql字段关系,并将所述sql字段关系封装成血缘服务消息写入MQ消息队列;所述sql字段关系包括字段映射关系和表映射关系;
其中,Hive引擎执行sql脚本时会调用绑定的用于解析sql的hook函数,该hook函数在解析各个sql的同时,能解析出各个sql内的字段关系,该sql字段关系数据可用于准确分析得到每一个字段的来源,即使不同数据库的同一个表中同一个字段也能够有效区分,基于此,本发明将其作为本发明实现基于多sql的全链路字段级血缘解析的基础;具体地,本实施例获取sql字段关系的方法优选通过重写Hive上述解析sql的hook函数来实现,在该hook函数解析sql时,将产生的sql字段关系数据封装成对应的血缘服务消息,通过MQ消息队列传入对应的血缘清洗整合服务模块,进行相应的字段级血缘全链路分析;需要说明的是,上述sql字段关系为Hive hook函数解析sql得到的Json格式的原始字段关系数据,其除了包含上述字段映射关系和表映射关系外,还包括一些与血缘链路关系构建无关的辅助信息,因此,需要在下述步骤中对得到的sql字段关系进行相应的清洗整合处理;
MQ消息队列是为了将大数据集群与字段血缘清洗服务解耦,同时尽量减少字段级血缘分析功能对大数据集群脚本机资源的损耗,而在大数据集群和血缘清洗服务之间加入的用于临时存储Hive引擎解析sql所得到的字段关系数据的消息队列中间件;为了保证消息数据的不丢失且满足尽可能多应用场景,本实施例优选采用RabbitMQ开源工具,且采用集群镜像模式部署。
S12、实时读取所述MQ消息队列中的所述血缘服务消息,解析得到对应的sql字段关系,并根据所述sql字段关系生成对应的字段关联关系,以及将所述字段关联关系存入关系型数据库;其中,血缘服务消息如图1所示从MQ消息队列中取出后,可解析得到sql字段关系,而该sql字段关系为原始字段血缘数据,包含了如执行引擎信息和租户信息等无用的脏数据,且如图3所示的Json字符串形式的sql字段关系不符合图数据库的存储格式要求不能直接存储到图数据库,若直接把整个Json字符存储到关系型数据库,则会导致不能把各个sql之间的字段关系串联起来形成全链路字段血缘数据且不利于关联元数据详细信息;因此,需要对sql字段关系做进一步的清洗和整合,即对Json段进行解析,从中获取字段映射关系和hashcode编码等关联元数据所需的重要数据,且根据数组下标来提取字段间的关联关系,并将生成字段关联关系数据存入关系型数据库,用于后续血缘查询服务构建血缘链路关系图使用;具体地,所述根据所述sql字段关系生成对应的字段关联关系的步骤包括:
解析所述sql字段关系,得到映射关系数据;所述映射关系数据包括字段映射关系和hashcode编码;其中,hashcode编码是根据sql字符串生成,且与sql字符串之间具有一对一的映射关系;
对所述映射关系数据进行清洗和整合,得到所述字段关联关系;所述字段关联关系包括hashcode编码、来源库、来源表、来源字段、目标库、目标表、目标字段和状态字段,如表1所示:
表1存储字段关联关系的关系型表结构核心内容
如表1所示,通过来源库+来源表+来源字段可以在大数据集群中定位到唯一一个字段,同理,通过目标库+目标表+目标字段也可以在大数据集群中定位到唯一一个字段,那么,在关系型表中存储的每一条记录就代表两个字段间的关联关系,通过递归查询则可以查询到全链路的血缘关系;
上述关系型数据库原则上可选用更利于图关系展示的neo4j知识图谱数据库,但为了便于后续功能的扩展以及实现不同sql之间血缘串联展示,本实例基于PostgreSQL数据库天然支持递归查询的特点,优选采用PostgreSQL数据库作为存储字段关联关系的数据库,且为保证关系型数据库服务的高可用性,将PostgreSQL数据库采用一主一从的架构部署同时部署主关系型数据库和备关系型数据库,且利用第三方开源工具pgpool-ii来实现主备间的自动切换,为实现不同sql之间血缘串联,进而实现全局血缘链路的整合提供了可靠保障。
S13、响应于血缘关系查询请求,解析得到待查询血缘数据,并根据所述待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息,以及根据所述血缘展示信息生成血缘链路关系图进行展示;所述元数据管理库用于存储和管理大数据集群内的元数据;所述元数据包括表结构数据和字段数据;其中,待查询血缘数据包括待查询库名、待查询表名和待查询字段名三个查询参数;血缘关系查询可理解为根据待查询库名、待查询表名和待查询字段名查询指定待查询库下待查询表的待查询字段的全局使用血缘链路,通过前端web页面服务输入查询信息数据并发起血缘关系查询请求时,执行对应的血缘查询请求,对关系型数据库和元数据管理库进行查询,并将查询得到的待查询字段的字段血缘关系数据返回到页面,基于AntV前端框架直观展示某个字段经过了哪些加工逻辑的加工处理的整个加工使用链路图。具体地,所述根据所述待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息的步骤包括:
根据所述待查询血缘数据查询所述关系型数据库,得到对应的待查询元数据;
根据所述待查询元数据查询元数据管理库得到对应的元数据关联信息,并将所述待查询元数据和对应的元数据关联信息合并,得到所述血缘展示信息;其中,元数据管理库中储存表的中文名、字段中文名、用途描述和表的创建用户等详细描述信息,且可通过库名+表名(+字段名)组成的唯一标识关联出对应的额外描述信息;相应的,血缘展示信息获取过程可理解为先根据输入的待查询库名、待查询表名和待查询字段名三个查询参数从PostgreSQL数据库中查询出所有有血缘关系的字段,然后再根据这些字段的唯一标识查询元数据管理库得到对应的中文名及用途描述等额外信息,并将其与待查询元数据一起在页面进行展示,得到如图4所示的血缘链路关系图,便于使用者快速知道各个元数据的大致用途。
通过上述方法步骤即可实现基于大数据集群的字段级血缘链路解析、存储、查询和展示,而在绝大部分日常使用的场景中,全链路的字段血缘关系是动态的、实时变化的,甚至两个相邻字段间的加工逻辑也会发生变化;基于此,为了满足血缘关系动态更新的实时性需求,本实施例优选地,如下所述还提供了血缘更新服务支持血缘上下线变动,从而达到实时更新血缘全链路数据的效果;具体地,如图5所示,所述方法还包括:
S14、响应于所述元数据管理库的血缘变更请求,更新所述关系型数据库中对应字段关联关系的状态字段,并根据更新后的关系型数据库,同步更新对应的血缘链路关系图;所述血缘变更请求包括表删除请求、表增加请求、字段删除请求和字段增加请求;所述状态字段包括有效和失效;其中,血缘变更可理解为随着增删表或增删字段带来的血缘下线或血缘上线,其主要由元数据管理库维护,元数据管理库维护方案可采用现有技术实现即可,此处不再赘述;
元数据管理库需要删除/新增表或者字段时会发起血缘变更请求,血缘更新服务会根据血缘变更请求在关系型数据库中查询到对应的血缘关系数据并进行相应状态字段的更新;具体地,所述响应于所述元数据管理库的血缘变更请求,更新所述关系型数据库中对应字段关联关系的状态字段的步骤包括:
接收并解析所述元数据管理库的血缘变更请求,得到血缘变更信息;所述血缘变更信息包括待变更库名、待变更表名、待变更字段名和变更状态;所述变更状态包括血缘上线和血缘下线;其中,血缘变更请求可以理解为携带血缘变更信息的http请求,血缘上下线更新服务解析血缘变更请求即可得到待变更库名、待变更表名、待变更字段名和变更状态的血缘变更信息;
根据所述血缘变更信息,查询并更新所述关系型数据库中对应字段关联关系的状态字段;
具体地,如图6所示,血缘更新流程可理解为先根据待变更库名、待变更表名、待变更字段名在PostgreSQL数据库中查询到对应的血缘关系数据,再根据变更状态对血缘关系数据对应的状态字段的进行更新,若变更状态为血缘上线,则将状态字段更新为有效;若变更状态为血缘下线,则将状态字段更新为失效。
本申请实施例通过利用Hive解析引擎解析sql得到的sql字段关系作为字段级血缘的原始数据,可保证字段级血缘分析结果的理论准确率为100%,使用sql字段关系精准溯源每个字段,且基于特殊的字段关联关系设计,结合PostgreSQL数据库的递归查询特性,为实现多个sql的血缘关系的有效串联提供可靠保障,从而实现全局血缘链路的整合,便于灵活性存储、查询、实时更新和展示血缘全链路数据,为数据治理提供高效的技术支持。
在一个实施例中,如图7所示,提供了一种全链路字段级血缘解析系统,所述系统包括:
字段关系提取模块1,用于响应于Hive引擎执行sql脚本完成,获取对应的sql字段关系,并将所述sql字段关系封装成血缘服务消息写入MQ消息队列;所述sql字段关系包括字段映射关系和表映射关系;
血缘清洗整合模块2,用于实时读取所述MQ消息队列中的所述血缘服务消息,解析得到对应的sql字段关系,并根据所述sql字段关系生成对应的字段关联关系,以及将所述字段关联关系存入关系型数据库;
血缘查询服务模块3,用于响应于血缘关系查询请求,解析得到待查询血缘数据,并根据所述待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息,以及根据所述血缘展示信息生成血缘链路关系图进行展示;
元数据管理库,用于存储和管理大数据集群内的元数据;所述元数据包括表结构数据和字段数据。
为了满足血缘关系动态更新的实时性需求,从而达到实时更新血缘全链路数据的效果,如图8所示,所述系统还包括:
血缘更新服务模块4,用于响应于所述元数据管理库的血缘变更请求,更新所述关系型数据库中对应字段关联关系的状态字段,并根据更新后的关系型数据库,同步更新对应的血缘链路关系图;所述血缘变更请求包括表删除请求、表增加请求、字段删除请求和字段增加请求;所述状态字段包括有效和失效。
关于一种全链路字段级血缘解析系统的具体限定可以参见上文中对于一种全链路字段级血缘解析方法的限定,在此不再赘述。上述一种全链路字段级血缘解析系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图9示出一个实施例中计算机设备的内部结构图,该计算机设备具体可以是终端或服务器。如图9所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示器和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种全链路字段级血缘解析方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域普通技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
综上,本发明实施例提供的一种全链路字段级血缘解析方法、系统、计算机设备及存储介质,其全链路字段级血缘解析方法实现了通过响应于Hive引擎执行sql脚本完成,获取对应的sql字段关系并封装成血缘服务消息写入MQ消息队列,实时读取MQ消息队列中的血缘服务消息,解析得到对应的sql字段关系并生成对应的字段关联关系存入关系型数据库后,响应于血缘关系查询请求,解析得到待查询血缘数据,并根据待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息以及根据血缘展示信息生成血缘链路关系图进行展示,且实时更新血缘链路关系图的技术方案,该方法通过重写Hive解析sql的hook函数获取准确的sql字段关系数据,并基于此设计特殊的字段关联关系结构,且采用具有递归查询特性的PostgreSQL数据库存储管理,实现多个sql的血缘关系的有效整合,在解决现有大数据集群字段级血缘解析方法应用缺陷的同时,不仅实现了简单高效且准确的大数据集群sql解析,而且支持数据表和字段的精准溯源,以及多个sql间字段血缘关系的串联展示,便于了解字段的整个加工使用血缘链路信息,还能提供血缘链路数据的灵活存储、查询和更新,为数据治理提供可靠且高效的技术支持。
本说明书中的各个实施例均采用递进的方式描述,各个实施例直接相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种优选实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本申请的保护范围。因此,本申请专利的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种全链路字段级血缘解析方法,其特征在于,所述方法包括以下步骤:
响应于Hive引擎执行sql脚本完成,获取对应的sql字段关系,并通过重写Hive引擎绑定的解析sql的hook函数,将所述sql字段关系封装成血缘服务消息写入MQ消息队列;所述sql字段关系包括字段映射关系和表映射关系;所述MQ消息队列采用集群镜像模式部署;
实时读取所述MQ消息队列中的所述血缘服务消息,解析得到对应的sql字段关系,并根据所述sql字段关系生成对应的字段关联关系,以及将所述字段关联关系存入关系型数据库;所述关系型数据库为PostgreSQL数据库;所述关系型数据库包括通过pgpool-ii工具实现自动切换的主关系型数据库和备关系型数据库;
响应于血缘关系查询请求,解析得到待查询血缘数据,并根据所述待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息,以及根据所述血缘展示信息生成血缘链路关系图进行展示;所述元数据管理库用于存储和管理大数据集群内的元数据;所述元数据包括表结构数据和字段数据;所述待查询血缘数据包括待查询库名、待查询表名和待查询字段名;
其中,所述根据所述sql字段关系生成对应的字段关联关系的步骤包括:
解析所述sql字段关系,得到映射关系数据;所述映射关系数据包括字段映射关系和hashcode编码;
对所述映射关系数据进行清洗和整合,得到所述字段关联关系;所述字段关联关系包括hashcode编码、来源库、来源表、来源字段、目标库、目标表、目标字段和状态字段。
2.如权利要求1所述的全链路字段级血缘解析方法,其特征在于,所述方法还包括:
响应于所述元数据管理库的血缘变更请求,更新所述关系型数据库中对应字段关联关系的状态字段,并根据更新后的关系型数据库,同步更新对应的血缘链路关系图;所述血缘变更请求包括表删除请求、表增加请求、字段删除请求和字段增加请求;所述状态字段包括有效和失效。
3.如权利要求1所述的全链路字段级血缘解析方法,其特征在于,所述根据所述待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息的步骤包括:
根据所述待查询血缘数据查询所述关系型数据库,得到对应的待查询元数据;
根据所述待查询元数据查询元数据管理库得到对应的元数据关联信息,并将所述待查询元数据和对应的元数据关联信息合并,得到所述血缘展示信息。
4.如权利要求2所述的全链路字段级血缘解析方法,其特征在于,所述响应于所述元数据管理库的血缘变更请求,更新所述关系型数据库中对应字段关联关系的状态字段的步骤包括:
接收并解析所述元数据管理库的血缘变更请求,得到血缘变更信息;所述血缘变更信息包括待变更库名、待变更表名、待变更字段名和变更状态;所述变更状态包括血缘上线和血缘下线;
根据所述血缘变更信息,查询并更新所述关系型数据库中对应字段关联关系的状态字段。
5.一种全链路字段级血缘解析系统,其特征在于,所述系统包括:
字段关系提取模块,用于响应于Hive引擎执行sql脚本完成,获取对应的sql字段关系,并通过重写Hive引擎绑定的解析sql的hook函数,将所述sql字段关系封装成血缘服务消息写入MQ消息队列;所述sql字段关系包括字段映射关系和表映射关系;所述MQ消息队列采用集群镜像模式部署;
血缘清洗整合模块,用于实时读取所述MQ消息队列中的所述血缘服务消息,解析得到对应的sql字段关系,并根据所述sql字段关系生成对应的字段关联关系,以及将所述字段关联关系存入关系型数据库;所述关系型数据库为PostgreSQL数据库;所述关系型数据库包括通过pgpool-ii工具实现自动切换的主关系型数据库和备关系型数据库;
血缘查询服务模块,用于响应于血缘关系查询请求,解析得到待查询血缘数据,并根据所述待查询血缘数据查询关系型数据库和元数据管理库得到对应的血缘展示信息,以及根据所述血缘展示信息生成血缘链路关系图进行展示;所述待查询血缘数据包括待查询库名、待查询表名和待查询字段名;
元数据管理库,用于存储和管理大数据集群内的元数据;所述元数据包括表结构数据和字段数据;
其中,所述根据所述sql字段关系生成对应的字段关联关系,包括:
解析所述sql字段关系,得到映射关系数据;所述映射关系数据包括字段映射关系和hashcode编码;
对所述映射关系数据进行清洗和整合,得到所述字段关联关系;所述字段关联关系包括hashcode编码、来源库、来源表、来源字段、目标库、目标表、目标字段和状态字段。
6.如权利要求5所述的全链路字段级血缘解析系统,其特征在于,所述系统还包括:
血缘更新服务模块,用于响应于所述元数据管理库的血缘变更请求,更新所述关系型数据库中对应字段关联关系的状态字段,并根据更新后的关系型数据库,同步更新对应的血缘链路关系图;所述血缘变更请求包括表删除请求、表增加请求、字段删除请求和字段增加请求;所述状态字段包括有效和失效。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211526385.6A CN115934855B (zh) | 2022-11-29 | 2022-11-29 | 一种全链路字段级血缘解析方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211526385.6A CN115934855B (zh) | 2022-11-29 | 2022-11-29 | 一种全链路字段级血缘解析方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115934855A CN115934855A (zh) | 2023-04-07 |
CN115934855B true CN115934855B (zh) | 2023-08-25 |
Family
ID=86700254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211526385.6A Active CN115934855B (zh) | 2022-11-29 | 2022-11-29 | 一种全链路字段级血缘解析方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934855B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116166718B (zh) * | 2023-04-25 | 2023-07-14 | 北京捷泰云际信息技术有限公司 | 一种数据血缘获取方法和装置 |
CN117131477B (zh) * | 2023-08-14 | 2024-03-29 | 南昌大学 | 一种基于局部数据血缘数字水印的全链路数据溯源方法 |
CN116756125B (zh) * | 2023-08-14 | 2023-10-27 | 中信证券股份有限公司 | 描述信息生成方法、装置、电子设备和计算机可读介质 |
CN117493338A (zh) * | 2023-11-02 | 2024-02-02 | 北京易华录信息技术股份有限公司 | 一种基于区块链的数据血缘关系识别、存储系统 |
CN117648388B (zh) * | 2024-01-29 | 2024-04-12 | 成都七柱智慧科技有限公司 | 一种可视化的安全实时的数据仓库实现方法及其系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813796A (zh) * | 2020-06-15 | 2020-10-23 | 北京邮电大学 | 基于Hive数据仓库的数据列级血缘处理系统及方法 |
CN114116856A (zh) * | 2022-01-25 | 2022-03-01 | 中电云数智科技有限公司 | 基于数据治理全链路的字段级血缘关系分析方法 |
CN114218249A (zh) * | 2021-12-07 | 2022-03-22 | 杭州美创科技有限公司 | 数据血缘分析方法、装置、计算机设备及存储介质 |
CN114329082A (zh) * | 2021-11-19 | 2022-04-12 | 海纳致远数字科技(上海)有限公司 | 一种基于hugegraph的数据血缘关系分析方法和系统 |
CN115129753A (zh) * | 2022-06-29 | 2022-09-30 | 平安银行股份有限公司 | 数据血缘关系分析方法、装置、电子设备及存储介质 |
-
2022
- 2022-11-29 CN CN202211526385.6A patent/CN115934855B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813796A (zh) * | 2020-06-15 | 2020-10-23 | 北京邮电大学 | 基于Hive数据仓库的数据列级血缘处理系统及方法 |
CN114329082A (zh) * | 2021-11-19 | 2022-04-12 | 海纳致远数字科技(上海)有限公司 | 一种基于hugegraph的数据血缘关系分析方法和系统 |
CN114218249A (zh) * | 2021-12-07 | 2022-03-22 | 杭州美创科技有限公司 | 数据血缘分析方法、装置、计算机设备及存储介质 |
CN114116856A (zh) * | 2022-01-25 | 2022-03-01 | 中电云数智科技有限公司 | 基于数据治理全链路的字段级血缘关系分析方法 |
CN115129753A (zh) * | 2022-06-29 | 2022-09-30 | 平安银行股份有限公司 | 数据血缘关系分析方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115934855A (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115934855B (zh) | 一种全链路字段级血缘解析方法、系统、设备及存储介质 | |
CN108228817B (zh) | 数据处理方法、装置和系统 | |
CN110196871B (zh) | 数据入库方法和系统 | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US10120886B2 (en) | Database integration of originally decoupled components | |
US20100017427A1 (en) | Multilevel Hierarchical Associations Between Entities in a Knowledge System | |
CN111339171B (zh) | 数据查询的方法、装置及设备 | |
US20220067024A1 (en) | Facilitating performance of database operations using microservices | |
CN105138561A (zh) | 一种暗网空间数据采集方法及装置 | |
CN112115113B (zh) | 数据存储系统、方法、装置、设备以及存储介质 | |
US20230376475A1 (en) | Metadata management method, apparatus, and storage medium | |
US11252257B2 (en) | Dynamic rest access | |
CN112435022B (zh) | 基于用户实时数据的动态检索系统、及方法 | |
CN107656999B (zh) | 呼叫历史追溯方法、装置、电子设备、存储介质 | |
US11044298B1 (en) | Data provider agnostic change handling in mobile client applications | |
US11475009B2 (en) | Intelligent memory allocation and deallocation of data | |
CN112417213B (zh) | 一种关于VMware自发现监控和实例拓扑自发现方法 | |
CN112347794B (zh) | 数据翻译方法、装置、设备及计算机存储介质 | |
CN115292313A (zh) | 一种伪列实现方法、装置、电子设备及存储介质 | |
US11789971B1 (en) | Adding replicas to a multi-leader replica group for a data set | |
CN111782834A (zh) | 图像检索的方法、装置、设备及计算机可读存储介质 | |
US11468101B2 (en) | Context-rich key framework implementations for global concept management | |
CN116483841B (zh) | 一种基于React框架的表单数据管理方法及装置 | |
CN114844957B (zh) | 链路报文转换方法、装置、设备、存储介质和程序产品 | |
US11803568B1 (en) | Replicating changes from a database to a destination and modifying replication capacity |
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 |