【技术实现步骤摘要】
应用于关系型数据库数据装载的方法
本专利技术涉及数据库中的数据复制
,尤其是涉及一种能够实现数据库的存量和增量的数据装载;能够根据配置解决异构数据库的DDL转换,保证异构数据库的数据装载;可根据使用场景,对数据进行转换后装载的应用于关系型数据库数据装载的方法。
技术介绍
传统的数据同步复制是由数据库自身同构复制技术实现的,当源表发生变化时,由数据库引擎引发同步事件,把源表中变化的数据同步更新到目标数据库中,但是上述复制技术只能在同构数据库之间使用,目前各数据库开发商在各自的数据库同构复制的基础上提出了异构数据库的复制方案,例如,MicrosoftSQLServer提出了出版者/预订者同步方案,Oracle中采用多主复制和物化视图的方案来实现数据同步的功能,DB使用CCD表来实现异构数据库之间的复制。虽然各厂商研发出的辅助工具更好地完善了数据同步复制的功能,但是复制方案仍依赖于自己的数据库管理系统(DatabaseManagementSystem,DBMS)核心技术,不能保证完全与DBMS无关。与同构数据库装载相比,异构数据的装载存在如下几个缺点:(1)数据库会因为使用各种不同的数据模型来表示和存储数据,导致数据格式的混乱,访问接口独立。(2)某些情况下,不能对目标数据库的表结构进行任何改变。当表是动态生成时,无法修改表结构,不能利用数据库本身的复制功能。(3)同步过程中不能对数据进行过滤和转换处理。
技术实现思路
本专利技术的专利技术目的是为了克服现有技术中的 ...
【技术保护点】
1.一种应用于关系型数据库数据装载的方法,其特征是,包括如下步骤:/n(1-1)数据读取/n数据文件读取线程读取需要装载到目标数据库的数据文件,数据文件分为存量数据文件和增量数据文件;/n(1-2)数据装载/n存量数据装载线程将读取的数据文件,通过数据处理生成sql语句,批量执行至目标数据库中,并保存为ckpt数据;/n(1-3)断点续传/n当存量装载线程手动退出或异常终止,重新启动存量数据装载线程后,数据文件读取线程在上一次读取的位置继续读取数据;/n当增量装载线程手动退出或异常终止,重新启动增量数据装载线程后,数据文件读取线程在上一次读取的位置继续读取数据。/n
【技术特征摘要】
1.一种应用于关系型数据库数据装载的方法,其特征是,包括如下步骤:
(1-1)数据读取
数据文件读取线程读取需要装载到目标数据库的数据文件,数据文件分为存量数据文件和增量数据文件;
(1-2)数据装载
存量数据装载线程将读取的数据文件,通过数据处理生成sql语句,批量执行至目标数据库中,并保存为ckpt数据;
(1-3)断点续传
当存量装载线程手动退出或异常终止,重新启动存量数据装载线程后,数据文件读取线程在上一次读取的位置继续读取数据;
当增量装载线程手动退出或异常终止,重新启动增量数据装载线程后,数据文件读取线程在上一次读取的位置继续读取数据。
2.根据权利要求1所述的应用于关系型数据库数据装载的方法,其特征是,(1-1)包括如下步骤:
启动数据文件读取线程,数据文件读取线程获取存量数据文件,以数据段的方式读取,将读取的数据以Json格式序列化到数据文件中,通过Json反序列化解析后得到数据对象;数据对象的属性包括scn值和源数据库库类型;源数据库类型包括Oracle,MySql和Postgresql;
根据数据对象得到源数据库类型,如果源数据库类型为oracle数据库,并且当前读取到的数据是存量数据,则将读取到的数据中的scn值存放到持久化的容器中,利用scn值建立存量数据与增量数据的衔接;
如果源数据库类型为oracle数据库,并且当前读取到的数据是增量数据,先对oracle数据库的行进行回滚操作;然后,将当前读取到的数据放入内存中,并将数据中的事务号放入待装载的数据队列中。
3.根据权利要求1所述的应用于关系型数据库数据装载的方法,其特征是,(1-2)包括如下步骤:
每个存量装载线程获取待装载的数据队列中的事务号,根据事务号,在数据缓存中获取该事务号所对应的所有数据行;
每个增量装载线程获取待装载的数据队列中的事务号,根据事务号,在数据缓存中获取该事务号所对应的数据行,遍历所有的数据行,根据每个数据行的数据库类型,如果源库为Oracle数据库,那么对rowld字段值进行hash,得到hash值A11;如果源库为非Oracle数据库,那么通过schemaName、tableName和所有primarys值进行拼接后进行hash,得到hash值A12;再利用当前的装载线程数B1,将A11或A12为被除数,B1为除数做取模运算,得到模值C1;将每个数据行放到模值C1对应的装载线程中进行装载。
4.根据权利要求1所述的应用于关系型数据库数据装载的方法,其特征是,数据文件读取线程在上一次读取的位置继...
【专利技术属性】
技术研发人员:杨猛,柳遵梁,
申请(专利权)人:杭州美创科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。