System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种从tdengine数据增量同步到开务数据库的方法及系统技术方案_技高网

一种从tdengine数据增量同步到开务数据库的方法及系统技术方案

技术编号:40541690 阅读:6 留言:0更新日期:2024-03-05 18:57
本发明专利技术涉及存储格式领域,具体提供了一种从tdengine数据增量同步到开务数据库的方法及装置,具有如下步骤:S1、用户运行程序,数据读取模块会分片读取tdengine数据库中的数据;S2、数据去重模块通过一个map维护着每个表的已同步到的最新数据的时间戳,并判断数据是否可用;S3、数据包装模块对通过数据去重模块发过来的数据进行包装,包装成直接写进数据库的格式;S4、数据写入模块对数据包装模块发来的数据进行数据写入;S5、根据日志信息模块中预设的参数进行对应的异常检测记录输出。与现有技术相比,本发明专利技术能够不需要运维人员长时间盯着程序运行,若出错会有日志报警警告,减少运维人员维护时间成本。

【技术实现步骤摘要】

本专利技术涉及存储格式领域,具体提供一种从tdengine数据增量同步到开务数据库的方法及系统


技术介绍

1、现在数据库类的产品的种类与用途越来越多,开务数据库作为一个时序数据库产品在同类型产品中有着很大的竞争力,随着越来越多的用户对开务数据库进行使用,数据从旧数据库中迁移到开务数据库中也是一件非常重要的事情。

2、增量数据同步就是只将新增及变化数据进行数据同步,而传统上,不同数据库之间的增量数据同步需要数据库的运维人员记录旧数据库中每个表的上次查询时间,并定时对各个表进行从上次查询时间到现在时间的新数据的查询,并将结果转存到新数据库中。而时序数据库最大的特点就是要保证数据的实时性及有效性,所以需要很频繁的进行上述操作来保证新数据库中数据实时可用。这样的做法对于运维人员来说既费时又费心,会大大增加人力成本与时间成本。另外如果在过程中发生错误,也会或多或少的对数据的时效产生影响,更严重的也可能会发生数据丢失等情况。


技术实现思路

1、本专利技术是针对上述现有技术的不足,提供一种实用性强的从tdengine数据增量同步到开务数据库的方法。

2、本专利技术进一步的技术任务是提供一种设计合理,安全适用的从tdengine数据增量同步到开务数据库的系统。

3、本专利技术解决其技术问题所采用的技术方案是:

4、一种从tdengine数据增量同步到开务数据库的方法,具有如下步骤:

5、s1、用户运行程序,数据读取模块会分片读取tdengine数据库中的数据;

6、s2、数据去重模块通过一个map维护着每个表的已同步到的最新数据的时间戳,并判断数据是否可用;

7、s3、数据包装模块对通过数据去重模块发过来的数据进行包装,包装成直接写进数据库的格式;

8、s4、数据写入模块对数据包装模块发来的数据进行数据写入;

9、s5、根据日志信息模块中预设的参数进行对应的异常检测记录输出。

10、进一步的,在步骤s1中,进一步包括:

11、s101、用户启动程序,并指定一段时间从tdengine读取一次数据;

12、s102、程序创建一个分片器和读取器及数据收集器,分片器每隔步骤s101中指定的时间收集所有需要数据同步的表,并向读取器发送一次数据同步表的读取请求;

13、s103、读取器收到请求后,会将每个表进行分片操作,也就是每个分片只进行单个表的数据读取;

14、s104、每个分片创建一个分片读取器,用于具体的单表数据读取;

15、s105、每个分片读取器将读到的数据发给数据收集器,由数据收集器将数据整理收集发给数据去重模块。

16、进一步的,其特征在于,在步骤s2中,判断过程为:

17、(1)将数据读取模块传输过来的大量数据分割成逐条数据;

18、(2)判断数据的时间戳与当前表写入的最大时间戳进行比较,如果这条数据的时间戳大于当前表写入的最大时间戳,则将这条数据保存;

19、如果这条数据的时间戳小于等于当前表写入的最大时间戳,则将这条数据丢弃;

20、(3)当一批次数据全部处理完之后,将保存的所有数据发往数据包装模块;

21、(4)程序启动一个单独的线程,用于监听从数据写入模块传过来的各个表的最大写入的时间戳,并将数据去重模块维护的map存放的最新插入的时间戳进行更新。

22、进一步的,其特征在于,在步骤s4中,数据写入模块对数据包装模块发来的数据进行数据写入,写入方式有开务数据库的3306端口插入模式及9091端口、9092端口的导入模式;

23、并且将每条数据写入之后将这条数据的时间戳和所属的表进行记录,并在数据成功写入后,将每个表的最新写入数据的时间戳发回数据去重模块。

24、进一步的,其特征在于,在步骤s5中,根据日志信息模块中预设的info、debug、error以及其他参数,进行对应的异常检测记录的输出,若有error信息,则需要运维人员查看数据为何报错以及如何解决;

25、对于info与debug信息,则是方便运维人员查看error信息前后各逻辑的正确与否。

26、一种从tdengine数据增量同步到开务数据库的系统,包括数据读取模块、数据去重模块、数据包装模块、数据写入模块和日志信息模块;

27、所述数据读取模块用于用户运行程序,数据读取模块会分片读取tdengine数据库中的数据;

28、所述数据去重模块用于通过一个map维护着每个表的已同步到的最新数据的时间戳,并判断数据是否可用;

29、所述数据包装模块用于通过数据去重模块发过来的数据进行包装,包装成直接写进数据库的格式;

