对分片数据库数据采集的系统和方法技术方案

技术编号:23400002 阅读:50 留言:0更新日期:2020-02-22 12:16
本发明专利技术涉及对分片数据库数据采集的系统和方法,系统包括主程序模块:接收参数,启动xcat线程;配置模块:对每个分片数据库的连接信息进行配置;优先级配置模块:存储采集表的优先级配置信息;控制信息模块:通过控制信息表记录采集表的控制信息;采集子程序模块:接收控制信息表生成的数据和主程序模块的参数输出,对同一个采集表从不同的分片数据库中进行分布式并发数据采集。本发明专利技术在对大数据量的数据仓库进行数据采集时,对已有和新增的分库分表都完全实现了可配置化数据采集,不需要开发任务脚本,不需要变更应用程序,只需根据相应的关联配置信息即可实现,因此也使得采集数据的性能更加高效。

The system and method of data acquisition for slice database

【技术实现步骤摘要】
对分片数据库数据采集的系统和方法
本专利技术涉及数据采集的系统和方法,具体讲是对分片数据库数据采集的系统和方法。
技术介绍
在传统的数据库中间件中,许多数据库中间件具有明显的局限性。例如Mycat与ShardingProxy都是分布式数据库的中间件,但是这些数据库中间件都并非为常用的分库分表的数据采集而设计的,虽然这些数据库中间件的功能较多,但在分布式数据仓库的应用场景下对大数据量的数据采集并不适用。其中一个重要原因是这些数据库中间件在查询数据库表时,如果在select语句的where条件中不带分片字段则会进行全表扫描(fullscan),查询的结果都将存储到数据库中间件中,待最后一个分片库数据采集完成后才将最终结果集返回到查询的客户端,这样会使得数据库中间件的运行负荷超载,而且在大数据量的数据采集时会带来无法预知问题。
技术实现思路
本专利技术提供了一种对分片数据库数据采集的系统和方法,针对大数据平台数据仓库,在实现采集分库分表程序的同时,满足便捷性、可配置化和稳定性的需求。本专利技术对分片数据库数据采集的系统,包括:主程序模块:通过系统的处理器接收批量日期与采集表的表名,启动xcat线程,其中在采集表中记录有需要采集的各种数据,并且一张采集表中的数据被存储在不同的分片数据库中;配置模块:通过所述处理器接收主程序模块的输出,对每个分片数据库的连接信息进行配置,生成配置表并保存在系统的内存中;优先级配置模块:通过所述处理器接收主程序模块的输出,并在系统的内存中存储有优先级配置表,在所述的优先级配置表中包含有根据下游系统对不同采集表的依赖强弱程度的不同,而对采集表的优先级配置信息;控制信息模块:采集表分别与配置表和优先级配置表关联后,通过形成的控制信息表记录采集表的控制信息;采集子程序模块:通过所述处理器接收控制信息表生成的数据和主程序模块的参数输出,通过Sqoop程序对同一个采集表从不同的分片数据库中进行分布式并发数据采集。在现有的分布式系统中,采集表的优先级通常都是通过调度工具的作业来实现的,优先级是预先固定死的,调整优先级就需要修改相应的程序逻辑。而本专利技术的采集表优先级是由优先级配置表初始化后,通过后续作业对该采集表信息的依赖强弱程度来自动更新采集表权重,更加智能和实时,并且不需要对程序进行修改。进一步的,还具有通过所述处理器接收控制信息表生成数据的信息日志模块,通过信息日志表记录每一次采集数据的信息和采集状态。本专利技术还提供了一种用于上述系统的对分片数据库数据采集的方法,包括:A.通过系统的处理器,由主程序模块接收批量日期与采集表的表名,然后启动xcat线程;B.通过xcat线程,从内存中读取采集表、配置表和优先级配置表,并将采集表分别与配置表和优先级配置表关联后形成控制信息表,通过控制信息表记录采集表的控制信息,并且系统根据优先级配置表中保存的下游系统对不同采集表对应的依赖程度,实时调整在采集同一张采集表的数据时,不同的分片数据库之间的采集间隔时间;C.系统根据控制信息表中的采集表的控制信息,判断当前采集表的所有分片数据是否已通过采集子程序采集完成,如果完成则返回主程序后结束,否则采集子程序通过Sqoop程序根据控制信息表的数据和主程序模块的输出参数,继续到对应的分片数据库中采集数据;D.系统判断采集数据过程是否有错误,如果没有错误则采集数据后返回步骤B循环执行,否则返回主程序后结束。进一步的,在每次采集数据时,系统通过信息日志表记录每一次采集数据的记录条数和采集状态。进一步的,步骤B中,采集表与配置表通过对应的分片数据库的信息关联,采集表与优先级配置表通过采集表名称关联,形成采集表与分片数据库之间一对多的控制信息。优选的,步骤D中如果在采集数据的过程出现错误,系统进行重试采集,当重试次数达到预设的阈值后仍然出现错误,则报错并返回主程序后结束。在此基础上,在控制信息表中,对同一张采集表只保存一组与步骤A所述的批量日期相对应的该采集表的控制信息。在此基础上,步骤C中采集子程序采集分片数据库中的数据时,采集子程序根据配置,对同一个采集表的不同分片数据库的最大并发采集线程数进行控制,并根据当前系统的运行状态自动调整最大并发采集线程数的阈值。在现有的分布式系统的数据采集程序中,通常是没有对线程并发数量进行控制的,而如果并发过大会对在线联机系统造成压力过大,对业务系统的正常业务开展及分布式系统的装载带来风险。而本专利技术通过对并发线程数量的控制,有效避免了这一问题。本专利技术对分片数据库数据采集的系统和方法,在对大数据量的数据仓库进行数据采集时,对已有和新增的分库分表都完全实现了可配置化数据采集,不需要开发任务脚本,不需要变更应用程序,只需根据相应的关联配置信息即可实现,因此也使得采集数据的性能更加高效。以下结合实施例的具体实施方式,对本专利技术的上述内容再作进一步的详细说明。但不应将此理解为本专利技术上述主题的范围仅限于以下的实例。在不脱离本专利技术上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本专利技术的范围内。附图说明图1为本专利技术对分片数据库数据采集的系统的框图。图2为本专利技术对分片数据库数据采集的方法的流程图。具体实施方式本实施例通过Python(一种计算机程序设计语言)+Sqoop(一种分布式应用系统)来的实现分库分表的数据采集。如图1所示本专利技术对分片数据库数据采集的系统,包括:主程序模块:通过系统的处理器接收批量日期与采集表的表名,启动xcat线程。配置模块:通过所述处理器接收主程序模块的输出,对每个分片数据库的连接信息进行配置,生成配置表并保存在系统的内存中。优先级配置模块:通过所述处理器接收主程序模块的输出,并在系统的内存中存储有优先级配置表,在所述的优先级配置表中包含有根据下游系统对不同采集表的依赖强弱程度的不同,而对采集表的优先级配置信息。本专利技术的采集表优先级是由优先级配置表通过后续作业对该采集表信息的依赖强弱程度来自动更新采集表权重,更加智能和实时,并且不需要对程序进行修改。控制信息模块:采集表分别与配置表和优先级配置表关联后,通过形成的控制信息表记录采集表的控制信息。信息日志模块:通过所述处理器接收控制信息表生成数据,通过信息日志表记录每一次采集数据的信息和采集状态。采集子程序模块:通过所述处理器接收控制信息表生成的数据和主程序模块的参数输出,通过Sqoop程序对同一个采集表从不同的分片数据库中进行分布式并发数据采集。如图2所示,本专利技术用于上述系统的对分片数据库数据采集的方法,包括:A.通过系统的处理器,由主程序模块接收批量日期与需要采集数据的采集表的表名两个参数,然后启动会调用主程序BatchExtractData的xcat.py线程。B.通过xcat线程,从内存中读取采集表、配置表和优先级配置表,并采集表名本文档来自技高网...

