一种基于跨数据库批量同步数据的方法技术

技术编号:38333057 阅读:15 留言:0更新日期:2023-08-02 09:13
本发明专利技术公开了一种基于跨数据库批量同步数据的方法,涉及数据处理技术领域,具体包含如下步骤:在变量设置部分设置循环变量、获取批量同步数据表清单并写入相应变量以待使用;将设置的循环变量传入数据同步程序,根据循环变量中记录的数据表名称完成数据同步处理;根据循环变量的值判断需同步的数据表是否已全部同步完成,若已完成则结束执行程序;可实现跨数据库的批量数据同步处理;减少了处理程序的开发,排除了数据表结构变更对处理程序的有影响,并且能够较为方便的指定需要进行同步的数据表;大大缩短了跨数据库情况下批量同步数据的程序开发时间及工作量,通过简单调整相关配置就可以应用于各种数据库之间的处理,对比传统方法灵活简便。传统方法灵活简便。传统方法灵活简便。

【技术实现步骤摘要】
一种基于跨数据库批量同步数据的方法
[0001]

[0002]本专利技术涉及数据处理
,尤其涉及一种基于跨数据库批量同步数据的方法。
[0003]
技术介绍

[0004]跨数据库进行数据同步是目前ETL数据处理的一个主要的业务场景。各种ETL处理工具比如datastage、Informatica、kettle等都提供有很完善的功能组件供开发者实现这个场景下的数据处理程序开发以及数据同步。
[0005]但是不管使用哪种工具,对于数据处理程序的开发还都是以每个具体的数据表为处理单元进行处理程序的开发,每一个数据表的同步处理都需要通过配置源数据结构、目标数据结构、数据间映射关系开发好对应的一个基础的处理程序之后才能运行程序进行数据同步。或者通过编辑数据处理的sql脚本并用ETL工具执行处理脚本的方式进行数据的同步处理。
[0006]这样传统的ETL开发方法虽然很完善,能够满足各种数据同步的情况,但是当需要进行跨数据库的批量数据同步时,这样的同步方法就有着明显的缺点及局限。
[0007]开发成本高、时间长,由于传统的方法需要针对每个数据表开发相应的处理程序,因此当需要进行较多数据表或者整库数据进行同步的时候需要开发的处理程序也对大幅增加。
[0008]处理程序调整不灵活,当需要处理的数据表发生结构改变的时候对应的数据处理程序也需要一一对应调整。
[0009]无法灵活的根据需求针对指定的数据表进行同步处理。

技术实现思路

