一种基于Python协程和DataX的数据同步平台制造技术

技术编号:37159415 阅读:20 留言:0更新日期:2023-04-06 22:23
本发明专利技术公开了一种基于Python协程和DataX的数据同步平台,所述平台包括:对分布在不同地域下的异构数据库进行数据同步、数据迁移、数据订阅、数据校验;监控异构数据库之间的数据同步、数据迁移、数据订阅、数据校验等操作;界面化操作为用户屏蔽数据同步平台底层的复杂执行逻辑;用户可以根据开源工具DataX自定义数据操作之前的初始化操作、以及数据操作之后的后置操作;数据同步平台可以辅助用户进行数据库容灾;支持用户使用不同的存储介质存储不同热度数据,降低存储成本;用户本地搭建该数据同步平台,只需将配置文件中的相关服务器资源进行替换即可。资源进行替换即可。资源进行替换即可。

【技术实现步骤摘要】
一种基于Python协程和DataX的数据同步平台


[0001]本专利技术涉及异构数据库数据同步领域,实现了一种基于Python协程和DataX的数据同步平台。

技术介绍

[0002]数据库技术蓬勃发展,每种数据库都有自己的特点,以及其适合的场景。因此在生产环境中,开发者有了更多的数据库选择,甚至选择组合数据库方案。因此,异构数据库之间的DTS需求日益明显。其中,DTS(Data Transmission Service, 数据传输服务)可帮助用户在业务正常运行的前提下完成数据库迁移、同步等操作,其可以利用实时同步通道轻松构建安全、可扩展、高可用的数据架构。DTS能通过数据订阅等操作为用户实现商业数据挖掘、业务异步解耦等需求。
[0003]在有些场景中,比如随着业务的快速发展和用户的持续增长,需要把业务进行多地域部署(异地部署)。如果该业务的某些用户在地理位置上的分布较为分散,那么地理位置较远的用户在访问业务时就会出现较高延迟,影响用户体验;并且如果将业务部署在唯一地理单元,那么当该业务的此地理单元出现问题时,用户所访问的业务就会崩溃。因此将该业务部署在多地理单元,既能让所有用户较低延迟访问服务,就近访问服务,提升用户体验;又可以实现业务数据的灾备问题。因此这就需要DTS服务进行不同业务地理单元之间的数据同步,保证各地数据一致性等。
[0004]除此之外,目前市面上很多公有云厂商都已经提供了DTS服务,虽然可靠性较高,但是成本也很高。并且一般公有云厂商所提供的DTS服务与自家云数据库产品的耦合度较高,对于该云厂商之外的异构数据库支持不是很好;另外,不同用户对于DTS的需求不一样,因此许多公有云厂商所提供的DTS虽然可以较好地实现数据同步,但是在数据订阅、不活跃数据、存储周期较长数据的冷存储等方面,不能满足不同用户之间的需求。

技术实现思路

