CN115470192A - 一种数据库元数据采集与管理的方法 - Google Patents
一种数据库元数据采集与管理的方法 Download PDFInfo
- Publication number
- CN115470192A CN115470192A CN202211020384.4A CN202211020384A CN115470192A CN 115470192 A CN115470192 A CN 115470192A CN 202211020384 A CN202211020384 A CN 202211020384A CN 115470192 A CN115470192 A CN 115470192A
- Authority
- CN
- China
- Prior art keywords
- metadata
- database
- data
- information
- management module
- 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
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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据库元数据采集与管理的方法,该方法通过使用元数据采集网络和元数据管理网络来实现,其中,元数据采集网络包括数据源数据库、内置关系型数据库、Debezium和Kafka,该方法包括:(1)元数据管理网络监控数据源数据库并开始采集元数据,包括全量采集和增量采集;(2)元数据信息被保存到内置关系型数据库;(3)元数据管理网络对内置关系型数据库获取到的元数据进行管理,包括添加数据库字典、标记元数据信息和更新旧版本,然后返回(2),直至元数据管理网络中的对外接口接收操作指令,结束。与现有技术相比,本发明具有实时性强和方便对历史数据进行管理等优点。
Description
技术领域
本发明属于元数据技术领域,涉及一种数据库元数据采集与管理的方法。
背景技术
为了满足不同用户数据库数据的同步需求,用户需要同步数据库部分库或表中的数据,又或者需要做异构数据库同步。基于此需求,部分公司开发了基于事务日志的数据同步产品,将数据库的事务日志数据解析成和数据库无关的结构数据。,然后将这些结构数据按照目标数据库的需求导入到目标数据库中,从而实现数据同步功能。在上述数据同步过程中,为了将事务日志数据解析成和数据库无关的结构数据,通常需要获取数据库的元数据,然而事务日志本身无法直接提供这些数据。因此,现有技术中获取元数据的方案包括从数据库事务日志中获取DDL,即数据定义语言,在同种数据库中执行获取到DDL后,再从此同种数据库中获取元数据;直接从数据库中获取元数据并保存到备份数据库中,提供元数据查询;从数据库中获取全量元数据并保存到备份数据库中,基于此时间节点再进行数据库事务日志解析,将后续元数据变化更新到备份数据库中,提供元数据查询。
但是现有技术中获取元数据的方式存在以下缺陷:只能提供数据库事务日志数据的时间戳对应的元数据,无法提供之前的其他时间点的元数据;由于数据库元数据是实时变化的,直接查询数据库可能出现获取到的元数据与解析数据库事务日志得到的元数据不一致的情况。
发明内容
本发明的目的是提供一种数据库元数据采集与管理的方法,以克服增量采集实时性差和没有对历史数据没有做出相关管理的缺点。
本发明的目的可以通过以下技术方案来实现:
一种数据库元数据采集与管理的方法,该方法通过使用元数据采集网络和元数据管理网络来实现,其中,元数据采集网络包括数据源数据库、内置关系型数据库、Debezium和Kafka,该方法包括:
步骤S1、元数据管理网络监控数据源数据库并开始全量采集元数据,同时执行步骤S2和步骤S3;
步骤S2、检测是否有增量数据,若是,进入步骤S5,若否,重新进入步骤S2;
步骤S3、元数据信息被保存到内置关系型数据库;
步骤S4、元数据管理网络对内置关系型数据库获取到的元数据进行管理,包括添加数据库字典、标记元数据信息和更新旧版本,然后返回步骤S3,直至元数据管理网络中的对外接口接收操作指令,结束;
步骤S5、进行增量采集,进入步骤S3。
进一步地,所述的增量采集的步骤包括:
步骤S501、当所述的数据源数据库中的元数据发生变化时,所述的Debezium对数据源数据库的事务日志进行解析;
步骤S502、所述的Kafka接收被Debezium解析的数据定义语言;
步骤S503、数据定义语言被读取后,发生变化的元数据信息被保存至内置关系型数据库。
所述的元数据管理网络包括元数据监控管理模块、元数据版本管理模块、元数据标记管理模块、数据库字典管理模块和元数据交互管理模块,依次负责管理数据采集、更新版本、元数据信息标记、数据库字典和用户访问。
进一步地,所述的元数据监控管理模块负责对Debezium发起创建Connector指令,令Debezium采集数据并保存至内置关系型数据库中;从Kafka中读取数据定义语言;获取变化的元数据信息并完整保存到内置关系型数据库中,同时将这条保存记录保存到内置关系型数据库中。
进一步地,所述的元数据版本管理模块获取元数据信息;更新有变化的元数据的版本字段,同时新增变化的元数据信息;使用关联字段连接新版本和旧版本。
进一步地,所述的元数据标记管理模块负责对内置关系型数据库中的数据库元数据信息进行标记,所述的标记包括对元数据信息和关联联系进行备注。
所述的标记包括由系统自动默认标记或者由客户查询后手动进行标记。
进一步地,所述的数据库字典管理模块对内置关系型数据库中的元数据信息进行查询,同时支持对历史的数据字典信息进行更新调整。
进一步地,所述的元数据交互管理模块负责提供元数据信息管理页面并对外提供接口,支持包括对元数据信息的查询、更新和删除。
所述的数据源数据库包括MySQL、Oracle、SQLServer、DB2或PostgreSQL。
与现有技术相比,本发明具有以下特点:
1.本发明基于Debezium和Kafka,设置元数据监控管理模块对元数据的采集和存储进行实时监控,数据源数据库的元数据一旦发生变化,系统能够立马检测到并实时更新,将元数据存储到内置关系型数据库中,提高了增量采集的实时性,以及保证了数据的一致性和完整性。
2.本发明设置了元数据标记管理模块,通过对采集到的元数据信息进行标记,方便客户查询历史数据,为客户对数据的模糊搜索和智能分类提供了技术支持。
3.本发明通过设置数据库字典管理模块,提供了数据字典查询和更新的功能,为客户规范化设计和实施数据管理系统提供了技术支持。
4.本发明通过设置元数据版本管理模块,提供了元数据各个版本的查询和更新功能。
5.本发明的数据库包括MySQL、Oracle、SQLServer、DB2和PostgreSQL,支持多种数据库采集。
附图说明
图1为元数据采集与管理的系统结构图;
图2为元数据采集与管理的具体实施流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本发明提供一种数据库元数据采集与管理的方法,其特征在于,该方法通过使用元数据采集网络和元数据管理网络来实现,如图1所示,元数据采集网络包括数据源数据库、内置关系型数据库、Debezium和Kafka。图1中,DB是内置关系型数据库,用于存储从数据源数据库采集到的元数据信息,Source代表数据源数据库,包括但不限于MySQL、Oracle、SQLServer、DB2或PostgreSQL,DB1和DB2属于Source,代表多种数据源数据库。
该数据库元数据采集与管理的方法包括:
步骤S1、元数据管理网络监控Source并开始全量采集元数据;
步骤S2、采集到的元数据信息被保存到DB;
步骤S3、元数据管理网络对DB获取到的元数据信息进行管理,包括添加数据库字典、标记元数据信息和更新旧版本;
步骤S4、检测是否有增量数据,若有,进入步骤S5,若没有,重新进入步骤S3;
步骤S5、进行增量采集,重新进入步骤S2。
所述的元数据信息包括库、表和字段等。
本发明的基于Debezium和Kafka的采集过程采用无代理模式,数据源所在的操作系统的CPU、内存和磁盘等占用较低的资源。
其中,所述的增量采集的步骤包括:
步骤S401、当Source中的元数据发生变化时,Debezium对Source的事务日志进行解析;
步骤S402、Kafka接收被Debezium解析的DDL(数据定义语言);
步骤S403、DDL被读取后,发生变化的元数据信息被保存至DB。
从上述流程可以看出,本发明可以对Source的元数据进行采集和管理,通过实时监控捕获数据源元数据变化,将元数据存储至DB中,保证数据的一致性和完整性,而且本发明是从数据库事务日志中获取增量元数据信息,对数据源所在的数据库计算和存储资源占用少。
所述的Kafka是一种提供了多副本、多分区记录消息的快速、可扩展、持久的消息传递系统。
所述的Debezium是一种开源组件,本身支持断点续传,当数据库监控管理模块对Debezium发出创建Connector时,Debezium开始采集数据源数据库的全量数据和增量数据,Debezium完成数据采集后,对数据源数据库的事务日志进行解析,然后将获得的DDL发送给Kafka;所述的Connector是Debezium的一种运行资源,当需要采集数据源的全量和增量数据时,需要创建一个Connector,Debezium Connector采集数据源的元数据部分配置如下:
name="test1"//连接器名称
database.hostname="hostname"//数据源数据库服务器的地址
database.user="user"//具有适当权限的数据库用户
database.password="password"//数据库用户的密码
database.port="port"/数据库服务器端口号
database.serverId="1"//连接器的唯一ID
database.history.kafka.topic="dbhistory_dbserver"//数据库历史主题的名称
database.server.name="dbserver"//服务器或集群的逻辑名称
include.schema.changes="true"//指定连接器是否应为DDL更改生成事件并将它们发送到fulfillment架构更改主题,以供消费者使用的标志
snapshot.mode="schema_only"//指定连接器启动时运行快照的条件
skipped.operations="c,u,d"//流期间要跳过的以逗号分隔的操作类型列表
如图1所示,所述的元数据管理网络包括元数据监控管理模块、元数据版本管理模块、元数据标记管理模块、数据库字典管理模块和元数据交互管理模块,依次负责管理数据采集、更新版本、元数据信息标记、数据库字典和用户访问。
其中,所述的元数据监控管理模块负责对Debezium发起创建Connector指令,令Debezium采集数据并保存至DB中;当数据源数据库的元数据发生变化时,Debezium自动将元数据需要的DDL发送到Kafka;元数据监控管理模块从Kafka中读取DDL;元数据监控管理模块获取变化的元数据信息并完整保存到DB中,同时将这条保存记录保存到DB中,当下次处理数据定义语言时,首先读取记录信息并从该处继续处理,以此来保证断点续传的功能。在整个增量采集过程中,元数据监控管理模块会不断读取Kafka上的元数据信息,以此来达到对Source进行监控的目的。
所述的断点续传是指采集元数据过程中,如果出现网络抖动等异常情况导致任务失败,当网络恢复正常后,本系统可从上次任务断开处继续元数据采集。
所述的DDL仅包含变化的元数据信息,因为元数据监控管理模块仅对变化的元数据信息进行更新,因此能够保证实时性。
所述的元数据版本管理模块负责对采集到的元数据信息进行版本管控。该模块记录了从开始进行元数据采集到当前时间每个版本的库、表和字段元数据的详情、数据源数据库所有的元数据信息和元数据变更轨迹。当元数据监控管理模块完成对DDL的解析后,元数据版本管理模块提取DDL中与元数据相关的库、表和字段的信息、更新有变化的元数据的版本字段、新增变化的元数据信息以及使用关联字段关联新旧两个版本,以此达到对元数据进行管理的功能。
所述的元数据标记管理模块负责对采集到的元数据信息进行信息备注、信息标签和关联关系备注等标记。由于对元数据的各个版本进行了记录,因此这里同时支持对历史数据的标记,元数据的标记可由系统自动默认标记也可以由客户查询后手动进行标记,默认标记为空。负责对DB中的数据库元数据信息进行标记,所述的标记包括对元数据信息和关联联系进行备注。
所述的数据库字典管理模块负责记录、展示数据源的数据字典,在元数据被保存到DB后,数据库字典管理模块依据元数据监控管理模块记录下的关联字段,对库、表和字段信息进行查询,实现字典查询功能,并且同时支持对历史的数据字典信息的更新调整等操作,为客户规范化设计和实施数据管理系统提供了技术支持。
所述的元数据交互管理模块负责提供元数据信息管理页面并对外提供RESTFUL接口,支持包括对元数据信息的查询、更新和删除。
本发明中,全量采集完成后,即可查询数据。
在一个具体实施方式中,如图2所示,对元数据的采集和管理包括以下流程:
(1)操作员添加需要监控的数据源信息;
(2)系统检测生产环境是否符合软件运行要求,数据源是否连接正常,若是,进入下一步,反之,返回上一步;
(3)系统保存数据源连接信息至DB;
(4)系统在元数据监控管理下从DB中获取连接信息,开始对元数据进行采集,包括全量采集和增量采集,采集完成后产生Debezium就绪标志;
(5)将元数据信息保存至DB中;
(6)数据库字典管理模块对获取到的元数据信息添加时间记录信息,实现数据库字典功能;
(7)元数据标记管理模块对元数据信息进行默认标记;
(8)元数据版本管理模块对元数据信息进行版本更新,更新旧版本字段并增加新版本信息,回到步骤(5),直至元数据交互管理模块中的对外接口接收操作指令,结束,其中,操作指令包括查询、更新和删除。
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
上述的对实施例的描述是为便于该技术领域的普通技术人员能理解和使用发明。熟悉本领域技术的人员显然可以容易地对这些实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,不脱离本发明范畴所做出的改进和修改都应该在本发明的保护范围之内。
Claims (10)
1.一种数据库元数据采集与管理的方法,其特征在于,该方法通过使用元数据采集网络和元数据管理网络来实现,其中,元数据采集网络包括数据源数据库、内置关系型数据库、Debezium和Kafka,该方法包括:
步骤S1、元数据管理网络监控数据源数据库并开始全量采集元数据,同时执行步骤S2和步骤S3;
步骤S2、检测是否有增量数据,若是,进入步骤S5,若否,重新进入步骤S2;
步骤S3、元数据信息被保存到内置关系型数据库;
步骤S4、元数据管理网络对内置关系型数据库获取到的元数据进行管理,包括添加数据库字典、标记元数据信息和更新旧版本,然后返回步骤S3,直至元数据管理网络中的对外接口接收操作指令,结束;
步骤S5、进行增量采集,进入步骤S3。
2.根据权利要求1所述的一种数据库元数据采集与管理的方法,其特征在于,所述的增量采集的步骤包括:
步骤S501、当所述的数据源数据库中的元数据发生变化时,所述的Debezium对数据源数据库的事务日志进行解析;
步骤S502、所述的Kafka接收被Debezium解析的数据定义语言;
步骤S503、数据定义语言被读取后,发生变化的元数据信息被保存至内置关系型数据库。
3.根据权利要求1所述的一种数据库元数据采集与管理的方法,其特征在于,所述的元数据管理网络包括元数据监控管理模块、元数据版本管理模块、元数据标记管理模块、数据库字典管理模块和元数据交互管理模块,依次负责管理数据采集、更新版本、元数据信息标记、数据库字典和用户访问。
4.根据权利要求3所述的一种数据库元数据采集与管理的方法,其特征在于,所述的元数据监控管理模块负责对Debezium发起创建Connector指令,令Debezium采集数据并保存至内置关系型数据库中;从Kafka中读取数据定义语言;获取变化的元数据信息并完整保存到内置关系型数据库中,同时将这条保存记录保存到内置关系型数据库中。
5.根据权利要求3所述的一种数据库元数据采集与管理的方法,其特征在于,所述的元数据版本管理模块获取元数据信息;更新有变化的元数据的版本字段,同时新增变化的元数据信息;使用关联字段连接新版本和旧版本。
6.根据权利要求3所述的一种数据库元数据采集与管理的方法,其特征在于,所述的元数据标记管理模块负责对内置关系型数据库中的数据库元数据信息进行标记,所述的标记包括对元数据信息和关联联系进行备注。
7.根据权利要求6所述的一种数据库元数据采集与管理的方法,其特征在于,所述的标记包括由系统自动默认标记或者由客户查询后手动进行标记。
8.根据权利要求3所述的一种数据库元数据采集与管理的方法,其特征在于,所述的数据库字典管理模块对内置关系型数据库中的元数据信息进行查询,同时支持对历史的数据字典信息进行更新调整。
9.根据权利要求3所述的一种数据库元数据采集与管理的方法,其特征在于,所述的元数据交互管理模块负责提供元数据信息管理页面并对外提供接口,支持包括对元数据信息的查询、更新和删除。
10.根据权利要求1所述的一种数据库元数据采集与管理的方法,其特征在于,所述的数据源数据库包括MySQL、Oracle、SQLServer、DB2或PostgreSQL。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211020384.4A CN115470192A (zh) | 2022-08-24 | 2022-08-24 | 一种数据库元数据采集与管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211020384.4A CN115470192A (zh) | 2022-08-24 | 2022-08-24 | 一种数据库元数据采集与管理的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115470192A true CN115470192A (zh) | 2022-12-13 |
Family
ID=84366283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211020384.4A Pending CN115470192A (zh) | 2022-08-24 | 2022-08-24 | 一种数据库元数据采集与管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115470192A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493641A (zh) * | 2024-01-02 | 2024-02-02 | 中国电子科技集团公司第二十八研究所 | 一种基于语义元数据的二次模糊搜索方法 |
-
2022
- 2022-08-24 CN CN202211020384.4A patent/CN115470192A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493641A (zh) * | 2024-01-02 | 2024-02-02 | 中国电子科技集团公司第二十八研究所 | 一种基于语义元数据的二次模糊搜索方法 |
CN117493641B (zh) * | 2024-01-02 | 2024-03-22 | 中国电子科技集团公司第二十八研究所 | 一种基于语义元数据的二次模糊搜索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6247149B1 (en) | Distributed diagnostic logging system | |
WO2023087673A1 (zh) | 一种层次数据检索方法、装置和设备 | |
CN112445863B (zh) | 一种数据实时同步方法及系统 | |
CA2717673C (en) | Detecting and applying database schema changes to reports | |
JP6996812B2 (ja) | 分散データベースにおけるデータブロックを処理する方法、プログラム、およびデバイス | |
US6389430B1 (en) | Real-time database object statistics collection | |
CN105005618A (zh) | 一种异构数据库之间的数据同步方法及系统 | |
US20190324987A1 (en) | Storing and identifying metadata through extended properties in a historization system | |
US20160055197A1 (en) | Tracking change data in a database | |
US20060036579A1 (en) | Apparatus, system, and method for associating resources using a time based algorithm | |
CN107291926B (zh) | 一种binlog分析方法 | |
US20110145186A1 (en) | Online access to database snapshots | |
CN110245037B (zh) | 一种基于日志的Hive用户操作行为还原方法 | |
CN111581232B (zh) | 一种基于elk的慢sql实时分析方法及系统 | |
CN114691704A (zh) | 一种基于MySQL binlog的元数据同步方法 | |
CN115470192A (zh) | 一种数据库元数据采集与管理的方法 | |
CN103399921A (zh) | 一种基于Oracle数据库的一致点捕获方法 | |
US7275065B2 (en) | Method and system for supporting per-user-per-row read/unread tracking for relational databases | |
CN114595286A (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
Zhou et al. | An ETL strategy for real-time data warehouse | |
EP4336375A1 (en) | Data processing method and apparatus | |
CN107357915A (zh) | 一种数据存储方法及系统 | |
CN116821179A (zh) | 一种达梦数据库跨库搜索系统和方法 | |
CN114595224A (zh) | 数据存储方法及装置、数据查询方法及装置 | |
CN113377816A (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 |