System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种分区大表数据同步场景的处理方法及系统技术方案_技高网

一种分区大表数据同步场景的处理方法及系统技术方案

技术编号:40674698 阅读:4 留言:0更新日期:2024-03-18 19:12
本发明专利技术涉及离线数据同步技术领域,提供了一种分区大表数据同步场景的处理方法及系统。该方法包括,获取待拆分的作业;对作业进行拆分,包括:调整传输通道数量;计算通道传输的最大记录数和最大比特流;基于通道传输的最大记录数和最大比特流,根据PARTITION配置对源端表进行分区拆分,创建分区查询SQL并生成配置;在分区查询SQL的记录数量超过设定阈值时,获取用户配置的拆分模式;分区查询的配置进一步拆分SQL,根据主键和拆分模式,拆分分区查询SQL为范围查询SQL;将分区查询SQL生成的配置添加到读分区组配置列表中;根据读分区组配置列表,生成写分区组配置列表;整合读写配置,生成任务组配置。

【技术实现步骤摘要】

本专利技术涉及离线数据同步,尤其涉及一种分区大表数据同步场景的处理方法及系统


技术介绍

1、本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。

2、随着数据业务进入高速发展时期,计算数据存储平台开始使用数据库分区、数据库分库分表、分布式数据库、大数据等产品,而数据同步使用个性定制化工具。数据同步工作在数据集成阶段进行,涉及源端数据平台集成到目的端数据平台。从数据同步的实时性区分,数据同步分为离线数据同步和实时数据同步,离线数据同步工具包括sqoop、datax等,实时数据同步工具包括canal等。从数据同步的同源性区分,数据同步分为异构数据同步和同构数据同步。

3、数据同步工具核心功能主要包括异构数据同步、数据同步性能、数据质量监控以及健壮的容错机制。当前优秀的数据同步工具在处理关系型数据库小表的情况下,有较好的性能表现,但在处理上亿级数据量分区大表到分布式数据库/大数据产品中,数据同步周期时间长,性能低下,当遇到网络抖动,同步任务重启,重复数据重复插入会造成后台大量的错误日志,消耗系统性能。

4、电力业务系统为在线事务处理类应用,数据存储平台一般使用单机关系型数据库mysql或者云上rds,由于电力业务系统实时采集量测数据量大,单机关系型数据库表多采用分区设计,随着采集量测类数据的累积,当前的分区设计已不能满足现有需要,系统实时查询性能低下,无法满足归档前的数据存储等问题。针对现有业务系统的问题,开展新系统数据开发工作,在数据集成阶段涉及到如何将单机数据库分区大表数据同步到分布式数据库的问题。当前优秀的数据同步工具,在处理此应用场景上存在数据同步周期时间长,性能低下、系统资源消耗大或者数据同步根本无法执行等问题。


技术实现思路

1、为了解决上述
技术介绍
中存在的技术问题,本专利技术提供一种分区大表数据同步场景的处理方法及系统,本专利技术基于datax进行二次开发,无需额外实现特定接口,通过可视化配置的方式,实现分区大表高效的异构数据同步能力,采用多线程执行模型,随并发成线性增长,提高数据同步的性能、降低开发集成的成本和复杂度,缩短开发周期,提高数据开发集成的可用性。

2、为了实现上述目的,本专利技术采用如下技术方案:

3、本专利技术的第一个方面提供一种分区大表数据同步场景的处理方法。

4、一种分区大表数据同步场景的处理方法,包括:

5、获取待拆分的作业;

6、对作业进行拆分,包括:调整传输通道数量;计算通道传输的最大记录数和最大比特流;基于通道传输的最大记录数和最大比特流,根据partition配置对源端表进行分区拆分,创建分区查询sql并生成配置;在分区查询sql的记录数量超过设定阈值时,获取用户配置的拆分模式;分区查询的配置进一步拆分sql,根据主键和拆分模式,拆分分区查询sql为范围查询sql;将分区查询sql生成的配置添加到读分区组配置列表中;根据读分区组配置列表,生成写分区组配置列表;整合读写配置,生成任务组配置。

7、进一步地,在分区查询sql的记录数量未超过设定阈值时,分区查询的配置进一步拆分sql,根据主键和拆分模式,拆分分区查询sql为范围查询sql。

8、进一步地,所述处理方法还包括:解析作业配置,将作业配置和默认核心配置进行整合。

9、进一步地,所述处理方法还包括:初始化作业,包括:初始化读处理器和写处理器,对jar包热加载,设置读处理器的配置信息和写处理器的配置信息。

10、进一步地,所述处理方法还包括:预检查作业,包括:检查账号对源端数据库是否有读权限;根据partition配置对源端表进行分区拆分,创建分区查询sql;分区查询sql的记录数量超过设定阈值时,根据主键和任务最大记录数拆分分区查询sql;校验拆分后的查询sql语句正确性;校验账号对目的端数据库是否有insert和delete权限;对目的端数据库进行数据清理。

11、更进一步地,分区查询sql的记录数量未超过设定阈值时,校验拆分后的查询sql语句正确性。

12、进一步地,所述处理方法还包括:调用作业,包括:为每个通道创建任务组容器;根据任务组中传输记录的数据量和通道限制,将任务组配置,公平分配任务组容器中;根据拆分的任务配置和通道数,为每个任务组容器分配任务;调度任务组容器,创建任务执行器,执行任务;监控任务状态信息,统计时间,汇报任务进展信息。