[0005]本专利技术的目的在于针对现有数据同步技术的局限性而提出的一种基于Python协程和DataX的数据同步平台,其可以在对基准数据库和目标数据库侵入性较小的情况下,实现异构数据库之间的数据同步。该平台支持用户基于自有的服务器资源,构建稳定、可靠、高效、可定制化、支持分层存储的数据同步平台,使得用户在满足自身需求的前提下,为用户提供低成本、稳定高效的数据操作服务。
[0006]实现本专利技术目的的具体技术方案是:一种基于Python协程和DataX的数据同步平台,特点是所述平台包括:数据同步模块、数据迁移模块、数据备份模块、数据对比模块、数据订阅模块以及监控模块,其中,所述数据同步模块,使用控制台或者文件接收用户数据同步任务的参数配置,生成数据同步组件执行数据同步任务所需的JSON配置文件,执行最终的数据同步任务;对数
据同步任务所需的JSON配置文件进行参数审核,检查JSON配置文件中配置参数是否合法,参数属性是否存在;数据同步模块中,数据同步任务目标为将基准数据库中待同步数据表中的数据同步到目标数据库中指定数据表;数据同步组件基于开源数据同步组件DataX设计实现,数据同步任务的执行依赖于数据同步组件,数据同步组件使用数据同步模块中Python多进程和多协程并发执行任务的数据同步方法完成数据同步任务;基于Python多进程和多协程划把数据同步任务分割为多个数据同步子任务,每个数据同步子任务处理数据同步任务中的一部分数据,针对基准数据库中每张数据表启动一个Python进程,每个Python进程中多个协程并行处理数据表中的数据,完成数据同步子任务,最后完成整个数据同步任务;数据同步模块中的基准数据库,就是待同步数据库,以该数据库为基准,使用该数据库中的数据对目标数据库中对应的数据存储单元进行完全的数据覆盖,关系型数据库中的数据存储单元即为行列结构的数据表;数据同步模块支持使用Linux内置的Cron进程和Shell脚本设置定时数据同步任务;数据同步模块包含数据同步任务队列,数据同步模块从数据同步任务队列取出待执行的数据同步任务,并行执行数据同步任务;所述数据迁移模块,使用控制台或者文件接收用户数据迁移任务的参数配置,并生成数据迁移组件执行数据迁移任务所需的JSON配置文件,执行最终的数据迁移任务;数据迁移模块中,数据迁移目标为将基准数据库中的所有数据迁移到目标数据库中,此处的数据迁移是针对基准数据库中所有数据表中全部数据的全量迁移;数据迁移组件基于开源数据同步组件DataX设计实现,数据迁移任务的执行依赖于数据迁移组件,数据迁移组件使用数据迁移模块中Python多进程和多协程并发执行任务的数据迁移方法完成数据迁移任务;数据迁移模块中的基准数据库,就是待迁移数据库,将该数据库中的所有数据全部迁移到目标数据库,或者迁移到NFS或OSS存储中;数据迁移模块支持使用Linux内置的Cron进程和Shell脚本设置定时数据迁移任务;所述数据备份模块,使用控制台或者文件接收用户数据备份任务的参数配置,并生成数据备份组件执行数据备份任务所需的JSON配置文件,完成最终的数据备份任务;对数据备份任务所需的JSON配置文件进行参数审核,检查JSON配置文件中配置参数是否合法,参数属性是否存在;数据备份模块对多基准异构数据库以及一个目标异构数据库进行数据备份任务;数据备份模块中,数据备份流程是将基准数据库中所有数据表的全部数据备份到多地域的多类型存储介质中,实现基准数据库中全量数据的异地多活备份;数据备份组件基于开源数据同步组件DataX设计实现,数据备份任务的执行依赖于数据备份组件,数据备份组件使用数据备份模块中Python多进程和多协程并发执行任务的数据备份方法完成数据备份任务;数据备份模块中的基准数据库,就是待备份数据库,将该数据库中的所有数据全部备份到目标数据库,或者备份到NFS或OSS存储中;数据备份模块支持用户自定义数据备份周期以及选择备份存储介质;数据备份模块支持使用Linux内置的Cron进程和Shell脚本设置定时数据备份任务;所述数据对比模块,使用控制台或者文件接收用户数据对比任务的参数配置,对数据对比任务进行数据实例化操作,完成数据对比任务;数据对比流程是将基准数据库与目标数据库中所有数据表中的数据进行对比,数据对比模块基于Python多进程和多协程并发执行任务的数据并行方法进行数据库之间多级别的数据对比,避免所述数据对比模块中基准数据库与目标数据库直接进行全量数据对比所带来的开销,对比任务完成后生成数据
对比结果,然后根据数据对比结果进行消息通知;数据对比任务在多Python协程中执行,由监控模块监控任务进度;数据对比模块的基准数据库,就是待对比数据库,以该数据库为基准,目标数据库中的数据一旦与该数据库中的数据不一致,就要把差异结果输出到控制台;多级别的数据对比包括:数据表、视图、存储过程、存储函数和触发器数据库对象级别的差异对比,数据表的数据总量进行对比,以及每张数据表中数据记录项的对比;数据对比模块支持使用Linux内置的Cron进程和Shell脚本设置定时数据对比任务;所述数据订阅模块,用户界面化进行数据订阅任务的配置,用户需要添加数据订阅任务的参数,生本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Python协程和DataX的数据同步平台,其特征在于,所述平台包括:数据同步模块、数据迁移模块、数据备份模块、数据对比模块、数据订阅模块以及监控模块,其中,所述数据同步模块,使用控制台或者文件接收用户数据同步任务的参数配置,生成数据同步组件执行数据同步任务所需的JSON配置文件,执行最终的数据同步任务;对数据同步任务所需的JSON配置文件进行参数审核,检查JSON配置文件中配置参数是否合法,参数属性是否存在;数据同步模块中,数据同步任务目标为将基准数据库中待同步数据表中的数据同步到目标数据库中指定数据表;数据同步组件基于开源数据同步组件DataX设计实现,数据同步任务的执行依赖于数据同步组件,数据同步组件使用数据同步模块中Python多进程和多协程并发执行任务的数据同步方法完成数据同步任务;基于Python多进程和多协程划把数据同步任务分割为多个数据同步子任务,每个数据同步子任务处理数据同步任务中的一部分数据,针对基准数据库中每张数据表启动一个Python进程,每个Python进程中多个协程并行处理数据表中的数据,完成数据同步子任务,最后完成整个数据同步任务;数据同步模块中的基准数据库,就是待同步数据库,以该数据库为基准,使用该数据库中的数据对目标数据库中对应的数据存储单元进行完全的数据覆盖,关系型数据库中的数据存储单元即为行列结构的数据表;数据同步模块支持使用Linux内置的Cron进程和Shell脚本设置定时数据同步任务;数据同步模块包含数据同步任务队列,数据同步模块从数据同步任务队列取出待执行的数据同步任务,并行执行数据同步任务;所述数据迁移模块,使用控制台或者文件接收用户数据迁移任务的参数配置,并生成数据迁移组件执行数据迁移任务所需的JSON配置文件,执行最终的数据迁移任务;数据迁移模块中,数据迁移目标为将基准数据库中的所有数据迁移到目标数据库中,此处的数据迁移是针对基准数据库中所有数据表中全部数据的全量迁移;数据迁移组件基于开源数据同步组件DataX设计实现,数据迁移任务的执行依赖于数据迁移组件,数据迁移组件使用数据迁移模块中Python多进程和多协程并发执行任务的数据迁移方法完成数据迁移任务;数据迁移模块中的基准数据库,就是待迁移数据库,将该数据库中的所有数据全部迁移到目标数据库,或者迁移到NFS或OSS存储中;数据迁移模块支持使用Linux内置的Cron进程和Shell脚本设置定时数据迁移任务;所述数据备份模块,使用控制台或者文件接收用户数据备份任务的参数配置,并生成数据备份组件执行数据备份任务所需的JSON配置文件,完成最终的数据备份任务;对数据备份任务所需的JSON配置文件进行参数审核,检查JSON配置文件中配置参数是否合法,参数属性是否存在;数据备份模块对多基准异构数据库以及一个目标异构数据库进行数据备份任务;数据备份模块中,数据备份流程是将基准数据库中所有数据表的全部数据备份到多地域的多类型存储介质中,实现基准数据库中全量数据的异地多活备份;数据备份组件基于开源数据同步组件DataX设计实现,数据备份任务的执行依赖于数据备份组件,数据备份组件使用数据备份模块中Python多进程和多协程并发执行任务的数据备份方法完成数据备份任务;数据备份模块中的基准数据库,就是待备份数据库,将该数据库中的所有数据全部备份到目标数据库,或者备份到NFS或OSS存储中;数据备份模块支持用户自定义数据备份周期以及选择备份存储介质;数据备份模块支持使用Linux内置的Cron进程和Shell脚本设置定时数据备份任务;
所述数据对比模块,使用控制台或者文件接收用户数据对比任务的参数配置,对数据对比任务进行数据实例化操作,完成数据对比任务;数据对比流程是将基准数据库与目标数据库中所有数据表中的数据进行对比,数据对比模块基于Python多进程和多协程并发执行任务的数据并行方法进行数据库之间多级别的数据对比,避免所述数据对比模块中基准数据库与目标数据库直接进行全量数据对比所带来的开销,对比任务完成后生成数据对比结果,然后根据数据对比结果进行消息通知;数据对比任务在多Python协程中执行,由监控模块监控任务进度;数据对比模块的基准数据库,就是待对比数据库,以该数据库为基准,目标数据库中的数据一旦与该数据库中的数据不一致,就要把差异结果输出到控制台;多级别的数据对比包括:数据表、视图、存储过程、存储函数和触发器数据库对象级别的差异对比,数据表的数据总量进行对比,以及每张数据表中数据记录项的对比;数据对比模块支持使用Linux内置的Cron进程和Shell脚本设置定时数据对比任务;所述数据订阅模块,用户界面化进行数据订阅任务的配置,用户需要添加数据订阅任务的参数,生成最终配置的数据订阅任务;数据订阅模块中,数据订阅分为单向增量数据订阅和双向...

【专利技术属性】
技术研发人员:史经犇王伟蒲鹏钱卫宁周傲英
申请(专利权)人:华东师范大学
类型:发明
国别省市:

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

1