System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于数据库数据处理,具体涉及一种数据同步装置、方法、电子设备及可读存储介质。
技术介绍
1、现有技术中,时序数据库的数据上传架构,通常包括两种形式:一种是数据直接通过网络上传到云端;另一种是数据通过消息中间件上传到云端。两种数据上传架构中,数据读取过程都涉及从磁盘加载数据,而磁盘io读取是一个相对较慢、访问延迟高的操作。如果频繁地从磁盘加载数据,可能会导致磁盘资源的瓶颈,影响其他进程或应用程序的性能。
2、目前绝大多数的数据库会将频繁访问的数据页缓存在内存中;当查询需要访问某个数据页时,数据库会先检查该数据页是否已经在缓存池中,如果是,则直接从内存中读取;如果不是,则从磁盘中读取并放入缓存池。
3、但是,如上所述的解决方案会出现无法在缓存中读取到所需数据而再次访问数据页的技术问题,从而降低了数据同步和读取速率。
技术实现思路
1、为了克服现有技术的不足,本专利技术提供一种数据同步装置、方法、电子设备及可读存储介质,以解决现有技术中读取数据占据资源、读取速率低的技术问题,在读取数据时提高缓存命中率,减少数据从磁盘文件读取,从而提高数据同步速率。
2、为了解决上述技术问题,本专利技术采用的一个技术方案是:提供一种数据同步装置,包括:数据库访问接口,用于与同步数据库进行数据交互;数据迁移接口,用于与中心数据库进行数据交互;定时线程池,用于在指定时间触发线程安全队列中的任务;线程执行单元,用于:从线程安全队列中并发取出待同步的任务;在任务触发后
3、其中,所述线程执行单元,用于:在任务触发后根据任务要求确定一个时间窗口大小;其中,所述时间窗口的大小等于“数据读取间隔”;根据时间窗口的大小以及数据的总量计算需要读取的页数;通过所述数据库访问接口与同步数据库进行数据交互,根据设定的数据读取间隔确定时间窗口大小,并将窗口内的数据分页读取。
4、其中,在每个任务执行结束后,所述线程执行单元还用于:根据任务执行条件设定下一次任务的触发时间;其中,任务执行条件包括网络状况和最小执行间隔;将待执行的任务及其触发时间投放至定时线程池,等待任务触发;在定时线程池中的定时器到达设定的触发时间时,从所述定时线程池中取出任务,并再次执行数据操作。
5、其中,在每个任务执行结束后,所述线程执行单元还用于:监测当前读取任务的整体耗时,并与预设的阈值进行比较;当整体耗时小于阈值时,确认上传响应速度快,设置当前工作模式为高速上传模式,根据数据写入速度设定任务触发间隔上限;当整体耗时不小于阈值时,确认上传响应速度较慢,设置当前工作模式为速度控制模式,根据网络响应状态灵活调整任务触发间隔;将待执行的任务及其触发时间投放至定时线程池,等待任务触发;在定时线程池中的定时器到达设定的触发时间时,从所述定时线程池中取出任务,并再次执行数据操作。
6、为了解决上述技术问题,本专利技术采用的另一个技术方案是:提供一种数据同步系统,包括:至少两个同步数据库、中心数据库、以及如上所述的数据同步装置;其中,所述数据同步装置与所述同步数据库、中心数据库分别建立通信连接;所述数据同步装置用于通过所述中心数据库将所述同步数据库中所保存的数据库进行同步。
7、为了解决上述技术问题,本专利技术采用的另一个技术方案是:提供一种数据同步方法,所述方法包括:数据同步装置从线程安全队列中并发取出待同步的任务;所述数据同步装置在指定时间触发任务;所述数据同步装置在任务触发后根据任务要求,通过数据库访问接口与第一同步数据库进行数据交互,根据设定的数据读取间隔确定时间窗口大小,并将窗口内的数据分页读取;所述数据同步装置对读取到的每一页数据进行组装或预处理,并将处理后的数据放入待上传队列,调用数据迁移接口与所述中心数据库进行数据交互,使用数据迁移工具将将待上传队列中的数据批量上传至中心数据库,并监测执行结果;所述数据同步装置根据任务条件动态设定触发时间,并根据当前工作模式更新下一轮读取任务的触发时间,等待任务触发;所述数据同步装置的定时线程池进入等待状态,当定时线程池中的定时器到达设定的触发时间时,触发下一个任务,直至所述线程安全队列中的任务全部完成。
8、其中,所述数据同步装置在任务触发后根据任务要求,通过数据库访问接口与第一同步数据库、第二同步数据库进行数据交互,根据设定的数据读取间隔确定时间窗口大小,并将窗口内的数据分页读取,具体包括:所述数据同步装置在任务触发后根据任务要求确定一个时间窗口大小;其中,所述时间窗口的大小等于“数据读取间隔”;所述数据同步装置根据时间窗口的大小以及数据的总量计算需要读取的页数;所述数据同步装置通过数据库访问接口与第一同步数据库、第二同步数据库进行数据交互,根据设定的数据读取间隔确定时间窗口大小,并将窗口内的数据分页读取。
9、其中,所述数据同步装置根据任务条件动态设定触发时间,并根据当前工作模式更新下一轮读取任务的触发时间,等待任务触发,具体包括:所述数据同步装置监测当前读取任务的整体耗时,并与预设的阈值进行比较,判断整体耗时是否小于阈值;当确定整体耗时小于阈值时,所述数据同步装置确认上传响应速度快,设置当前工作模式为高速上传模式,根据数据写入速度设定任务触发间隔上限;当确定整体耗时不小于阈值时,所述数据同步装置确认上传响应速度较慢,设置当前工作模式为速度控制模式,根据网络响应状态灵活调整任务触发间隔。
10、为了解决上述技术问题,本专利技术采用另的一个技术方案是:提供一种电子设备,包括:处理器和存储器,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器执行所述计算机指令时,电子设备执行如上所述的数据同步方法的步骤。
11、为了解决上述技术问题,本专利技术采用的另一个技术方案是:提供一种可读存储介质,可读存储介质中存储有计算机程序,计算机程序包括程序指令,程序指令当被电子设备的处理器执行时,使处理器执行如上所述的数据同步方法的步骤。
12、本专利技术实施方式的有益效果是:通过数据库访问接口实现高效数据读取,同时结合线程执行单元和定时线程池的协同工作,确保任务的有序执行和精准触发;根据数据预估写入速率和数据库缓存大小,系统能够设置合适的数据同步读取频率,从而最大化利用缓存资源,提高缓存命中率,减少机器磁盘io。在与云端通讯网络状况良好的情况下,通过减小数据读取间隔,能够确保读取任务的数据从缓存中读取,实现高速上传状态;而在网络状况不佳时,系统能够根据云端上传速率灵活调整数据读取频率,本文档来自技高网...
【技术保护点】
1.一种数据同步装置,其特征在于,包括:
2.如权利要求1所述的数据同步装置,其特征在于,所述线程执行单元,用于:
3.如权利要求2所述的数据同步装置,其特征在于,在每个任务执行结束后,所述线程执行单元还用于:
4.如权利要求3所述的数据同步装置,其特征在于,在每个任务执行结束后,所述线程执行单元还用于:
5.一种数据同步系统,其特征在于,包括:至少两个同步数据库、中心数据库、以及如权利要求1~4任意一项所述的数据同步装置;其中,所述数据同步装置与所述同步数据库、中心数据库分别建立通信连接;所述数据同步装置用于通过所述中心数据库将所述同步数据库中所保存的数据库进行同步。
6.一种数据同步方法,其特征在于,所述方法包括:
7.如权利要求6所述的数据同步方法,其特征在于,所述数据同步装置在任务触发后根据任务要求,通过数据库访问接口与第一同步数据库、第二同步数据库进行数据交互,根据设定的数据读取间隔确定时间窗口大小,并将窗口内的数据分页读取,具体包括:
8.如权利要求7所述的数据同步方法,其特征在于,所
9.一种电子设备,包括:处理器和存储器,其特征在于,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器执行所述计算机指令时,电子设备执行如权利要求6~8任意一项所述的数据同步方法的步骤。
10.一种可读存储介质,可读存储介质中存储有计算机程序,其特征在于,计算机程序包括程序指令,程序指令当被电子设备的处理器执行时,使处理器执行如权利要求6~8任意一项所述的数据同步方法的步骤。
...【技术特征摘要】
1.一种数据同步装置,其特征在于,包括:
2.如权利要求1所述的数据同步装置,其特征在于,所述线程执行单元,用于:
3.如权利要求2所述的数据同步装置,其特征在于,在每个任务执行结束后,所述线程执行单元还用于:
4.如权利要求3所述的数据同步装置,其特征在于,在每个任务执行结束后,所述线程执行单元还用于:
5.一种数据同步系统,其特征在于,包括:至少两个同步数据库、中心数据库、以及如权利要求1~4任意一项所述的数据同步装置;其中,所述数据同步装置与所述同步数据库、中心数据库分别建立通信连接;所述数据同步装置用于通过所述中心数据库将所述同步数据库中所保存的数据库进行同步。
6.一种数据同步方法,其特征在于,所述方法包括:
7.如权利要求6所述的数据同步方法,其特征在于,所述数据同步装置在...
【专利技术属性】
技术研发人员:姚浩强,吴峰,李振,
申请(专利权)人:粤港澳大湾区广东国创中心,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。