13、本专利技术的第二个方面提供一种分区大表数据同步场景的处理系统。

14、一种分区大表数据同步场景的处理系统,包括:

15、数据获取模块,其被配置为:获取待拆分的作业;

16、作业拆分模块,其被配置为:调整传输通道数量;计算通道传输的最大记录数和最大比特流;基于通道传输的最大记录数和最大比特流,根据partition配置对源端表进行分区拆分,创建分区查询sql并生成配置;在分区查询sql的记录数量超过设定阈值时,获取用户配置的拆分模式;分区查询的配置进一步拆分sql,根据主键和拆分模式,拆分分区查询sql为范围查询sql;将分区查询sql生成的配置添加到读分区组配置列表中;根据读分区组配置列表,生成写分区组配置列表;整合读写配置,生成任务组配置。

17、本专利技术的第三个方面提供一种计算机可读存储介质。

18、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一个方面所述的分区大表数据同步场景的处理方法中的步骤。

19、本专利技术的第四个方面提供一种计算机设备。

20、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一个方面所述的分区大表数据同步场景的处理方法中的步骤。

21、与现有技术相比,本专利技术的有益效果是:

22、本专利技术基于datax进行二次开发,根据表结构的分区设计和partition配置对源端表进行分区拆分,根据分区拆分的查询sql的数据量、主键、拆分模式,来确定是否进一步拆分为分区范围查询。通过将分区大表数据同步作业合理切分为多个更细粒度的任务,并且采用多线程执行模型并发执行任务,实现数据同步周期短,提高数据开发集成的可用性;使用者无需实现额外接口,通过可视化partition配置的方式,减低开发集成的成本和复杂度。

本文档来自技高网...

【技术保护点】

1.一种分区大表数据同步场景的处理方法,其特征在于,包括:

2.根据权利要求1所述的分区大表数据同步场景的处理方法,其特征在于,在分区查询SQL的记录数量未超过设定阈值时,分区查询的配置进一步拆分SQL,根据主键和拆分模式,拆分分区查询SQL为范围查询SQL。

3.根据权利要求1所述的分区大表数据同步场景的处理方法,其特征在于,所述处理方法还包括:解析作业配置,将作业配置和默认核心配置进行整合。

4.根据权利要求1所述的分区大表数据同步场景的处理方法,其特征在于,所述处理方法还包括:初始化作业,包括:初始化读处理器和写处理器,对JAR包热加载,设置读处理器的配置信息和写处理器的配置信息。

5.根据权利要求1所述的分区大表数据同步场景的处理方法,其特征在于,所述处理方法还包括:预检查作业,包括:检查账号对源端数据库是否有读权限;根据PARTITION配置对源端表进行分区拆分,创建分区查询SQL;分区查询SQL的记录数量超过设定阈值时,根据主键和任务最大记录数拆分分区查询SQL;校验拆分后的查询SQL语句正确性;校验账号对目的端数据库是否有insert和delete权限;对目的端数据库进行数据清理。

6.根据权利要求5所述的分区大表数据同步场景的处理方法,其特征在于,分区查询SQL的记录数量未超过设定阈值时,校验拆分后的查询SQL语句正确性。

7.根据权利要求1所述的分区大表数据同步场景的处理方法,其特征在于,所述处理方法还包括:调用作业,包括:为每个通道创建任务组容器;根据任务组中传输记录的数据量和通道限制,将任务组配置,公平分配任务组容器中;根据拆分的任务配置和通道数,为每个任务组容器分配任务;调度任务组容器,创建任务执行器,执行任务;监控任务状态信息,统计时间,汇报任务进展信息。

8.一种分区大表数据同步场景的处理系统,其特征在于,包括:

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的分区大表数据同步场景的处理方法中的步骤。

10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的分区大表数据同步场景的处理方法中的步骤。

...

【技术特征摘要】

1.一种分区大表数据同步场景的处理方法,其特征在于,包括:

2.根据权利要求1所述的分区大表数据同步场景的处理方法,其特征在于,在分区查询sql的记录数量未超过设定阈值时,分区查询的配置进一步拆分sql,根据主键和拆分模式,拆分分区查询sql为范围查询sql。

3.根据权利要求1所述的分区大表数据同步场景的处理方法,其特征在于,所述处理方法还包括:解析作业配置,将作业配置和默认核心配置进行整合。

4.根据权利要求1所述的分区大表数据同步场景的处理方法,其特征在于,所述处理方法还包括:初始化作业,包括:初始化读处理器和写处理器,对jar包热加载,设置读处理器的配置信息和写处理器的配置信息。

5.根据权利要求1所述的分区大表数据同步场景的处理方法,其特征在于,所述处理方法还包括:预检查作业,包括:检查账号对源端数据库是否有读权限;根据partition配置对源端表进行分区拆分,创建分区查询sql;分区查询sql的记录数量超过设定阈值时,根据主键和任务最大记录数拆分分区查询sql;校验拆分后的查询sql语句正确性;校验账号对目的端数据库是否有insert和de...

【专利技术属性】
技术研发人员:高明陈芳芳徐冉刘涛谢吉伦李咀庆张明岩朱龙
申请(专利权)人:山东鲁软数字科技有限公司
类型:发明
国别省市:

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

1