30、所述数据写入模块用于对数据包装模块发来的数据进行数据写入;

31、所述日志信息模块用于根据日志信息模块中预设的参数进行对应的异常检测记录输出。

32、进一步的,数据读取模块中,用户启动程序,并指定一段时间从tdengine读取一次数据,程序创建一个分片器和读取器及数据收集器,分片器每隔指定的时间收集所有需要数据同步的表,并向读取器发送一次这些表的读取请求;

33、读取器收到请求后,会将每个表进行分片操作,也就是每个分片只进行单个表的数据读取,每个分片创建一个分片读取器,用于具体的单表数据读取,每个分片读取器将读到的数据发给数据收集器,由数据收集器将数据整理收集发给数据去重模块。

34、进一步的,在数据去重模块中,判断数据是否可用中,判断过程为:

35、将数据读取模块传输过来的大量数据分割成逐条数据,判断数据的时间戳与当前表写入的最大时间戳进行比较,如果这条数据的时间戳大于当前表写入的最大时间戳,则将这条数据保存;

36、如果这条数据的时间戳小于等于当前表写入的最大时间戳,则将这条数据丢弃;

37、当一该批次数据全部处理完之后,将保存的所有数据发往数据包装模块,程序启动一个单独的线程,用于监听从数据写入模块传过来的各个表的最大写入的时间戳,并将数据去重模块维护的map存放的最新插入的时间戳进行更新。

38、进一步的,在数据写入模块中,对数据包装模块发来的数据进行数据写入,写入方式有开务数据库的3306端口插入模式及9091端口、9092端口的导入模式;

39、并且将每条数据写入之后将这条数据的时间戳和所属的表进行记录,并在数据成功写入后,将每个表的最新写入数据的时间戳发回数据去重模块。

40、进一步的,根据日志信息模块中预设的info、debug、error以及其他参数,进行对应的异常检测记录的输出,若有error信息,则需要运维人员查看数据为何报错以及如何解决;

41、对于info与debug信息,则是方便运维人员查看error信息前后各逻辑的正确与否。

本文档来自技高网...

【技术保护点】

1.一种从tdengine数据增量同步到开务数据库的方法,其特征在于,具有如下步骤:

2.根据权利要求1所述的一种从tdengine数据增量同步到开务数据库的方法,其特征在于,在步骤S1中,进一步包括:

3.根据权利要求2所述的一种从tdengine数据增量同步到开务数据库的方法,其特征在于,在步骤S2中,判断过程为:

4.根据权利要求3所述的一种从tdengine数据增量同步到开务数据库的方法,其特征在于,在步骤S4中,数据写入模块对数据包装模块发来的数据进行数据写入,写入方式有开务数据库的3306端口插入模式及9091端口、9092端口的导入模式;

5.根据权利要求4所述的一种从tdengine数据增量同步到开务数据库的方法,其特征在于,在步骤S5中,根据日志信息模块中预设的info、debug、error以及其他参数,进行对应的异常检测记录的输出,若有error信息,则需要运维人员查看数据为何报错以及如何解决;

6.一种从tdengine数据增量同步到开务数据库的系统,其特征在于,包括数据读取模块、数据去重模块、数据包装模块、数据写入模块和日志信息模块;

7.根据权利要求6所述的一种从tdengine数据增量同步到开务数据库的系统,其特征在于,数据读取模块中,用户启动程序,并指定一段时间从tdengine读取一次数据,程序创建一个分片器和读取器及数据收集器,分片器每隔指定的时间收集所有需要数据同步的表,并向读取器发送一次这些表的读取请求;

8.根据权利要求7所述的一种从tdengine数据增量同步到开务数据库的系统,其特征在于,在数据去重模块中,判断数据是否可用中,判断过程为:

9.根据权利要求8所述的一种从tdengine数据增量同步到开务数据库的系统,其特征在于,在数据写入模块中,对数据包装模块发来的数据进行数据写入,写入方式有开务数据库的3306端口插入模式及9091端口、9092端口的导入模式;

10.根据权利要求9所述的一种从tdengine数据增量同步到开务数据库的系统,其特征在于,根据日志信息模块中预设的info、debug、error以及其他参数,进行对应的异常检测记录的输出,若有error信息,则需要运维人员查看数据为何报错以及如何解决;

...

【技术特征摘要】

1.一种从tdengine数据增量同步到开务数据库的方法,其特征在于,具有如下步骤:

2.根据权利要求1所述的一种从tdengine数据增量同步到开务数据库的方法,其特征在于,在步骤s1中,进一步包括:

3.根据权利要求2所述的一种从tdengine数据增量同步到开务数据库的方法,其特征在于,在步骤s2中,判断过程为:

4.根据权利要求3所述的一种从tdengine数据增量同步到开务数据库的方法,其特征在于,在步骤s4中,数据写入模块对数据包装模块发来的数据进行数据写入,写入方式有开务数据库的3306端口插入模式及9091端口、9092端口的导入模式;

5.根据权利要求4所述的一种从tdengine数据增量同步到开务数据库的方法,其特征在于,在步骤s5中,根据日志信息模块中预设的info、debug、error以及其他参数,进行对应的异常检测记录的输出,若有error信息,则需要运维人员查看数据为何报错以及如何解决;

6.一种从tdengine数据增量同步到开务数据库的系统,其特征在于,包括数据读取模块、数据去重模块、数据包装模...

【专利技术属性】
技术研发人员:黄向阳
申请(专利权)人:山东浪潮数据库技术有限公司
类型:发明
国别省市:

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

1