【技术保护点】
1.对分片数据库数据采集的系统,其特征包括:/n主程序模块:通过系统的处理器接收批量日期与采集表的表名,启动xcat线程;/n配置模块:通过所述处理器接收主程序模块的输出,对每个分片数据库的连接信息进行配置,生成配置表并保存在系统的内存中;/n优先级配置模块:通过所述处理器接收主程序模块的输出,并在系统的内存中存储有优先级配置表,在所述的优先级配置表中包含有根据下游系统对不同采集表的依赖强弱程度的不同,而对采集表的优先级配置信息;/n控制信息模块:采集表分别与配置表和优先级配置表关联后,通过形成的控制信息表记录采集表的控制信息;/n采集子程序模块:通过所述处理器接收控制信息表生成的数据和主程序模块的参数输出,通过Sqoop程序对同一个采集表从不同的分片数据库中进行分布式并发数据采集。/n

【技术特征摘要】
1.对分片数据库数据采集的系统,其特征包括:
主程序模块:通过系统的处理器接收批量日期与采集表的表名,启动xcat线程;
配置模块:通过所述处理器接收主程序模块的输出,对每个分片数据库的连接信息进行配置,生成配置表并保存在系统的内存中;
优先级配置模块:通过所述处理器接收主程序模块的输出,并在系统的内存中存储有优先级配置表,在所述的优先级配置表中包含有根据下游系统对不同采集表的依赖强弱程度的不同,而对采集表的优先级配置信息;
控制信息模块:采集表分别与配置表和优先级配置表关联后,通过形成的控制信息表记录采集表的控制信息;
采集子程序模块:通过所述处理器接收控制信息表生成的数据和主程序模块的参数输出,通过Sqoop程序对同一个采集表从不同的分片数据库中进行分布式并发数据采集。


2.如权利要求1所述的对分片数据库数据采集的系统,其特征为:还具有通过所述处理器接收控制信息表生成数据的信息日志模块,通过信息日志表记录每一次采集数据的数据量和采集状态。


3.用于权利要求1或2所述系统的对分片数据库数据采集的方法,其特征包括:
A.通过系统的处理器,由主程序模块接收批量日期与采集表的表名,然后启动xcat线程;
B.通过xcat线程,从内存中读取采集表、配置表和优先级配置表,并将采集表分别与配置表和优先级配置表关联后形成控制信息表,通过控制信息表记录采集表的控制信息,并且系统根据优先级配置表中保存的下游系统对不同采集表对应的依赖程度,实时调整在采集同一张采集表的数据时,不同的分片数据库之间的采集间隔时间;<...

【专利技术属性】
技术研发人员:田德惠
申请(专利权)人:四川新网银行股份有限公司
类型:发明
国别省市:四川;51

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

1