CN116431668A - 基于元数据采集的数据血缘分析方法、装置及电子设备 - Google Patents
基于元数据采集的数据血缘分析方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116431668A CN116431668A CN202310427332.7A CN202310427332A CN116431668A CN 116431668 A CN116431668 A CN 116431668A CN 202310427332 A CN202310427332 A CN 202310427332A CN 116431668 A CN116431668 A CN 116431668A
- Authority
- CN
- China
- Prior art keywords
- metadata
- blood
- data
- edge
- target database
- 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.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 58
- 239000008280 blood Substances 0.000 claims abstract description 57
- 210000004369 blood Anatomy 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000012800 visualization Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 20
- 239000010453 quartz Substances 0.000 claims description 18
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 16
- 238000009877 rendering Methods 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 8
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000501754 Astronotus ocellatus Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000009960 carding Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于元数据采集的数据血缘分析方法、装置及电子设备。该方法包括:建立元数据的采集任务,并基于采集任务采集目标数据库的元数据;通过ANTLR分析目标数据库的结构化查询语言sql语句,得到语法树ParseTree;对ParseTree进行遍历,得到采集的元数据的血缘数据和血缘数据的元数据;将血缘数据的元数据和采集的元数据进行校验,得到校验后的血缘数据;基于图可视化引擎AntV/X6对校验后的血缘数据进行血缘分析,得到采集的元数据的血缘图。本发明能够快速高效地梳理出数据间的关系,减少原先关系型数据库手动查找定位元数据繁琐的步骤,提高追溯有问题数据的来源的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于元数据采集的数据血缘分析方法、装置及电子设备。
背景技术
近年来,随着数字技术的不断发展与应用,数字经济已成为当今时代发展的大趋势,对企业而言,面对海量、质量参差不齐的数据,元数据管理便显得尤为重要,而基于元数据的数据血缘分析作为梳理系统、表、视图、存储过程、数据仓库技术(Extract-Transform-Load,ETL)、程序代码、字段等之间的关系,并采用图数据库进行可视化展示,能够帮助企业了解数据的来龙去脉,快速便捷地理解数据,简化工作流程。但是,现有技术中对于元数据的数据血缘分析要通过原先关系型数据库手动查找定位来定位元数据,追溯有问题数据的来源的效率低。
发明内容
本发明实施例提供了一种基于元数据采集的数据血缘分析方法、装置及电子设备,以解决现有技术中对于元数据的数据血缘分析要通过原先关系型数据库手动查找定位来定位元数据,追溯有问题数据的来源的效率低的问题。
第一方面,本发明实施例提供了一种基于元数据采集的数据血缘分析方法,包括:
建立元数据的采集任务,并基于所述采集任务采集目标数据库的元数据;
通过ANTLR分析所述目标数据库的结构化查询语言sql语句,得到语法树ParseTree;对ParseTree进行遍历,得到所述采集的元数据的血缘数据和所述血缘数据的元数据;
将所述血缘数据的元数据和所述采集的元数据进行校验,得到校验后的血缘数据;
基于图可视化引擎AntV/X6对所述校验后的血缘数据进行血缘分析,得到所述采集的元数据的血缘图。
在一种可能的实现方式中,所述基于图可视化引擎AntV/X6对所述校验后的血缘数据进行血缘分析,得到所述采集的元数据的血缘图,包括:
获取预设的渲染图的容器,并根据所述校验后的血缘数据和所述容器引入所述血缘数据的数据对象,其中,所述数据对象包括所述血缘数据的节点和边,所述边由所述两个节点的id组成;
基于ELK算法和所述数据对象计算得到所述血缘数据对应的血缘图位置布局;
基于AntV/X6在所述容器中渲染所述数据对象;
根据所述血缘图位置布局和渲染完成的数据对象,确定所述采集的元数据的血缘图。
在一种可能的实现方式中,所述建立元数据的采集任务,并基于所述采集任务采集目标数据库的元数据,包括:
创建任务调度Quartz框架;并根据Quartz框架采集目标数据库中的元数据。
在一种可能的实现方式中,所述创建任务调度Quartz框架,并根据Quartz框架采集目标数据库中的元数据,包括:
从线程池中获取可用线程并将所述可用线程作为调度线程;从存储介质中获取预设时长的触发器,当所述触发器触发后,根据所述调度线程创建Job的运行环境JobRunShell;由JobDetail构建job示例;根据所述触发器、JobRunShell和Job实例,执行job的execute接口函数;
根据job的execute接口函数,采集目标数据库中的元数据。
在一种可能的实现方式中,所述得到采集的元数据之后,还包括:
将所述采集到的元数据存储到ES数据库中。
在一种可能的实现方式中,所述将所述血缘数据的元数据和所述采集的元数据进行校验,得到校验后的血缘数据之后,还包括:
将所述血缘数据存储至Neo4j数据库中。
在一种可能的实现方式中,所述建立元数据的采集任务之前,还包括:
获取需要连接的所述目标数据库的信息,并根据所述信息和jdbc与所述目标数据库连接访问,其中,所述目标数据库的信息至少包括目标数据库的网际互连协议ip、端口、用户名和密码信息。
第二方面,本发明实施例提供了一种基于元数据采集的数据血缘分析装置,包括:
元数据采集模块,用于建立元数据的采集任务,并基于所述采集任务采集目标数据库的元数据;
分析模块,用于通过ANTLR分析所述目标数据库的结构化查询语言sql语句,得到语法树ParseTree;对ParseTree进行遍历,得到所述采集的元数据的血缘数据和所述血缘数据的元数据;
校验模块,用于将所述血缘数据的元数据和所述采集的元数据进行校验,得到校验后的血缘数据;
可视化模块,用于基于图可视化引擎AntV/X6对所述校验后的血缘数据进行血缘分析,得到所述采集的元数据的血缘图。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上第一方面或第一方面的任一种可能的实现方式所述方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面或第一方面的任一种可能的实现方式所述方法的步骤。
本发明实施例提供一种基于元数据采集的数据血缘分析方法、装置及电子设备,本发明实施例通过建立元数据的采集任务,并基于采集任务采集目标数据库的元数据;通过ANTLR分析目标数据库的结构化查询语言sql语句,得到语法树ParseTree;对ParseTree进行遍历,得到采集的元数据的血缘数据和血缘数据的元数据;将血缘数据的元数据和采集的元数据进行校验,得到校验后的血缘数据;基于图可视化引擎AntV/X6对校验后的血缘数据进行血缘分析,得到采集的元数据的血缘图。将采集到的元数据通过ANTLR进行血缘分析得到了表和字段具体信息,也能获取表和表之间、字段和字段之间的数据流向,一方面可以简化解析需要重点关注的语法,同时对于需要解析语法增加或者自定义的语法也能直接添加规则进行解析,扩展性上有较大提升。通过AntV/X6构建的全链路数据血缘图,不仅可以清晰的展示数据的流向,还可以直观的展示数据的层级,从而快速高效地梳理出数据间的关系。这避免了像原先关系型数据库手动查找定位元数据繁琐的步骤,提高了追溯有问题数据的来源的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于元数据采集的数据血缘分析方法的实现流程图;
图2是本发明实施例提供的一种基于元数据采集的数据血缘分析方法的数据血缘可视化的示意图;
图3是本发明实施例提供的一种基于元数据采集的数据血缘分析方法的示意图;
图4是本发明实施例提供的一种基于元数据采集的数据血缘分析装置的结构示意图;
图5是本发明实施例提供的电子设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图通过具体实施例来进行说明。
图1是本发明实施例提供的一种基于元数据采集的数据血缘分析方法的实现流程图,参照图1,详述如下:
在步骤101中、建立元数据的采集任务,并基于采集任务采集目标数据库的元数据。
在本实施例中,用户建立对应的元数据采集任务,基于建立的采集任务采集目标数据库的元数据。目标数据库包括关系型/非关系型。根据采集任务与对应的目标数据库连接,能够适应不同类型的数据源。根据采集任务从上述数据库中采集元数据。
在一些实施例中,步骤101包括:创建任务调度Quartz框架;并根据Quartz框架采集目标数据库中的元数据。
在一些实施例中,创建任务调度Quartz框架,并根据Quartz框架采集目标数据库中的元数据,包括:
从线程池中获取可用线程并将可用线程作为调度线程;从存储介质中获取预设时长的触发器,当触发器触发后,根据调度线程创建Job的运行环境JobRunShell;由JobDetail构建job示例;根据触发器、JobRunShell和Job实例,执行job的execute接口函数。
根据job的execute接口函数,采集目标数据库中的元数据。
在一些实施例中,得到采集的元数据之后,还包括:
将采集到的元数据存储到ES数据库中。
在本实施例中,创建元数据采集任务,使用Quartz强大的调度能力自动化调度相应任务。根据job的execute接口函数采集目标数据库中的元数据的信息。Quartz框架实现元数据采集功能的分布式调度。
在本实施例中,将每一种类型的元数据定义为数据库表,元数据类型为数据库表的名称,元数据的属性为数据库表的属性,将元数据作为表的具体数据存入相应的数据库表,采用Quartz框架实现了每天采集元数据可达千万级别,数据采集能力>=1000条/秒。
在步骤102中、通过ANTLR分析目标数据库的结构化查询语言sql语句,得到语法树ParseTree;对ParseTree进行遍历,得到采集的元数据的血缘数据和血缘数据的元数据。
在本实施例中,ANTLR会把自定义语法解析成ParseTree,再对ParseTree进行遍历,生成Statement对象,再根据生成的Statement对象最终生成采集的元数据的血缘数据和血缘数据的元数据。ANTLR的基本语法包括词法规则,语法规则和文法。词法规则可以将文本分解为词法单元或者token,词法单元是语言中的最小语法单位,如关键词、标识符运算符、常量等;语法规则适用于描述语言的结构,由多个词法规则和其他语法规则组成,可以通过递归调用来定义复杂的语法结构。本实施例方式中所支持的sql类型具体包括但不限于mysql、oracle、hvie、sqlserver、db2、dameng、Postgresql、Oceanbase、Gbase、oscar和kingbase等。本发明实施例支持对多种类型数据源进行采集;多种类型sql进行解析;并且支持二次开发。
在步骤103中、将血缘数据的元数据和采集的元数据进行校验,校验后的血缘数据。
在本实施例中,将血缘数据的元数据和采集的元数据进行校验,将血缘的元数据和采集的元数据相对应,得到相对应的血缘数据。校验是判断血缘的元数据和采集的元数据在同一个数据库下的表名,和字段名称是否一致,也就是说,校验血缘数据的元数据和采集的元数据是为了确定解析得到的血缘的元数据跟采集得到的元数据是同一个。
在一些实施例中,将血缘数据的元数据和采集的元数据进行校验,得到校验后的血缘数据之后,还包括:将校验后的血缘数据存储至Neo4j数据库中。
在本实施例中,Neo4j提供了大规模可扩展性,在一台机器上可以处理数十亿节点/关系/属性的图,可以扩展到多台机器并行运行。相对于关系数据库来说,图数据库善于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询。将生成的血缘数据存储至Neo4j解决了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。
在本实施例中,将校验后的血缘数据存储至Neo4j数据库中,方便后续调用。
在步骤104中、基于图可视化引擎AntV/X6对校验后的血缘数据进行血缘分析,得到采集的元数据的血缘图。
在一些实施例中,步骤104包括:
获取预设的渲染图的容器,并根据校验后血缘数据和容器引入血缘数据的数据对象,其中,数据对象包括血缘数据的节点和边,边由两个节点的id组成。
基于ELK算法和数据对象计算得到血缘数据对应的血缘图位置布局。
基于AntV/X6在容器中渲染数据对象。
根据血缘图位置布局和渲染完成的数据对象,确定采集的元数据的血缘图。
在本实施例中,AntV/X6内部预置了业务常用的节点和边,每个节点和边的样式都可以通过属性配置,同时也能定义标签文本和箭头,开发的自由度高;提供了布局算法使得画布上图形可以按照一定的规则自动进行排列,同时也支持节点随意拖动,按照想要形式对图形布局进行修改,用户的友好性强;通过MVVM架构实现,Model层管理节点、边和连接桩的数据,View层负责元素的渲染,ViewModel层实现通讯,不考虑模块修改对别的模块影响,可维护性高。
通过AntV/X6构建的全链路数据血缘图,不仅可以清晰的展示数据的流向,还可以直观的展示数据的层级,从而快速高效地梳理出数据间的关系。这避免了像原先关系型数据库手动查找定位元数据繁琐的步骤,提高了问题的解决效率,在发现有问题数据时,根据数据血缘图即可得到有问题数据的来源。
在本实施例中,如图2所示,图2是本发明实施例提供的一种基于元数据采集的数据血缘分析方法的数据血缘可视化的示意图,图中每个实线框表示一个不同数据库,框内的纵向向里的虚线框表示数据库包含的表,表内的虚线框表示表的字段。一个实线框内横向的是同一个数据库对应的不同表。框与框之间的连接线和箭头就代表了两个元数据之间的血缘关系。
在本实施例中,血缘分析用于分析数据的来源和去向,全链分析用于分析元数据的来源和去向,影响分析用于分析元数据数据的去向影响的下游元数据。本发明实施例应用于全链路血缘、资产管理、数据治理和找到准确的数据等等场景,并不对本发明实施例的应用场景进行限定。
综上,本申请实施例通过建立元数据的采集任务,并基于采集任务采集目标数据库的元数据;通过ANTLR分析目标数据库的结构化查询语言sql语句,得到语法树ParseTree;对ParseTree进行遍历,得到采集的元数据的血缘数据、血缘数据的元数据和Statement对象;根据Statement对象将血缘数据的元数据和采集的元数据进行校验,得到校验后的血缘数据;基于图可视化引擎AntV/X6对校验后的血缘数据进行血缘分析,得到采集的元数据的血缘图。将采集到的元数据通过ANTLR进行血缘分析得到了表和字段具体信息,也能获取表和表之间、字段和字段之间的数据流向,一方面可以简化解析需要重点关注的语法,同时对于需要解析语法增加或者自定义的语法也能直接添加规则进行解析,扩展性上有较大提升。通过AntV/X6构建的全链路数据血缘图,不仅可以清晰的展示数据的流向,还可以直观的展示数据的层级,从而快速高效地梳理出数据间的关系。这避免了像原先关系型数据库手动查找定位元数据繁琐的步骤,提高了追溯有问题数据的来源的效率。
在一些实施例中,建立元数据的采集任务之前,还包括:
获取需要连接的目标数据库的信息,并根据信息和jdbc与目标数据库连接,其中,目标数据库的信息至少包括目标数据库的网际互连协议ip、端口、用户名和密码信息。
在本实施例中,jdbc提供了Java API来读取存储在数据库中的实际数据。
在本实施例中,如图3所示,图3是本发明实施例提供的另一种基于元数据采集的数据血缘分析方法的实现流程图。本发明实施例的基于元数据采集的数据血缘分析方法,采用数据源、数据建模、存储层、元数据管理层和元数据分析层实现。本发明实施例采用Quartz框架实现对数据源的采集任务,数据建模层采集sql语句,ANTLR语法解析器对用户在数据治理过程中外部输入的sql语句进行解析,neo4j和ES将采集和解析得到的数据存储到存储层进行存储,AntV/X6实现了对采集的元数据进行分析,并且对元数据的血缘数据进行可视化展示。
步骤一:用户设置需要连接的目标数据库端的ip、端口、用户名和密码信息,平台通过jdbc连接访问成功后保存。
步骤二:用户建立对应的元数据采集任务,Quartz框架负责调度启动任务,Quartz调度的核心元素为Scheduler、Trigger、Job,其中trigger和job是任务调度的元数据,scheduler是实际执行调度的控制器。轮询存储的所有trigger,如果有需要触发的trigger,即到达了下一次触发的时间,则从任务执行线程池获取一个空闲线程,执行与该trigger关联的任务。Quartz框架可以对任务进行动态管理,可以对任务的启动、暂停、恢复、停止和触发时间进行修改。一旦设置好任务触发时间,Quartz框架可以自动执行元数据采集任务,实现任务的自动化调度执行。具体流程如下:
a)调度线程首先去线程池中获取可用的线程,如果没有的话,就阻塞。
b)从JobStore(从存储介质中获取触发器,存储介质可以是内存也可以是数据库)获取(接下来30s内的)触发器,然后等待该触发器触发。
c)调度线程创建一个JobRunShell(就是一个Runnable),然后从线程池中调用线程执行该任务。
d)获取trigger、JobDetail以及生成Job实例,然后执行job的execute接口函数。
步骤三:采集任务执行完成后会将采集得到的元数据存储在ES中,供其他功能使用。
步骤四:平台会通过ANTLR解析数据建模中的sql语句获取血缘,包含词法分析和语法分析,可以按照自定义规则解析,以树的形状表示语法结构。
a)ANTLR会把用户输入的语法解析成ParseTree,再对ParseTree进行遍历,最终生成Statement对象。
b)再根据Statement对象,生成采集的元数据的血缘数据和血缘数据的元数据,将血缘数据的元数据和采集的元数据进行校验,得到校验后的血缘数据。
c)将血缘数据存储到Neo4j中。
步骤五:用户可以通过对元数据的属性存在ES的是元数据的属性、下级信息和依赖解析得到的血缘进行编辑,最终的使用图可视化引擎AntV/X6对元数据的血缘、影响和全链路分析并展示。采用Quartz框架、ANTLR和AntV/X6等技术,支持自动化的元数据采集任务,支持对自定义血缘解析语法,向上溯源、向下钻取元数据之间的血缘关系。
a)指定一个渲染图的容器
b)引入血缘的json数据对象:包含表示库、表、字段的节点(node),代表血缘关系的边(edge);每个节点中都有唯一的一个id,边是由两个节点的id组成,startId和endId分别代表血缘从start节点流向end节点。
c)通过The Eclipse Layout Kernel(ELK)算法,根据节点和边json数据计算的到血缘图的位置布局。
d)使用AntV/X6渲染节点和边,得到最终元数据的血缘图。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以下为本发明的装置实施例,对于其中未详尽描述的细节,可以参考上述对应的方法实施例。
图4示出了本发明实施例提供的一种基于元数据采集的数据血缘分析装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
如图4所示,基于元数据采集的数据血缘分析装置40包括:元数据采集模块41、分析模块42、校验模块43和可视化模块44。
元数据采集模块41,用于建立元数据的采集任务,并基于采集任务采集目标数据库的元数据。
分析模块42,用于通过ANTLR分析所述目标数据库的结构化查询语言sql语句,得到语法树ParseTree;对ParseTree进行遍历,得到所述采集的元数据的血缘数据和所述血缘数据的元数据。
校验模块43,用于将所述血缘数据的元数据和所述采集的元数据进行校验,得到校验后的血缘数据。
可视化模块44,用于基于图可视化引擎AntV/X6对校验后的血缘数据进行血缘分析,得到采集的元数据的血缘图。
可选地,可视化模块44,用于获取预设的渲染图的容器,并根据校验后的的血缘数据和容器引入血缘数据的数据对象,其中,数据对象包括血缘数据的节点和边,边由两个节点的id组成。
基于ELK算法和数据对象计算得到血缘数据对应的血缘图位置布局。
基于AntV/X6在容器中渲染数据对象。
根据血缘图位置布局和渲染完成的数据对象,确定采集的元数据的血缘图。
可选地,元数据采集模块41,用于创建任务调度Quartz框架;并根据Quartz框架采集目标数据库中的元数据。
可选地,元数据采集模块41,用于从线程池中获取可用线程并将可用线程作为调度线程;从存储介质中获取预设时长的触发器,当触发器触发后,根据调度线程创建Job的运行环境JobRunShell;由JobDetail构建job示例;根据触发器、JobRunShell和Job实例,执行job的execute接口函数。
根据job的execute接口函数,采集目标数据库中的元数据。
可选地,元数据采集模块41,还用于将采集到的元数据存储到ES数据库中。
可选地,校验模块43,还用于将校验后的血缘数据存储至Neo4j数据库中。
可选地,元数据采集模块41,还用于获取需要连接的目标数据库的信息,并根据信息和jdbc与所述目标数据库连接访问,其中,目标数据库的信息至少包括目标数据库的网际互连协议ip、端口、用户名和密码信息。
图5是本发明一实施例提供的电子设备的示意图。如图5所示,该实施例的电子设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各个基于元数据采集的数据血缘分析方法实施例中的步骤。
所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述电子设备5中的执行过程。
所述电子设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述电子设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是电子设备5的示例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述电子设备5的内部存储单元,例如电子设备5的硬盘或内存。所述存储器51也可以是所述电子设备5的外部存储设备,例如所述电子设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述电子设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的分割进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构分割成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的分割,仅仅为一种逻辑功能分割,实际实现时可以有另外的分割方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于元数据采集的数据血缘分析方法,其特征在于,包括:
建立元数据的采集任务,并基于所述采集任务采集目标数据库的元数据;
通过ANTLR分析所述目标数据库的结构化查询语言sql语句,得到语法树ParseTree;对ParseTree进行遍历,得到所述采集的元数据的血缘数据和所述血缘数据的元数据;
将所述血缘数据的元数据和所述采集的元数据进行校验,得到校验后的血缘数据;
基于图可视化引擎AntV/X6对所述校验后的血缘数据进行血缘分析,得到所述采集的元数据的血缘图。
2.根据权利要求1所述的方法,其特征在于,所述基于图可视化引擎AntV/X6对所述校验后的血缘数据进行血缘分析,得到所述采集的元数据的血缘图,包括:
获取预设的渲染图的容器,并根据所述校验后的血缘数据和所述容器引入所述血缘数据的数据对象,其中,所述数据对象包括所述血缘数据的节点和边,所述边由所述两个节点的id组成;
基于ELK算法和所述数据对象计算得到所述血缘数据对应的血缘图位置布局;
基于AntV/X6在所述容器中渲染所述数据对象;
根据所述血缘图位置布局和渲染完成的数据对象,确定所述采集的元数据的血缘图。
3.根据权利要求1所述的方法,其特征在于,所述建立元数据的采集任务,并基于所述采集任务采集目标数据库的元数据,包括:
创建任务调度Quartz框架;并根据Quartz框架采集目标数据库中的元数据。
4.根据权利要求3所述的方法,其特征在于,所述创建任务调度Quartz框架,并根据Quartz框架采集目标数据库中的元数据,包括:
从线程池中获取可用线程并将所述可用线程作为调度线程;从存储介质中获取预设时长的触发器,当所述触发器触发后,根据所述调度线程创建Job的运行环境JobRunShell;由JobDetail构建job示例;根据所述触发器、JobRunShell和Job实例,执行job的execute接口函数;
根据job的execute接口函数,采集目标数据库中的元数据。
5.根据权利要求3所述的方法,其特征在于,所述得到采集的元数据之后,还包括:
将所述采集到的元数据存储到ES数据库中。
6.根据权利要求1所述的方法,其特征在于,所述将所述血缘数据的元数据和所述采集的元数据进行校验,得到校验后的血缘数据之后,还包括:
将所述校验后的血缘数据存储至Neo4j数据库中。
7.根据权利要求1所述的方法,其特征在于,所述建立元数据的采集任务之前,还包括:
获取需要连接的所述目标数据库的信息,并根据所述信息和jdbc与所述目标数据库连接访问,其中,所述目标数据库的信息至少包括目标数据库的网际互连协议ip、端口、用户名和密码信息。
8.一种基于元数据采集的数据血缘分析装置,其特征在于,包括:
元数据采集模块,用于建立元数据的采集任务,并基于所述采集任务采集目标数据库的元数据;
分析模块,用于通过ANTLR分析所述目标数据库的结构化查询语言sql语句,得到语法树ParseTree;对ParseTree进行遍历,得到所述采集的元数据的血缘数据和所述血缘数据的元数据;
校验模块,用于将所述血缘数据的元数据和所述采集的元数据进行校验,得到校验后的血缘数据;
可视化模块,用于基于图可视化引擎AntV/X6对所述校验后的血缘数据进行血缘分析,得到所述采集的元数据的血缘图。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上的权利要求1至7中任一项所述基于元数据采集的数据血缘分析方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上的权利要求1至7中任一项所述基于元数据采集的数据血缘分析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310427332.7A CN116431668A (zh) | 2023-04-20 | 2023-04-20 | 基于元数据采集的数据血缘分析方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310427332.7A CN116431668A (zh) | 2023-04-20 | 2023-04-20 | 基于元数据采集的数据血缘分析方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116431668A true CN116431668A (zh) | 2023-07-14 |
Family
ID=87092448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310427332.7A Pending CN116431668A (zh) | 2023-04-20 | 2023-04-20 | 基于元数据采集的数据血缘分析方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431668A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312331A (zh) * | 2023-12-01 | 2023-12-29 | 浪潮云信息技术股份公司 | 一种元数据血缘分析方法、装置、设备及存储介质 |
-
2023
- 2023-04-20 CN CN202310427332.7A patent/CN116431668A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312331A (zh) * | 2023-12-01 | 2023-12-29 | 浪潮云信息技术股份公司 | 一种元数据血缘分析方法、装置、设备及存储介质 |
CN117312331B (zh) * | 2023-12-01 | 2024-03-29 | 浪潮云信息技术股份公司 | 一种元数据血缘分析方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106682097B (zh) | 一种处理日志数据的方法和装置 | |
Zhang et al. | On complexity and optimization of expensive queries in complex event processing | |
US8671084B2 (en) | Updating a data warehouse schema based on changes in an observation model | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
US20060150168A1 (en) | Annotating graphs to allow quick loading and analysis of very large graphs | |
CN115617327A (zh) | 低代码页面搭建系统、方法及计算机可读存储介质 | |
CN106293891B (zh) | 多维投资指标监督方法 | |
CN109408493A (zh) | 一种数据源的迁移方法及系统 | |
CN109753596B (zh) | 用于大规模网络数据采集的信源管理与配置方法和系统 | |
CN108984155A (zh) | 数据处理流程设定方法和装置 | |
CN114116065B (zh) | 获取拓扑图数据对象的方法、装置、及电子设备 | |
CN105338045A (zh) | 一种云计算资源的处理装置、方法及云计算系统 | |
US11573790B2 (en) | Generation of knowledge graphs based on repositories of code | |
US20190220452A1 (en) | Index suggestion engine for relational databases | |
CN116431668A (zh) | 基于元数据采集的数据血缘分析方法、装置及电子设备 | |
CN113268500A (zh) | 业务处理方法、装置及电子设备 | |
CN113806429A (zh) | 基于大数据流处理框架的画布式日志分析方法 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
US20140122159A1 (en) | License Meta-Model for Automatic License Reasoning | |
Ajwani et al. | Generating synthetic task graphs for simulating stream computing systems | |
CN115857918A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109033196A (zh) | 一种分布式数据调度系统及方法 | |
CN115757174A (zh) | 一种数据库的差异检测方法及装置 | |
Breuker et al. | Graph theory and model collection management: conceptual framework and runtime analysis of selected graph algorithms | |
CN109344079A (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 |