CN115145943A - 多数据源元数据快速比对方法、系统、设备和存储介质 - Google Patents
多数据源元数据快速比对方法、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN115145943A CN115145943A CN202211081165.7A CN202211081165A CN115145943A CN 115145943 A CN115145943 A CN 115145943A CN 202211081165 A CN202211081165 A CN 202211081165A CN 115145943 A CN115145943 A CN 115145943A
- Authority
- CN
- China
- Prior art keywords
- metadata
- database
- hash
- metadata information
- data source
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/235—Update request formulation
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/2379—Updates performed during online database operations; commit processing
-
- 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
- G06F16/2445—Data retrieval commands; View definitions
-
- 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/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,具体涉及多数据源元数据快速比对方法、系统、设备和存储介质。该方法根据数据源名称获取当前数据库连接,构建初始化SQL语句,查询数据库中对应的元数据信息;根据查询到的数据库中的元数据信息,基于Hash规则计算每条元数据信息内容的Hash值;针对待比较的元数据信息,比对元数据信息的Hash值,并以列存储方式进行分块并行计算;分块并行计算Hash值对比的待比较的元数据信息的内容是否相同,筛选出本地待删减、新增、修改的表和字段的元数据记录。本发明通过将多种数据源的元数据进行快速比对,提高了数据交互的效率,通过Hash值比对的方式,避免逐条逐个记录的比对,提高了计算效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种多数据源元数据快速比对方法、系统、设备和存储介质。
背景技术
企业数字化经营中,企业数据呈现海量、多源、快速变化的特点。在数据混合部署的形态下,企业数据会分散存储于孤岛式的Oracle、SQL、PostgreSQL等各种数据库、或Hbase等大数据平台、数据中台、以及各项业务系统中。企业因经营发展的需要,在调用多数据源下的数据时,往往需要企业的技术人员根据需求,根据不同数据源进行重复性的数据开发、数据处理等代码编写工作。耗费大量的时间成本和人力成本。
企业或可导入目前市面上的数据管理工具辅助使用,但现有技术中的数据管理工具,一般仅支持单一的数据源、或与该工具同厂商的数据源,提供数据管理功能,无法实现兼容目前市面上通用的多数据源同时进行数据管理的需求。
同时针对各个数据库和数据平台的管理中做到数据资产化和后续数据服务化的一个核心能力主要在于针对不同数据库和平台的元数据的集成能力。由于企业需要集中管理的数据系统越来越多,保证统一数据管理平台的元数据和各自源系统的元数据的同步成为影响后续基于数据应用的关键。因为企业内部各个应用系统的变化会导致各自元数据会有变化,如果统一数据管理平台无法同步各自平台的元数据会影响后续基于元数据的功能使用,比如数据目录,API开发,数据质量等。
传统的元数据更新一般采取的方式主要是通过读取各个数据平台的元数据表/视图,然后把所有记录都同步到统一数据管理平台内和已经存储的元数据进行逐条比对。这个过程耗时很长,同时有可能影响源系统的系统负载。另外伴随着统一数据管理平台所管理的数据库数量,以及每个数据库内部表的数量的增长,整体元数据更新效率将成为影响平台可扩展性,整体效率和稳定性的关键因素之一。
发明内容
鉴于此,针对目前绝大部分数据库/平台都存在多数据应用或者多schema的情况,本发明提供了一种多数据源元数据快速比对方法、系统、设备和存储介质,通过针对应用层面分库分表的方式分别读取更新相关元数据信息,从而能达到分而治之方式并发读取相关元数据信息,减少单一超大查询长时间锁库锁表的情况;而且,采取Hash校验的方式改变过去每次比对需要读取整行数据同时对比一行中每列记录的情况,通过Hash算法一次只需要比对一条Hash结果就可以确定元数据是否发生变化需要更新,整体可以极大提高更新比对的效率。
为实现上述目的,本发明实施例提供了如下的技术方案:
第一方面,在本发明提供的一个实施例中,提供了一种多数据源元数据快速比对方法,包括以下步骤:
根据数据源名称获取当前数据库连接,构建初始化SQL语句,查询数据库中对应的元数据信息;
根据查询到的数据库中的元数据信息,基于Hash规则计算每条元数据信息内容的Hash值;
针对待比较的元数据信息,比对元数据信息的Hash值,并以列存储方式进行分块并行计算;
分块并行计算Hash值对比的待比较的元数据信息的内容是否相同,筛选出本地待删减、新增、修改的表和字段的元数据记录。
作为本发明的进一步方案,所述多数据源元数据快速比对方法中,采取Hash校验的方式比对元数据信息之间的Hash值,基于一条Hash结果用以确定元数据是否发生变化需要更新。
作为本发明的进一步方案,根据数据源名称获取当前数据库连接,还包括:
查询数据库中的同步标识状态,检查当前同步任务是否为第一次全量同步;
若为第一次全量同步,则将同步状态更新为“开始同步”,并查询数据库中是否存在当前数据源的元数据配置,存在则清空。
作为本发明的进一步方案,构建初始化SQL语句,查询数据库中对应的元数据信息之前,还包括:
读取目标数据库信息, 根据type类型判断需连接的数据库,获取数据库数据连接。
作为本发明的进一步方案,查询数据库时,还包括:判断数据源内数据库的数目,根据数据库的数目初始化每个数据库单独的元数据读取语句,并根据多条查询SQL的情况设置后续数据写入的合并逻辑的标识符。
作为本发明的进一步方案,所述多数据源元数据快速比对方法,还包括:
根据多个数据库分别的查询解析查询到的目标数据库元数据信息,将目标库的表信息、属性信息保存至本地数据库中;
每个数据库的分别读取SQL,并判断所需保存的数据是否超过预设保存阈值,若超过预设保存阈值则分批次保存,否则一次性保存。
作为本发明的进一步方案,每个数据库的分别读取SQL,所需保存的数据在分批次保存时,采用列存储方式进行分块并行计算,将Hash整体比对划分为分块多线程Hash比对。
作为本发明的进一步方案,所需保存的数据在分批次保存成功时,更新数据库中的同步状态标志位“同步成功”;若分批次保存失败,则更新同步状态为“同步失败”;分批次保存失败时, 判断是否为第一次全量同步,若是则则将同步状态更新为“开始同步”,若不是第一次全量同步,则进行更新数据源操作。
作为本发明的进一步方案,读取目标数据库信息时,根据type类型判断需要连接的数据库,获取数据库数据连接、构建初始化SQL语句,查询数据库中对应的元数据信息;若数据源下有多个数据库,则根据数据库数目单独生成多条SQL读取语句。
作为本发明的进一步方案,读取目标数据库信息成功时,解析查询到的元数据信息,获取查询到的表数及列数,若为空,清空本地保存的表和字段元数据信息,不为空,则进行元数据对比操作。
作为本发明的进一步方案,筛选出本地需要删减、新增、修改的表和字段的元数据记录,判断需要删减、新增、修改的表和字段的元数据记录数量是否超过分批次阈值,若超过则分批次删减、新增、修改,若不超过则直接删减、新增、修改。
作为本发明的进一步方案,所述多数据源元数据快速比对方法,还包括:删除过期的元数据信息,同步结束时,记录同步执行时间,更新同步状态。
第二方面,在本发明提供的一个实施例中,提供了一种多数据源元数据快速比对系统,该系统包括:
初始化模块,用于根据数据源名称获取当前数据库连接,构建初始化SQL语句,查询数据库中对应的元数据信息;
元数据计算模块,用于根据查询到的数据库中的元数据信息,基于Hash规则计算每条元数据信息内容的Hash值;
Hash值比对模块,用于针对待比较的元数据信息,比对元数据信息的Hash值,并以列存储方式进行分块并行计算;
元数据记录更新模块,用于分块并行计算Hash值对比的待比较的元数据信息的内容是否相同,筛选出本地待删减、新增、修改的表和字段的元数据记录。
第三方面,在本发明提供的又一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现多数据源元数据快速比对方法的步骤。
第四方面,在本发明提供的再一个实施例中,提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现所述多数据源元数据快速比对方法的步骤。
本发明提供的技术方案,与现有的技术方案相比,具有如下有益效果:
本发明提供的多数据源元数据快速比对方法、系统、设备和存储介质,通过针对应用层面分库分表的方式分别读取更新相关元数据信息,从而能达到分而治之方式并发读取相关元数据信息,减少单一超大查询长时间锁库锁表的情况;而且,采取Hash校验的方式改变过去每次比对需要读取整行数据同时对比一行中每列记录的情况,通过Hash算法一次只需要比对一条Hash结果就可以确定元数据是否发生变化需要更新,整体可以极大提高更新比对的效率。
相对于传统的数据库记录逐条比较的方式,本发明采用Hash校验的方式,每次先对需要比较的两条记录进行Hash计算,每次比对只需要针对Hash值进行,同时列存储可以更容易进行分块并行计算,更加提高CPU的使用效率。而且,多数据源并行比对的方式,针对系统源系统多个数据库,可以通过不同数据库表和不同数据源拆分成多条SQL语句一次创建多个数据库连接进行并行元数据读取以及比对,通过多并发提高数据读取的效率以及单条语句执行的时间,缩短整个元数据更新的时间。
本发明通过将多种数据源的元数据进行快速比对,提高统一数据管理平台和源系统之间数据交互的效率,减少单个数据查询的执行时间,提高容错能力。同时针对元数据更新规模一般比较小的特性,在比对更新目标系统(统一数据管理平台)过程中,通过Hash值比对的方式,避免逐条逐个记录的比对,进一步提高了计算效率。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。在附图中:
图1为本发明一个实施例的一种多数据源元数据快速比对方法的流程图。
图2为现有技术中传统元数据更新方式示意图。
图3为本发明一个实施例的一种多数据源元数据快速比对方法中多数据源并行比对的方式示意图。
图4为传统比对方式中数据库记录逐条比较的示意图。
图5为本发明一个实施例的一种多数据源元数据快速比对方法中Hash整体比对示意图。
图6为本发明一个实施例的一种多数据源元数据快速比对方法中分块多线程Hash比对示意图。
图7为本发明一个实施例的一种多数据源元数据快速比对系统的系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
应当理解,为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一回调函数和第二回调函数仅仅是为了区分不同的回调函数,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
由于传统的元数据更新一般采取的方式主要是通过读取各个数据平台的元数据表/视图,然后把所有记录都同步到统一数据管理平台内和已经存储的元数据进行逐条比对。这个过程耗时很长,同时有可能影响源系统的系统负载。另外伴随着统一数据管理平台所管理的数据库数量,以及每个数据库内部表的数量的增长,整体元数据更新效率将成为影响平台可扩展性,整体效率和稳定性的关键因素之一。
鉴于此,本发明提供了一种多数据源元数据快速比对方法、系统、设备和存储介质,通过针对应用层面分库分表的方式分别读取更新相关元数据信息,从而能达到分而治之方式并发读取相关元数据信息,减少单一超大查询长时间锁库锁表的情况;而且,采取Hash校验的方式改变过去每次比对需要读取整行数据同时对比一行中每列记录的情况,通过Hash算法一次只需要比对一条Hash结果就可以确定元数据是否发生变化需要更新,整体可以极大提高更新比对的效率。
还应当进理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
具体地,下面结合附图,对本发明实施例作进一步阐述。
请参阅图1,图1是本发明实施例提供的一种多数据源元数据快速比对方法的流程图,如图1所示,该多数据源元数据快速比对方法包括步骤S10至步骤S40。
S10、根据数据源名称获取当前数据库连接,构建初始化SQL语句,查询数据库中对应的元数据信息;
S20、根据查询到的数据库中的元数据信息,基于Hash规则计算每条元数据信息内容的Hash值;
S30、针对待比较的元数据信息,比对元数据信息的Hash值,并以列存储方式进行分块并行计算;
S40、分块并行计算Hash值对比的待比较的元数据信息的内容是否相同,筛选出本地待删减、新增、修改的表和字段的元数据记录。
发明实施例中采用Hash校验的方式,每次先对需要比较的两条记录进行Hash计算,每次比对只需要针对Hash值进行,同时列存储可以更容易进行分块并行计算,更加提高CPU的使用效率。
本发明实施例的执行主体是执行多数据源元数据快速比对方法的数据库/平台设备,该设备可以是PC、便携计算机、移动终端等具有显示和处理功能的设备。
应当理解的是,在用户应用端的应用配置请求时,由执行多数据源元数据快速比对方法的数据库/平台设备通过与源系统之间进行数据交互的方式,减少单个数据查询的执行时间,提高容错能力。
在一些实施例中,所述多数据源元数据快速比对方法中,采取Hash校验的方式比对元数据信息之间的Hash值,基于一条Hash结果用以确定元数据是否发生变化需要更新。
在一些实施例中,根据数据源名称获取当前数据库连接,还包括:
查询数据库中的同步标识状态,检查当前同步任务是否为第一次全量同步;
若为第一次全量同步,则将同步状态更新为“开始同步”,并查询数据库中是否存在当前数据源的元数据配置,存在则清空。
在一些实施例中,构建初始化SQL语句,查询数据库中对应的元数据信息之前,还包括:
读取目标数据库信息, 根据type类型判断需连接的数据库,获取数据库数据连接。
其中,查询数据库时,还包括:判断数据源内数据库的数目,根据数据库的数目初始化每个数据库单独的元数据读取语句,并根据多条查询SQL的情况设置后续数据写入的合并逻辑的标识符。
因此,在多数据源并行元数据执行时,假设某数据源有4个数据库,这些数据库的元数据分别或者整体储存在3张表中,每个数据库可能有不同的设计实现,具体语句需要根据不同数据库进行调整。
参见图2所示,传统元数据更新方式,单挑语句读取所有系统元数据信息进行比对。参见他3所示,本发明中多数据源并行比对的方式,针对系统源系统多个数据库,可以通过不同数据库表和不同数据源拆分成多条SQL语句一次创建多个数据库连接进行并行元数据读取以及比对,通过多并发提高数据读取的效率以及单条语句执行的时间,缩短整个元数据更新的时间。
在一些实施例中,所述多数据源元数据快速比对方法,还包括:
根据多个数据库分别的查询解析查询到的目标数据库元数据信息,将目标库的表信息、属性信息保存至本地数据库中;
每个数据库的分别读取SQL,并判断所需保存的数据是否超过预设保存阈值,若超过预设保存阈值则分批次保存,否则一次性保存。
在本实施例中,每个数据库的分别读取SQL,所需保存的数据在分批次保存时,采用列存储方式进行分块并行计算,将Hash整体比对划分为分块多线程Hash比对。
在一些实施例中,所需保存的数据在分批次保存成功时,更新数据库中的同步状态标志位“同步成功”;若分批次保存失败,则更新同步状态为“同步失败”;分批次保存失败时, 判断是否为第一次全量同步,若是则则将同步状态更新为“开始同步”,若不是第一次全量同步,则进行更新数据源操作。
在一些实施例中,读取目标数据库信息时,根据type类型判断需要连接的数据库,获取数据库数据连接、构建初始化SQL语句,查询数据库中对应的元数据信息;若数据源下有多个数据库,则根据数据库数目单独生成多条SQL读取语句。
在一些实施例中,读取目标数据库信息成功时,解析查询到的元数据信息,获取查询到的表数及列数,若为空,清空本地保存的表和字段元数据信息,不为空,则进行元数据对比操作。
在一些实施例中,筛选出本地需要删减、新增、修改的表和字段的元数据记录,判断需要删减、新增、修改的表和字段的元数据记录数量是否超过分批次阈值,若超过则分批次删减、新增、修改,若不超过则直接删减、新增、修改。
在一些实施例中,所述多数据源元数据快速比对方法,还包括:删除过期的元数据信息,同步结束时,记录同步执行时间,更新同步状态。
参见图4所示,由于传统的比对方式主要采用数据库记录逐条比较的方式进行,元数据的系统表的列数比较多,完整比对一条记录所需时间比较长。同时一般稳定运行的系统,元数据的大部分字段变更比较少,但是每次不全量比较,无法保证所有的元数据都全部得到更新。
相较于传统的比对方式,参见图5和图6所示,本发明实施例的采用Hash校验的方式,每次先对需要比较的两条记录进行Hash计算,每次比对只需要针对Hash值进行,同时列存储可以更容易进行分块并行计算,更加提高CPU的使用效率。
本发明在多数据源元数据快速比对时,详细数据更新实现的过程如下:
1、根据数据源名称获取当前数据库连接;
2、查询数据库中的同步标识状态,检查当前同步任务是否为第一次同步;
3、如果是第一次全量同步,把同步状态更新至“开始同步”;查询数据库中是否存在当前数据源的元数据配置,存在则清空;
4、读取目标数据库信息,根据type类型判断需要连接的数据库,获取数据库数据连接、构建初始化SQL语句,查询数据库中对应的元数据信息;
5、查询过程中,首先判断数据源内数据库的数目,根据数据库的数目初始化每个数据库单独的元数据读取语句,同时根据多条查询SQL的情况设置后续数据写入的合并逻辑的标识符;
6、根据多个数据库分别的查询解析查询到的目标数据库元数据信息,将目标库的表信息、属性信息保存至本地数据库中;
7、每个数据库的分别读取SQL判断需要保存的数据是否超过5000,超过5000分批次保存,否则一次性保存。
8、保存成功,更新数据库中的同步状态标志位“同步成功”;如果失败更新同步状态为“同步失败”;
9、回到第3步,如果不是第一次同步,则进行更新数据源操作;
10、读取目标数据库信息,根据type类型判断需要连接的数据库,获取数据库数据连接、构建初始化SQL语句,查询数据库中对应的元数据信息;如果数据源下有多个数据库,则根据数据库数目单独生成多条SQL读取语句;
11、读取成功,解析查询到的元数据信息,获取查询到的表数及列数,如果为空,清空本地保存的表和字段元数据信息,不为空,则进行元数据对比操作;
12、首先针对某数据源下某数据库的元数据,每条元数据内容计算Hash值,在目标系统元数据目标表以相同的Hash规则同时计算对应条目的Hash值,比对两边的Hash值;
13、Hash对比两方表与字段是否相同,筛选出本地需要删减、新增、修改的表和字段的元数据记录;
如果元数据记录比对数超过5000条,则可以按照3000条分片进行并行比对,通过多线程的方式并行执行提高比对效率;
14、判断需要新增的数量,超过1000分批次新增,否则直接新增;
15、判断需要修改的数量,超过1000分批次修改,否则直接修改;
16、删除过期的元数据信息;
17、同步结束,记录同步执行时间,更新同步状态。
本发明提供的多数据源元数据快速比对方法、系统、设备和存储介质,通过针对应用层面分库分表的方式分别读取更新相关元数据信息,从而能达到分而治之方式并发读取相关元数据信息,减少单一超大查询长时间锁库锁表的情况;而且,采取Hash校验的方式改变过去每次比对需要读取整行数据同时对比一行中每列记录的情况,通过Hash算法一次只需要比对一条Hash结果就可以确定元数据是否发生变化需要更新,整体可以极大提高更新比对的效率。
应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
参见图7所示,本发明的一个实施例提供一种多数据源元数据快速比对系统,该系统包括初始化模块100、元数据计算模块200、Hash值比对模块300以及元数据记录更新模块400。
在本发明实施例中,所述初始化模块100用于根据数据源名称获取当前数据库连接,构建初始化SQL语句,查询数据库中对应的元数据信息。
在本发明实施例中,所述元数据计算模块200用于根据查询到的数据库中的元数据信息,基于Hash规则计算每条元数据信息内容的Hash值。
在本发明实施例中,所述Hash值比对模块300用于针对待比较的元数据信息,比对元数据信息的Hash值,并以列存储方式进行分块并行计算。
在本发明实施例中,所述元数据记录更新模块400用于分块并行计算Hash值对比的待比较的元数据信息的内容是否相同,筛选出本地待删减、新增、修改的表和字段的元数据记录。
本发明的多数据源元数据快速比对系统,相对于传统的数据库记录逐条比较的方式,本发明采用Hash校验的方式,每次先对需要比较的两条记录进行Hash计算,每次比对只需要针对Hash值进行,同时列存储可以更容易进行分块并行计算,更加提高CPU的使用效率。而且,多数据源并行比对的方式,针对系统源系统多个数据库,可以通过不同数据库表和不同数据源拆分成多条SQL语句一次创建多个数据库连接进行并行元数据读取以及比对,通过多并发提高数据读取的效率以及单条语句执行的时间,缩短整个元数据更新的时间。
本发明通过将多种数据源的元数据进行快速比对,提高统一数据管理平台和源系统之间数据交互的效率,减少单个数据查询的执行时间,提高容错能力。同时针对元数据更新规模一般比较小的特性,在比对更新目标系统(统一数据管理平台)过程中,通过Hash值比对的方式,避免逐条逐个记录的比对,进一步提高了计算效率。
需要特别说明的是,多数据源元数据快速比对系统进行执行如前述实施例的一种多数据源元数据快速比对方法,因此,本实施例中对多数据源元数据快速比对方法不再详细介绍。
在一个实施例中,在本发明的实施例中还提供了一种计算机设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述的多数据源元数据快速比对方法,该处理器执行指令时实现上述各方法实施例中的步骤:
根据数据源名称获取当前数据库连接,构建初始化SQL语句,查询数据库中对应的元数据信息;
根据查询到的数据库中的元数据信息,基于Hash规则计算每条元数据信息内容的Hash值;
针对待比较的元数据信息,比对元数据信息的Hash值,并以列存储方式进行分块并行计算;
分块并行计算Hash值对比的待比较的元数据信息的内容是否相同,筛选出本地待删减、新增、修改的表和字段的元数据记录。
在多数据源元数据快速比对时,详细数据更新实现的过程如下:
1、根据数据源名称获取当前数据库连接;
2、查询数据库中的同步标识状态,检查当前同步任务是否为第一次同步;
3、如果是第一次全量同步,把同步状态更新至“开始同步”;查询数据库中是否存在当前数据源的元数据配置,存在则清空;
4、读取目标数据库信息,根据type类型判断需要连接的数据库,获取数据库数据连接、构建初始化SQL语句,查询数据库中对应的元数据信息;
5、查询过程中,首先判断数据源内数据库的数目,根据数据库的数目初始化每个数据库单独的元数据读取语句,同时根据多条查询SQL的情况设置后续数据写入的合并逻辑的标识符;
6、根据多个数据库分别的查询解析查询到的目标数据库元数据信息,将目标库的表信息、属性信息保存至本地数据库中;
7、每个数据库的分别读取SQL判断需要保存的数据是否超过5000,超过5000分批次保存,否则一次性保存。
8、保存成功,更新数据库中的同步状态标志位“同步成功”;如果失败更新同步状态为“同步失败”;
9、回到第3步,如果不是第一次同步,则进行更新数据源操作;
10、读取目标数据库信息,根据type类型判断需要连接的数据库,获取数据库数据连接、构建初始化SQL语句,查询数据库中对应的元数据信息;如果数据源下有多个数据库,则根据数据库数目单独生成多条SQL读取语句;
11、读取成功,解析查询到的元数据信息,获取查询到的表数及列数,如果为空,清空本地保存的表和字段元数据信息,不为空,则进行元数据对比操作;
12、首先针对某数据源下某数据库的元数据,每条元数据内容计算Hash值,在目标系统元数据目标表以相同的Hash规则同时计算对应条目的Hash值,比对两边的Hash值;
13、Hash对比两方表与字段是否相同,筛选出本地需要删减、新增、修改的表和字段的元数据记录;
如果元数据记录比对数超过5000条,则可以按照3000条分片进行并行比对,通过多线程的方式并行执行提高比对效率;
14、判断需要新增的数量,超过1000分批次新增,否则直接新增;
15、判断需要修改的数量,超过1000分批次修改,否则直接修改;
16、删除过期的元数据信息;
17、同步结束,记录同步执行时间,更新同步状态。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
在本发明的一个实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤:
根据数据源名称获取当前数据库连接,构建初始化SQL语句,查询数据库中对应的元数据信息;
根据查询到的数据库中的元数据信息,基于Hash规则计算每条元数据信息内容的Hash值;
针对待比较的元数据信息,比对元数据信息的Hash值,并以列存储方式进行分块并行计算;
分块并行计算Hash值对比的待比较的元数据信息的内容是否相同,筛选出本地待删减、新增、修改的表和字段的元数据记录。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
综上所述,本发明提供的多数据源元数据快速比对方法、系统、设备和存储介质,通过针对应用层面分库分表的方式分别读取更新相关元数据信息,从而能达到分而治之方式并发读取相关元数据信息,减少单一超大查询长时间锁库锁表的情况;而且,采取Hash校验的方式改变过去每次比对需要读取整行数据同时对比一行中每列记录的情况,通过Hash算法一次只需要比对一条Hash结果就可以确定元数据是否发生变化需要更新,整体可以极大提高更新比对的效率。
相对于传统的数据库记录逐条比较的方式,本发明采用Hash校验的方式,每次先对需要比较的两条记录进行Hash计算,每次比对只需要针对Hash值进行,同时列存储可以更容易进行分块并行计算,更加提高CPU的使用效率。而且,多数据源并行比对的方式,针对系统源系统多个数据库,可以通过不同数据库表和不同数据源拆分成多条SQL语句一次创建多个数据库连接进行并行元数据读取以及比对,通过多并发提高数据读取的效率以及单条语句执行的时间,缩短整个元数据更新的时间。
本发明通过将多种数据源的元数据进行快速比对,提高统一数据管理平台和源系统之间数据交互的效率,减少单个数据查询的执行时间,提高容错能力。同时针对元数据更新规模一般比较小的特性,在比对更新目标系统(统一数据管理平台)过程中,通过Hash值比对的方式,避免逐条逐个记录的比对,进一步提高了计算效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种多数据源元数据快速比对方法,其特征在于,该方法包括以下步骤:
根据数据源名称获取当前数据库连接,构建初始化SQL语句,查询数据库中对应的元数据信息;
根据查询到的数据库中的元数据信息,基于Hash规则计算每条元数据信息内容的Hash值;
针对待比较的元数据信息,比对元数据信息的Hash值,并以列存储方式进行分块并行计算;
分块并行计算Hash值对比的待比较的元数据信息的内容是否相同,筛选出本地待删减、新增、修改的表和字段的元数据记录。
2.如权利要求1所述的多数据源元数据快速比对方法,其特征在于,所述多数据源元数据快速比对方法中,采取Hash校验的方式比对元数据信息之间的Hash值,基于一条Hash结果用以确定元数据是否发生变化需要更新。
3.如权利要求2所述的多数据源元数据快速比对方法,其特征在于,根据数据源名称获取当前数据库连接,还包括:
查询数据库中的同步标识状态,检查当前同步任务是否为第一次全量同步;
若为第一次全量同步,则将同步状态更新为“开始同步”,并查询数据库中是否存在当前数据源的元数据配置,存在则清空。
4.如权利要求3所述的多数据源元数据快速比对方法,其特征在于,构建初始化SQL语句,查询数据库中对应的元数据信息之前,还包括:
读取目标数据库信息, 根据type类型判断需连接的数据库,获取数据库数据连接。
5.如权利要求1所述的多数据源元数据快速比对方法,其特征在于,查询数据库时,还包括:判断数据源内数据库的数目,根据数据库的数目初始化每个数据库单独的元数据读取语句,并根据多条查询SQL的情况设置后续数据写入的合并逻辑的标识符。
6.如权利要求5所述的多数据源元数据快速比对方法,其特征在于,所述多数据源元数据快速比对方法,还包括:
根据多个数据库分别的查询解析查询到的目标数据库元数据信息,将目标库的表信息、属性信息保存至本地数据库中;
每个数据库的分别读取SQL,并判断所需保存的数据是否超过预设保存阈值,若超过预设保存阈值则分批次保存,否则一次性保存。
7.如权利要求6所述的多数据源元数据快速比对方法,其特征在于,每个数据库的分别读取SQL,所需保存的数据在分批次保存时,采用列存储方式进行分块并行计算,将Hash整体比对划分为分块多线程Hash比对。
8.一种多数据源元数据快速比对系统,其特征在于,该系统包括:
初始化模块,用于根据数据源名称获取当前数据库连接,构建初始化SQL语句,查询数据库中对应的元数据信息;
元数据计算模块,用于根据查询到的数据库中的元数据信息,基于Hash规则计算每条元数据信息内容的Hash值;
Hash值比对模块,用于针对待比较的元数据信息,比对元数据信息的Hash值,并以列存储方式进行分块并行计算;
元数据记录更新模块,用于分块并行计算Hash值对比的待比较的元数据信息的内容是否相同,筛选出本地待删减、新增、修改的表和字段的元数据记录。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的多数据源元数据快速比对程序,其中所述多数据源元数据快速比对程序被所述处理器执行时,实现如权利要求1至7中任一项所述的多数据源元数据快速比对方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有多数据源元数据快速比对程序,其中所述多数据源元数据快速比对程序被处理器执行时,实现如权利要求1至7中任一项所述的多数据源元数据快速比对方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211081165.7A CN115145943B (zh) | 2022-09-06 | 2022-09-06 | 多数据源元数据快速比对方法、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211081165.7A CN115145943B (zh) | 2022-09-06 | 2022-09-06 | 多数据源元数据快速比对方法、系统、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115145943A true CN115145943A (zh) | 2022-10-04 |
CN115145943B CN115145943B (zh) | 2023-02-28 |
Family
ID=83416551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211081165.7A Active CN115145943B (zh) | 2022-09-06 | 2022-09-06 | 多数据源元数据快速比对方法、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115145943B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115509800A (zh) * | 2022-11-21 | 2022-12-23 | 苏州浪潮智能科技有限公司 | 一种元数据校验方法、系统、计算机设备及存储介质 |
CN115577157A (zh) * | 2022-11-24 | 2023-01-06 | 河北热点科技股份有限公司 | 多数据源元数据终端查询快速比对方法及系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件系统元数据管理方法 |
CN105138635A (zh) * | 2015-08-21 | 2015-12-09 | 中国人民解放军装备学院 | 一种利用哈希值比对进行数据增量复制的方法 |
CN105162855A (zh) * | 2015-08-18 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 增量数据同步方法和装置 |
CN106326035A (zh) * | 2016-08-13 | 2017-01-11 | 南京叱咤信息科技有限公司 | 一种基于文件元数据的增量备份方法 |
CN108062399A (zh) * | 2017-12-21 | 2018-05-22 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN108108456A (zh) * | 2017-12-28 | 2018-06-01 | 重庆邮电大学 | 一种基于元数据的信息资源分布式查询方法 |
US20180275961A1 (en) * | 2017-03-23 | 2018-09-27 | Cognizant Technology Solutions India Pvt. Ltd. | Method and system for fast data comparison using accelerated and incrementally synchronized cyclic data traversal algorithm |
US10152527B1 (en) * | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
CN113297156A (zh) * | 2020-02-21 | 2021-08-24 | 北京国双科技有限公司 | 一种数据同步方法、装置、设备及介质 |
WO2021184572A1 (zh) * | 2020-03-20 | 2021-09-23 | 平安国际智慧城市科技股份有限公司 | 查询方法、装置、计算机设备和存储介质 |
CN114756577A (zh) * | 2022-03-25 | 2022-07-15 | 北京友友天宇系统技术有限公司 | 多源异构数据的处理方法、计算机设备及存储介质 |
-
2022
- 2022-09-06 CN CN202211081165.7A patent/CN115145943B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件系统元数据管理方法 |
CN105162855A (zh) * | 2015-08-18 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 增量数据同步方法和装置 |
CN105138635A (zh) * | 2015-08-21 | 2015-12-09 | 中国人民解放军装备学院 | 一种利用哈希值比对进行数据增量复制的方法 |
US10152527B1 (en) * | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
CN106326035A (zh) * | 2016-08-13 | 2017-01-11 | 南京叱咤信息科技有限公司 | 一种基于文件元数据的增量备份方法 |
US20180275961A1 (en) * | 2017-03-23 | 2018-09-27 | Cognizant Technology Solutions India Pvt. Ltd. | Method and system for fast data comparison using accelerated and incrementally synchronized cyclic data traversal algorithm |
CN108062399A (zh) * | 2017-12-21 | 2018-05-22 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN108108456A (zh) * | 2017-12-28 | 2018-06-01 | 重庆邮电大学 | 一种基于元数据的信息资源分布式查询方法 |
CN113297156A (zh) * | 2020-02-21 | 2021-08-24 | 北京国双科技有限公司 | 一种数据同步方法、装置、设备及介质 |
WO2021184572A1 (zh) * | 2020-03-20 | 2021-09-23 | 平安国际智慧城市科技股份有限公司 | 查询方法、装置、计算机设备和存储介质 |
CN114756577A (zh) * | 2022-03-25 | 2022-07-15 | 北京友友天宇系统技术有限公司 | 多源异构数据的处理方法、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
GRZEGORZ CHMAJ等: "Decentralization of a multi data source distributed processing system using a distributed hash table", 《INT. J. COMMUNICATIONS, NETWORK AND SYSTEM SCIENCES》 * |
王耐东等: "基于Hadoop的产品大数据分布式存储优化", 《计算机科学与应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115509800A (zh) * | 2022-11-21 | 2022-12-23 | 苏州浪潮智能科技有限公司 | 一种元数据校验方法、系统、计算机设备及存储介质 |
WO2024109236A1 (zh) * | 2022-11-21 | 2024-05-30 | 苏州元脑智能科技有限公司 | 元数据校验方法、系统、计算机设备及非易失性可读存储介质 |
CN115577157A (zh) * | 2022-11-24 | 2023-01-06 | 河北热点科技股份有限公司 | 多数据源元数据终端查询快速比对方法及系统 |
CN115577157B (zh) * | 2022-11-24 | 2023-02-28 | 河北热点科技股份有限公司 | 多数据源元数据终端查询快速比对方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115145943B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bacon et al. | Spanner: Becoming a SQL system | |
US20220067025A1 (en) | Ordering transaction requests in a distributed database according to an independently assigned sequence | |
CN115145943B (zh) | 多数据源元数据快速比对方法、系统、设备和存储介质 | |
US10853343B2 (en) | Runtime data persistency for in-memory database systems | |
US10019536B2 (en) | Snapshot-consistent, in-memory graph instances in a multi-user database | |
US7584204B2 (en) | Fuzzy lookup table maintenance | |
US8352458B2 (en) | Techniques for transforming and loading data into a fact table in a data warehouse | |
US7653665B1 (en) | Systems and methods for avoiding database anomalies when maintaining constraints and indexes in presence of snapshot isolation | |
US7822710B1 (en) | System and method for data collection | |
US8601007B2 (en) | Net change notification based cached views with linked attributes | |
CN111259004B (zh) | 一种存储引擎中数据索引的方法以及相关装置 | |
US20150269215A1 (en) | Dependency-aware transaction batching for data replication | |
CN112084161B (zh) | 基于数据库的数据处理方法、装置以及可读存储介质 | |
CN110309122B (zh) | 获取增量数据的方法、装置、服务器和存储介质 | |
US8667010B2 (en) | Database table partitioning allowing overlaps used in full text query | |
US10664459B2 (en) | Database managing method, database managing system, and database tree structure | |
CN108776678B (zh) | 基于移动端NoSQL数据库的索引创建方法及装置 | |
CN111917834A (zh) | 一种数据同步方法、装置、存储介质及计算机设备 | |
US20150081616A1 (en) | Database insert with deferred materialization | |
US8909681B2 (en) | Gap detection in a temporally unique index in a relational database | |
US11188228B1 (en) | Graphing transaction operations for transaction compliance analysis | |
CN117421302A (zh) | 一种数据处理方法及相关设备 | |
CN104111962A (zh) | 具有批量操作的增强型事务高速缓存 | |
Liroz-Gistau et al. | Dynamic workload-based partitioning algorithms for continuously growing databases | |
Li et al. | Efficient time-interval data extraction in MVCC-based RDBMS |
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 |