CN115114284A - 一种表变更处理方法及系统 - Google Patents
一种表变更处理方法及系统 Download PDFInfo
- Publication number
- CN115114284A CN115114284A CN202210592830.2A CN202210592830A CN115114284A CN 115114284 A CN115114284 A CN 115114284A CN 202210592830 A CN202210592830 A CN 202210592830A CN 115114284 A CN115114284 A CN 115114284A
- Authority
- CN
- China
- Prior art keywords
- table structure
- information
- data information
- structure data
- change
- 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
- 230000008859 change Effects 0.000 title claims abstract description 171
- 238000003672 processing method Methods 0.000 title claims description 25
- 238000000547 structure data Methods 0.000 claims abstract description 182
- 238000012545 processing Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000013507 mapping Methods 0.000 claims description 66
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013480 data collection Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 7
- 238000011144 upstream manufacturing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种表变更处理方法及系统,该方法包括:基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息;若第一表结构数据信息与第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息;根据表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息;基于第三表结构数据信息,将源端数据库中的数据采集到目标端数据库中。本发明将当前源端数据库的表结构数据信息,与上一次数据采集任务时源端数据库的表结构数据信息进行比对,进而对目标数据库的表结构进行变更,避免了以人工方式对下游数据结构进行变更,提高数据采集效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种表变更处理方法及系统。
背景技术
当前信息科技正处于大数据技术发展时代,越来越多的大中型企业正在建设自己的大数据平台。而建设大数据平台的第一步就是实现数据集中,形成自己的数据湖或者数据仓库。因此,企业一般都会有自己的数据采集工具或者平台来支撑外部数据的入湖和入仓功能。
现有数据仓库技术,主要是利用ETL(Extract Transform Load)的设计实现,即数据抽取、数据的清洗转换、数据的加载。虽然现有ETL工具,如dataX、FLinkX、Kettle等都已经非常成熟,它们大大减少了数据集成的开发工作量,但是目前还存在一个无法回避的问题:当源数据库系统的数据结构发生变化后,这些工具或者平台无法自动更新目标端的表数据结构,以及原有的数据采集任务信息。而绝大部分企业针对上述问题,还是依靠人工的方式进行目标端的表数据结构更新和原数据采集任务的变更、重启,导致数据采集效率降低。
因此,现在亟需一种表变更处理方法及系统来解决上述问题。
发明内容
针对现有技术存在的问题,本发明提供一种表变更处理方法及系统。
本发明提供一种表变更处理方法,包括:
基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,其中,所述第一表结构数据信息为当前时刻源端数据库中对应的表结构数据信息;所述第二表结构数据信息为上一次数据采集时所述源端数据库中对应的表结构数据信息;
若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息;
根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息;
基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中。
根据本发明提供的一种表变更处理方法,所述根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息,包括:
根据所述表变更触发信息,确定表结构变更方式;
通过所述表结构变更方式和所述数据采集任务,变更所述目标端数据库中对应的表结构,并基于变更后的表结构,更新表结构映射关系,得到更新后的表结构映射关系;
根据所述变更后的表结构和所述更新后的表结构映射关系,获取第三表结构数据信息。
根据本发明提供的一种表变更处理方法,在所述根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息之后,所述方法还包括:
基于所述更新后的表结构映射关系,对所述数据采集任务中的第一字段映射关系进行更新,得到第二字段映射关系,并保留所述第一字段映射关系;
其中,所述第一字段映射关系为所述数据采集任务中更新前的字段映射关系;所述第二字段映射关系为所述数据采集任务中更新后的字段映射关系;
所述基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中,包括:
基于所述第三表结构数据信息和所述第二字段映射关系,将所述源端数据库中的数据采集到所述目标端数据库中。
根据本发明提供的一种表变更处理方法,所述方法还包括:
获取表变更失败信息;
若所述表变更失败信息为表结构变更失败的信息,则通过所述表结构变更方式和所述数据采集任务,重新变更所述目标端数据库中对应的表结构;
若所述表变更失败信息为字段映射关系变更失败的信息,则重新对所述数据采集任务中的第一字段映射关系进行更新。
根据本发明提供的一种表变更处理方法,所述若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息,包括:
通过MD5算法,分别生成第一MD5值和第二MD5值,其中,所述第一MD5值为所述第一表结构数据信息对应的MD5值,所述第二MD5值为所述第二表结构数据信息对应的MD5值;
若所述第一MD5值和所述第二MD5值不相同,生成对应的表变更触发信息。
根据本发明提供的一种表变更处理方法,所述基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,包括:
根据所述数据采集任务,确定源端数据源信息和数据采集日期;
根据所述源端数据源信息,确定源端数据库;
通过所述数据采集日期,从所述源端数据库中获取第一表结构数据信息和第二表结构数据信息。
本发明还提供一种表变更处理系统,包括:
数据采集任务处理模块,用于基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,其中,所述第一表结构数据信息为当前时刻源端数据库中对应的表结构数据信息;所述第二表结构数据信息为上一次数据采集时所述源端数据库中对应的表结构数据信息;
表变更识别模块,用于若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息;
表变更处理流程控制模块,用于根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息;
数据采集执行模块,用于基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述表变更处理方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述表变更处理方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述表变更处理方法。
本发明提供的一种表变更处理方法及系统,通过将当前数据采集任务时源端数据库的表结构数据信息,与上一次数据采集任务时源端数据库的表结构数据信息进行比对,确定上游数据结构的变更结果,进而自动对目标数据库的表结构数据信息进行变更,避免了以人工方式对下游数据结构进行变更的方式,提高了数据采集效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图进行简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的表变更处理方法的流程示意图;
图2为本发明提供的表变更处理流程的整体示意图;
图3为本发明提供的表变更处理系统的结构示意图;
图4为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在现有技术中,如Apache Griffin,作为一种开源的大数据数据质量解决方案,支持批处理和流模式两种数据质量检测方式,可以从不同维度(比如离线任务执行完毕后,检查源端数据库和目标端数据库的数据数量是否一致、源表的数据空值数量等)度量数据资产,从而提升数据的准确度和可信度;Apache Atlas为Hadoop集群提供了包括数据分类、集中策略引擎、数据血缘、安全和生命周期管理在内的元数据治理核心能力,支持对Hive、Storm、Kafka、Hbase和Sqoop等进行元数据管理,以及以图库形式展示数据的血缘关系。
现有技术虽然提供的关于表变更的识别、分析功能更强大,支持的数据库类型比较全,但是实际学习、安装和维护成本过大,这些现有技术更偏向于数据资产、数据质量和数据血缘领域的分析以及管理工作,并不适用于数据采集场景。另外,现有技术只能完成表变更识别和分析,无法针对变更明细进行后续处理,更不用说完成与数据采集相关的自动表变更处理,特别是当上游端(即源端数据库)某张表的表结构发生变化时,针对该表的数据采集功能将无法保证数据完整性和一致性,导致无法将上游端的数据抽取到下游端(即目标端数据库)。
本发明针对数据采集过程,在采集之前,自动完成目标端数据库的表数据结构更新;同时,自动完成数据采集任务信息更新,保证每次数据采集时的上游端数据结构和下游端数据结构完全一致,中间不需要人工干预,用户无感知,提高数据采集效率。
图1为本发明提供的表变更处理方法的流程示意图,如图1所示,本发明提供了一种表变更处理方法,包括:
步骤101,基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,其中,所述第一表结构数据信息为当前时刻源端数据库中对应的表结构数据信息;所述第二表结构数据信息为上一次数据采集时所述源端数据库中对应的表结构数据信息。
在本发明中,首先对获取到的数据采集任务进行相关参数的校验和解析。具体地,在上述实施例的基础上,所述基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,包括:
根据所述数据采集任务,确定源端数据源信息和数据采集日期;
根据所述源端数据源信息,确定源端数据库;
通过所述数据采集日期,从所述源端数据库中获取第一表结构数据信息和第二表结构数据信息。
在本发明中,响应于用户的操作输入,生成对应的数据采集任务,再通过对数据采集任务进行解析,获取到本次数据采集任务的源端数据源信息,从而根据该信息,确定源端数据库相关信息(例如,数据库地址);同时,针对本次数据采集任务的采集日期,除了从源端数据库中获取源端数据库中当前最新的表结构数据信息(即第一表结构数据信息,包括表结构和映射关系等),还通过该源端数据库最近一次的数据采集任务,获取到在上一次数据采集时这个源端数据库中的表结构数据信息(即第二表结构数据信息)。在本发明中,在对数据采集任务进行解析时,除了获取到源端数据源信息和数据采集日期,还可以获取到目标端数据源信息(该信息包括有目标端数据库的相关信息,例如,目标端数据库的表结构、地址信息等)和数据采集方式等;同时,实现统一的数据库连接池和线程池,以多线程方式调起后续处理。
步骤102,若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息。
在本发明中,从源端数据库获取源表的数据表结构信息,形成该表最新的版本基线,然后与上一次数据采集任务中源端数据库中源表的版本基线进行比对。如果在比对过程中确定两个版本基线不一致,则需要对目标端数据库进行表变更操作,从而根据两个版本基线之间的比对结果,生成对应的触发信息。
步骤103,根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息。
在本发明中,在确定需要对目标端数据库的表结构进行变更之后,进行变更明细解析,针对两个版本的表结构数据信息逐字段比对,从而生成变更明细;进一步地,根据变更明细,对目标端数据库中的目标表结构进行变更处理,并且,根据目标表结构中新的表结构映射关系,对数据采集任务中的字段映射关系进行更新,得到更新后的数据采集任务。
步骤104,基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中。
在本发明中,可通过接口调用的方式,启动外部的数据采集任务,也可以使用命令方式直接调起数据采集处理进程,还可以直接调用第三方的数据采集工具实现。本发明按接口调用方式,基于目标端数据库变更后的表结构,触发更新后的数据采集任务,实现将数据从源端数据库抽取到目标端数据库。
本发明提供的一种表变更处理方法,通过将当前数据采集任务时源端数据库的表结构数据信息,与上一次数据采集任务时源端数据库的表结构数据信息进行比对,确定上游数据结构的变更结果,进而自动对目标数据库的表结构数据信息进行变更,避免了以人工方式对下游数据结构进行变更的方式,提高了数据采集效率。
在上述实施例的基础上,所述根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息,包括:
根据所述表变更触发信息,确定表结构变更方式。
在本发明中,在确定第一表结构数据信息与第二表结构数据信息之间的版本基线存在区别后,通过表变更触发信息,触发对两个版本之间的表结构数据信息进行逐字段比对的操作,从而确定表结构变更方式,以生成对应的表变更明细,例如,第一表结构数据信息中存在一个字段,而第二表结构数据信息中没有这个字段,则表示源端数据库在上一次数据采集后,新增了该字段,因此,针对目标端数据库中的表结构数据信息,本次也需要新增该字段,由此可确定本次表变更方式为新增字段,而表变更明细则是针对具体的字段内容确定,例如,新增的字段为用户年龄,本次表变更明细为新增用户年龄的字段。
通过所述表结构变更方式和所述数据采集任务,变更所述目标端数据库中对应的表结构,并基于变更后的表结构,更新表结构映射关系,得到更新后的表结构映射关系。
在本发明中,在确定了本次表结构变更方式之后(如上述实施例中的新增字段),基于数据采集任务,确定本次表变更涉及到的目标端数据库中的表结构,即源端数据库中的某个表新增了字段,在下游的目标端数据库中,确定哪些表需要也新增该字段,由于在数据采集任务中包括有源端数据源信息和目标端数据源信息,可以通过对任务进行解析,确定表之间的关联,进而根据表结构变更方式,对目标端数据库中的这些表进行变更。进一步地,在完成目标端数据库中的表结构变更之后,新增字段在各个表之间的映射关系需要更新(如新建映射关系,包括表和数据文件之间的对应关系,表字段和文件字段之间的关系)。
根据所述变更后的表结构和所述更新后的表结构映射关系,获取第三表结构数据信息。在上述实施例的基础上,在所述根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息之后,所述方法还包括:
基于所述更新后的表结构映射关系,对所述数据采集任务中的第一字段映射关系进行更新,得到第二字段映射关系,并保留所述第一字段映射关系;
其中,所述第一字段映射关系为所述数据采集任务中更新前的字段映射关系;所述第二字段映射关系为所述数据采集任务中更新后的字段映射关系。
在本发明中,在对表结构映射关系进行更新之后,还需要对数据采集任务的字段映射关系进行更新,例如,原始数据采集任务需要采集学生姓名和学生年龄,而在源端数据库最新的表结构中新增了学生ID的字段,通过在目标端中的表中新增学生ID这个字段,将源端与目标端之间的表建立新的表结构映射关系,同时也需要对数据采集任务中的字段映射关系进行更新,即新的数据采集任务更新了以目标端数据库表中新增的学生ID字段,从源端数据库表中查询学生ID信息的映射关系。
所述基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中,包括:
基于所述第三表结构数据信息和所述第二字段映射关系,将所述源端数据库中的数据采集到所述目标端数据库中。
在本发明中,通过将当前数据采集任务对应源端数据库中表结构数据信息的版本基线,与最近一次数据采集任务时该源端数据库中表结构数据信息的版本信息进行比对,一旦确定比对结果存在不一致,触发表变更流程,再进行后续的逐字段比对,生成表变更明细。
具体地,表变更处理流程的第一步是更新目标端数据库中的表数据结构,由于在实际环境中存储表的目标端数据库有很多选择,基于生成的不同表变更明细,不同目标端数据库的更新操作不太一样,表变更具体处理逻辑包括有多种变更类型,比如,源字段删除、源字段名称修改以及源字段类型修改等,本发明以Hive数据库作为目标端数据库的表结构更新方法进行说明,在表变更过程中,保证不影响目标端数据库历史数据的同时,又能保证源端数据按照新的数据结构正常写入目标端数据库。
具体地,对于Hive数据库,更新表结构并不会删除数据,因此本发明根据表变更触发信息,确定表结构变更方式,得到表变更明细,再通过变更表明细,使用REPLACE COLUMNS语法来重新定义表结构,并对变更后的表结构所对应的表结构映射关系进行更新,从而完成目标端数据库的表结构变更,以根据根据变更后的表结构和更新后的表结构映射关系,获取第三表结构数据信息;然后,更新数据采集任务中的字段映射关系,通过目标端数据库中新的表结构映射关系,来覆盖旧的映射关系,即对数据采集任务中的第一字段映射关系进行更新,得到第二字段映射关系。优选地,在本发明中同时备份旧的映射关系,以便进行版本回退;最后,基于第三表结构数据信息,执行字段映射关系更新后的数据采集任务,完成数据的抽取。
在上述实施例的基础上,所述方法还包括:
获取表变更失败信息;
若所述表变更失败信息为表结构变更失败的信息,则通过所述表结构变更方式和所述数据采集任务,重新变更所述目标端数据库中对应的表结构;
若所述表变更失败信息为字段映射关系变更失败的信息,则重新对所述数据采集任务中的第一字段映射关系进行更新。
在本发明中,当表变更过程发生失败时,需要根据表变更失败信息准确地获取上一次失败的位置,当变更再次执行时,可以从上一次运行失败的地方继续执行,实现表变更过程中各种异常场景下的重跑。
具体地,在本发明中,增加表变更处理流转功能,保证当某个变更步骤处理失败,导致变更流程未正常结束时,记录失败时的步骤和状态,在确定具体导致失败的步骤,通过人工处理问题解决后,仍然能重新执行发生变更失败的步骤,并继续完成后续处理,实现了高容错的表变更处理能力。
在上述实施例的基础上,所述若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息,包括:
通过MD5算法,分别生成第一MD5值和第二MD5值,其中,所述第一MD5值为所述第一表结构数据信息对应的MD5值,所述第二MD5值为所述第二表结构数据信息对应的MD5值;
若所述第一MD5值和所述第二MD5值不相同,生成对应的表变更触发信息。
本发明将表变更处理融入到数据采集过程中,在不影响数据采集性能的情况下,完成目标端数据库的表变更处理。在本发明中,数据采集任务开始前,首先从上游系统的数据库(即源端数据库)获取相关表最新的数据结构;然后,将最新的数据结构与最近一次数据采集任务获取的数据结构进行比较。优选地,本发明为了减少资源消耗,提高对比性能,将表结构信息转化成MD5值后再进行比较,而不是对表结构中的每个字段依次进行比较,只有在确定两个MD5值不一致,才表示该表发生了变更,需要进行逐字段对比,生成表变更明细后进行表变更处理。
本发明采用MD5值比对技术,实现源端数据库中表结构当前版本与历史版本之间比对,使得大部分没有发生表变更的数据采集任务来说基本不受任何影响,提供了更为高效的变更识别能力。
图2为本发明提供的表变更处理流程的整体示意图,可参考图2所示,首先,数据采集主程序响应用户的输入,生成相应的数据采集任务,进而对该数据采集任务进行参数解析,确定本次数据采集任务的源端数据库、采集时间以及目标端数据库等;
然后,在连接源端数据库之后,获取当前源表数据结构信息,并记录到目标端数据库中,形成最新的版本基线;同时,与上一个采集任务时源表数据结构信息的版本进行比对,并根据比对结果触发后续指令,其中,若不一致,则进入到下一个步骤;若一致,则执行当前数据采集任务,完成源端到目标端的数据采集;
接着,在确定最新源表数据结构的版本基线与上一个采集任务时源表数据结构信息的版本不一致时,通过逐字段比对,生成一个表变更明细,并创建对应的变更任务记录到目标端数据库中,进而根据表变更任务,完成目标端数据结构的变更,数据采集任务信息的更新;针对目标端数据结构的变更和数据采集任务信息的更新出现失败的情况,会根据不同的状态跳转到不同的步骤再次进行处理,即表结构变更失败时,通过表结构变更方式和数据采集任务,重新变更目标端数据库中对应的表结构;数据采集任务的字段映射关系变更失败时,则重新对数据采集任务中的字段映射关系进行更新;
最后,在完成目标端数据结构的变更,以及数据采集任务信息的更新之后,通过接口方式调起更新后的数据采集任务,将源端数据同步到目标端。
本发明首次提出将表变更处理融入到数据采集过程中,针对现有表变更处理都是独立于数据采集任务之外,额外增加一块变更校验功能,导致两者没有依赖关系,存在当变更校验触发时,数据采集任务已经开始执行,无法进行变更操作的问题,将表变更处理流程融入到数据采集过程中,从而作为数据采集任务执行的前置条件。
下面对本发明提供的表变更处理系统进行描述,下文描述的表变更处理系统与上文描述的表变更处理方法可相互对应参照。
图3为本发明提供的表变更处理系统的结构示意图,如图3所示,本发明提供了一种表变更处理系统,包括数据采集任务处理模块301、表变更识别模块302、表变更处理流程控制模块303和数据采集执行模块304,其中,数据采集任务处理模块301用于基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,其中,所述第一表结构数据信息为当前时刻源端数据库中对应的表结构数据信息;所述第二表结构数据信息为上一次数据采集时所述源端数据库中对应的表结构数据信息;表变更识别模块302用于若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息;表变更处理流程控制模块303用于根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息;数据采集执行模块304用于基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中。
在本发明中,采集任务处理模块301对获取到的数据采集任务进行相关参数的校验和解析。具体地,采集任务处理模块301响应于用户的操作输入,生成对应的数据采集任务,再通过对数据采集任务进行解析,获取到本次数据采集任务的源端数据源信息,从而根据该信息,确定源端数据库相关信息(例如,数据库地址);同时,采集任务处理模块301针对本次数据采集任务的采集日期,除了从源端数据库中获取源端数据库中当前最新的表结构数据信息(即第一表结构数据信息,包括表结构和映射关系等),还通过该源端数据库最近一次的数据采集任务,获取到在上一次数据采集时这个源端数据库中的表结构数据信息(即第二表结构数据信息)。在本发明中,采集任务处理模块301在对数据采集任务进行解析时,除了获取到源端数据源信息和数据采集日期,还可以获取到目标端数据源信息(该信息包括有目标端数据库的相关信息,例如,目标端数据库的表结构、地址信息等)和数据采集方式等;同时,实现统一的数据库连接池和线程池,以多线程方式调起后续处理。
进一步地,表变更识别模块302从源端数据库获取源表的数据表结构信息,形成该表最新的版本基线,然后与上一次数据采集任务中源端数据库中源表的版本基线进行比对。如果在比对过程中确定两个版本基线不一致,则需要对目标端数据库进行表变更操作,从而根据两个版本基线之间的比对结果,生成对应的触发信息。
进一步地,在确定需要对目标端数据库的表结构进行变更之后,表变更处理流程控制模块303进行变更明细解析,针对两个版本的表结构数据信息逐字段比对,从而生成变更明细;然后,表变更处理流程控制模块303根据变更明细,对目标端数据库中的目标表结构进行变更处理,并且,根据目标表结构中新的表结构映射关系后,对数据采集任务中的字段映射关系进行更新,得到更新后的数据采集任务。
最后,数据采集执行模块304通过接口方式调用的方式,基于目标端数据库变更后的表结构,触发更新后的数据采集任务,实现将数据从源端数据库抽取到目标端数据库。
本发明提供的一种表变更处理系统,通过将当前数据采集任务时源端数据库的表结构数据信息,与上一次数据采集任务时源端数据库的表结构数据信息进行比对,确定上游数据结构的变更结果,进而自动对目标数据库的表结构数据信息进行变更,避免了以人工方式对下游数据结构进行变更的方式,提高了数据采集效率。
本发明提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图4为本发明提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(Processor)401、通信接口(Communications Interface)402、存储器(Memory)403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。处理器401可以调用存储器403中的逻辑指令,以执行表变更处理方法,该方法包括:基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,其中,所述第一表结构数据信息为当前时刻源端数据库中对应的表结构数据信息;所述第二表结构数据信息为上一次数据采集时所述源端数据库中对应的表结构数据信息;若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息;根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息;基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中。
此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的表变更处理方法,该方法包括:基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,其中,所述第一表结构数据信息为当前时刻源端数据库中对应的表结构数据信息;所述第二表结构数据信息为上一次数据采集时所述源端数据库中对应的表结构数据信息;若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息;根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息;基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的表变更处理方法,该方法包括:基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,其中,所述第一表结构数据信息为当前时刻源端数据库中对应的表结构数据信息;所述第二表结构数据信息为上一次数据采集时所述源端数据库中对应的表结构数据信息;若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息;根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息;基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种表变更处理方法,其特征在于,包括:
基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,其中,所述第一表结构数据信息为当前时刻源端数据库中对应的表结构数据信息;所述第二表结构数据信息为上一次数据采集时所述源端数据库中对应的表结构数据信息;
若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息;
根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息;
基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中。
2.根据权利要求1所述的表变更处理方法,其特征在于,所述根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息,包括:
根据所述表变更触发信息,确定表结构变更方式;
通过所述表结构变更方式和所述数据采集任务,变更所述目标端数据库中对应的表结构,并基于变更后的表结构,更新表结构映射关系,得到更新后的表结构映射关系;
根据所述变更后的表结构和所述更新后的表结构映射关系,获取第三表结构数据信息。
3.根据权利要求2所述的表变更处理方法,其特征在于,在所述根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息之后,所述方法还包括:
基于所述更新后的表结构映射关系,对所述数据采集任务中的第一字段映射关系进行更新,得到第二字段映射关系,并保留所述第一字段映射关系;
其中,所述第一字段映射关系为所述数据采集任务中更新前的字段映射关系;所述第二字段映射关系为所述数据采集任务中更新后的字段映射关系;
所述基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中,包括:
基于所述第三表结构数据信息和所述第二字段映射关系,将所述源端数据库中的数据采集到所述目标端数据库中。
4.根据权利要求3所述的表变更处理方法,其特征在于,所述方法还包括:
获取表变更失败信息;
若所述表变更失败信息为表结构变更失败的信息,则通过所述表结构变更方式和所述数据采集任务,重新变更所述目标端数据库中对应的表结构;
若所述表变更失败信息为字段映射关系变更失败的信息,则重新对所述数据采集任务中的第一字段映射关系进行更新。
5.根据权利要求1所述的表变更处理方法,其特征在于,所述若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息,包括:
通过MD5算法,分别生成第一MD5值和第二MD5值,其中,所述第一MD5值为所述第一表结构数据信息对应的MD5值,所述第二MD5值为所述第二表结构数据信息对应的MD5值;
若所述第一MD5值和所述第二MD5值不相同,生成对应的表变更触发信息。
6.根据权利要求1至5任一项所述的表变更处理方法,其特征在于,所述基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,包括:
根据所述数据采集任务,确定源端数据源信息和数据采集日期;
根据所述源端数据源信息,确定源端数据库;
通过所述数据采集日期,从所述源端数据库中获取第一表结构数据信息和第二表结构数据信息。
7.一种表变更处理系统,其特征在于,包括:
数据采集任务处理模块,用于基于数据采集任务,获取第一表结构数据信息和第二表结构数据信息,其中,所述第一表结构数据信息为当前时刻源端数据库中对应的表结构数据信息;所述第二表结构数据信息为上一次数据采集时所述源端数据库中对应的表结构数据信息;
表变更识别模块,用于若所述第一表结构数据信息与所述第二表结构数据信息之间的版本基线存在区别,生成对应的表变更触发信息;
表变更处理流程控制模块,用于根据所述表变更触发信息,对目标端数据库中的表结构数据信息进行变更,获取第三表结构数据信息;
数据采集执行模块,用于基于所述第三表结构数据信息,将所述源端数据库中的数据采集到所述目标端数据库中。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述表变更处理方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述表变更处理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述表变更处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210592830.2A CN115114284A (zh) | 2022-05-27 | 2022-05-27 | 一种表变更处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210592830.2A CN115114284A (zh) | 2022-05-27 | 2022-05-27 | 一种表变更处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115114284A true CN115114284A (zh) | 2022-09-27 |
Family
ID=83326829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210592830.2A Pending CN115114284A (zh) | 2022-05-27 | 2022-05-27 | 一种表变更处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115114284A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361391A (zh) * | 2023-03-30 | 2023-06-30 | 中电云数智科技有限公司 | 一种数据同步表结构异常检测及修复方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2610765A1 (en) * | 2011-12-30 | 2013-07-03 | BMC Software, Inc. | Systems and methods for migrating database data |
CN107368513A (zh) * | 2017-04-25 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 客户端数据库更新的方法及装置 |
CN109885581A (zh) * | 2019-03-14 | 2019-06-14 | 苏州达家迎信息技术有限公司 | 数据库的同步方法、装置、设备及存储介质 |
CN113420026A (zh) * | 2021-06-22 | 2021-09-21 | 康键信息技术(深圳)有限公司 | 数据库表结构变更方法、装置、设备及存储介质 |
CN113535832A (zh) * | 2021-06-10 | 2021-10-22 | 杭州未名信科科技有限公司 | 云服务数据的获取方法、装置、电子设备及介质 |
-
2022
- 2022-05-27 CN CN202210592830.2A patent/CN115114284A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2610765A1 (en) * | 2011-12-30 | 2013-07-03 | BMC Software, Inc. | Systems and methods for migrating database data |
CN107368513A (zh) * | 2017-04-25 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 客户端数据库更新的方法及装置 |
CN109885581A (zh) * | 2019-03-14 | 2019-06-14 | 苏州达家迎信息技术有限公司 | 数据库的同步方法、装置、设备及存储介质 |
CN113535832A (zh) * | 2021-06-10 | 2021-10-22 | 杭州未名信科科技有限公司 | 云服务数据的获取方法、装置、电子设备及介质 |
CN113420026A (zh) * | 2021-06-22 | 2021-09-21 | 康键信息技术(深圳)有限公司 | 数据库表结构变更方法、装置、设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361391A (zh) * | 2023-03-30 | 2023-06-30 | 中电云数智科技有限公司 | 一种数据同步表结构异常检测及修复方法和装置 |
CN116361391B (zh) * | 2023-03-30 | 2024-05-07 | 中电云计算技术有限公司 | 一种数据同步表结构异常检测及修复方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7386752B1 (en) | Using asset dependencies to identify the recovery set and optionally automate and/or optimize the recovery | |
US20190026193A1 (en) | Method and apparatus for executing data recovery operation | |
US10635473B2 (en) | Setting support program, setting support method, and setting support device | |
CN107451040B (zh) | 故障原因的定位方法、装置及计算机可读存储介质 | |
US8010578B2 (en) | Method of refactoring a running database system | |
CN109376196B (zh) | 一种redo日志批量同步方法及装置 | |
US8661418B2 (en) | Setting program, workflow creating method, and work flow creating apparatus | |
CN108776643B (zh) | 一种基于版本控制流程的目标代码合并控制方法及系统 | |
CN106648994B (zh) | 一种备份操作日志的方法,设备和系统 | |
CN109063005B (zh) | 一种数据迁移方法及系统、存储介质、电子设备 | |
CN105335472A (zh) | 一种更新数据查询引擎配置列表的方法及装置 | |
CN112463450B (zh) | 一种增量备份管理方法、系统、电子设备及存储介质 | |
CN115374102A (zh) | 数据处理方法及系统 | |
US20180032567A1 (en) | Method and device for processing data blocks in a distributed database | |
CN115145943B (zh) | 多数据源元数据快速比对方法、系统、设备和存储介质 | |
CN115114284A (zh) | 一种表变更处理方法及系统 | |
CN114265857A (zh) | 查询语句处理方法以及装置 | |
CN112948504B (zh) | 数据采集方法、装置、计算机设备和存储介质 | |
CN113687920B (zh) | 一种分布式系统的对象策略操作方法、装置及设备 | |
CN116648693A (zh) | 用于备份文件系统的方法和设备 | |
CN112749156A (zh) | 数据处理方法、数据库管理系统和数据处理设备 | |
Kukreti et al. | CloneHadoop: Process Cloning to Reduce Hadoop's Long Tail | |
CN111177116B (zh) | 一种数据库智能管理平台及其管理方法 | |
CN117130987B (zh) | 一种大规模无人机集群的飞控管理方法 | |
CN112860540B (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 |