[0010]本专利技术所要解决的技术问题是为了解决ETL工具现有的开发方法在面对跨数据库批量同步数据时的缺点及局限性提供一种基于跨数据库批量同步数据的方法;通过综合应用ETL处理工具kettle中的参数设置及引用、数据表加载以及循环执行等多种功能,以此实现通过一个程序实现自动的跨数据库的批量数据同步处理。
[0011]本专利技术为解决上述技术问题采用以下技术方案:一种基于跨数据库批量同步数据的方法,包含循环判断变量初始化、数据同步变量设置、数据同步以及循环判断四个部分,具体包含如下步骤:步骤1,在循环变量初始化部分需要进行循环判断变量的初始值设置;步骤2,在数据同步变量设置部分需要进行本次循环所需的变量值的获取及设置;
步骤3,将设置的循环变量传入数据同步程序,根据循环变量中记录的数据表名称完成数据同步处理;步骤4,根据循环变量的值判断需同步的数据表是否已全部同步完成,若已完成则退出循环,结束整个程序的执行;反之,则重复执行步骤2至步骤4直至数据全部同步完成。
[0012]作为本专利技术一种基于跨数据库批量同步数据的方法的进一步优选方案,循环判断变量初始化部分,具体如下:步骤1.1,为循环判断变量v_run_id设置初始值1。
[0013]作为本专利技术一种基于跨数据库批量同步数据的方法的进一步优选方案,数据同步变量设置部分,具体如下:步骤2.1,获取需要执行的数据表清单,并按照数据表的名称进行排序编号,并根据当前的循环判断变量v_run_id中的值与数据表清单的排序号对比取得本次循环需要执行的数据表信息,其中,数据表信息包括有数据表的表名、数据表的模式名、需处理的数据表总个数以及将当前的循环判断变量值加一得到的结果值;步骤2.2,将获得的本次循环待处理数据表的信息分别记录到对应的变量中,包括存储需处理的数据表名称v_table_name、存需处理的数据表的模式名v_table_schema、存储本次处理所有数据表的总个数v_table_qty以及循环判断变量v_run_id。
[0014]作为本专利技术一种基于跨数据库批量同步数据的方法的进一步优选方案,数据同步部分,具体如下:步骤3.1,通过引用数据同步变量设置部分中定义的变量${v_table_schema}及变量${v_table_name}的值,获取其中的本次循环需同步的数据表名以及数据表模式名,从源数据库查询获取本次循环需处理的数据表的数据;步骤3.2,通过引用数据同步变量设置部分中定义的变量${v_table_schema}及变量${v_table_name}的值,获取其中的本次循环需同步的数据表名以及数据表模式名,在目标数据库中对本次循环需处理的数据表先进行数据清空处理,并将从源数据库中查询到的数据写入到目标数据库中。
[0015]作为本专利技术一种基于跨数据库批量同步数据的方法的进一步优选方案,循环判断部分,具体如下:步骤4.1,比较当前循环中循环判断变量${v_run_id}和变量${v_table_qty}之间的大小;步骤4.2,若变量${v_run_id}小于或等于变量${v_table_qty}的值,则批量处理清单中还有尚未完成的数据表,处理流程回到步骤2,继续执行下一次循环;步骤4.3,直到变量${v_run_id}大于变量${v_table_qty},所有数据表同步完成,不再进行循环,处理程序结束。
[0016]本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:1、通过本专利技术只需开发一个数据处理程序即可实现跨数据库的批量数据同步处理;2、本专利技术减少了处理程序的开发,排除了数据表结构变更对处理程序的有影响,并且能够较为方便的指定需要进行同步的数据表;3、本专利技术大大缩短了跨数据库情况下批量同步数据的程序开发时间及工作量,并
且通过简单调整相关配置就可以应用于各种数据库之间的处理,对比传统方法灵活简便。
附图说明
[0017]图1是本专利技术处理流程示意图;图2是本专利技术处理程序示意图;图3是本专利技术循环判断变量初始化示意图;图4是本专利技术数据同步变量设置示意图;图5是本专利技术数据同步示意图;图6是本专利技术循环判断示意图。
[0018]具体实施方式
[0019]下面结合附图对本专利技术的技术方案做进一步的详细说明:下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0020]本方法通过综合应用ETL处理工具kettle中的参数设置及引用、数据表加载以及循环执行等多种功能,以此实现通过一个程序实现自动的跨数据库的批量数据同步处理。
[0021]首先在需要同步数据的目标数据完成数据表的建表准备,之后开发处理程序。在处理程序中通过获取需要进行数据同步的数据表清单,通过设置参数将需要处理的数据表名称传递给数据加载处理程序,由加载程序直接从源数据库查询该表数据并加载至目标数据库中对应的数据表中,之后通过计数参数判断批量处理的数据表是否全部处理完成,如果处理完成则停止程序继续执行,如果没有未完成则循环重复上述步骤处理下一个表,直至所有数据表处理完成。
[0022]通过该方法我们只需要开发一个数据处理程序即可实现跨数据库的批量数据同步处理。减少了处理程序的开发,排除了数据表结构变更对处理程序的有影响,并且能够较为方便的指定需要进行同步的数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于跨数据库批量同步数据的方法,其特征在于:包含循环判断变量初始化、数据同步变量设置、数据同步以及循环判断四个部分,具体包含如下步骤:步骤1,在循环变量初始化部分需要进行循环判断变量的初始值设置;步骤2,在数据同步变量设置部分需要进行本次循环所需的变量值的获取及设置;步骤3,将设置的循环变量传入数据同步程序,根据循环变量中记录的数据表名称完成数据同步处理;步骤4,根据循环变量的值判断需同步的数据表是否已全部同步完成,若已完成则退出循环,结束整个程序的执行;反之,则重复执行步骤2至步骤4直至数据全部同步完成。2.根据权利要求1所述的一种基于跨数据库批量同步数据的方法,其特征在于:在一个实施方式中,循环判断变量初始化部分,具体如下:步骤1.1,为循环判断变量v_run_id设置初始值1。3.根据权利要求1所述的一种基于跨数据库批量同步数据的方法,其特征在于:数据同步变量设置部分,具体如下:步骤2.1,在数据同步变量设置部分需要进行本次循环所需的变量值的获取及设置;步骤2.2,获取需要执行的数据表清单,并按照数据表的名称进行排序编号,并根据当前的循环判断变量v_run_id中的值与数据表清单的排序号对比取得本次循环需要执行的数据表信息,其中,数据表信息包括有数据表的表名、数据表的模式名、需处理的数据表总个数以及将当前的循环判断变量值加一得到的结果值;步骤2.3,将获得的本次循环待处理数据表的信息分别记录到对应的变量中,包括存储需处理的数据表名称v_table_name、存需处理的数据表的模式名v_table_schema、存储本次处理所有数据表的总个数v_table_...

【专利技术属性】
技术研发人员:王冲郝大松徐善铭
申请(专利权)人:江苏艾佳家居用品有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1