一种基于日志文件的数据查询方法和装置与流程

文档序号:36417996发布日期:2023-12-20 00:39阅读:36来源:国知局
一种基于日志文件的数据查询方法和装置与流程

本发明涉及计算机,特别涉及大数据,尤其涉及一种基于日志文件的数据查询方法和装置。


背景技术:

1、数据库的数据导出是数据迁移的起始工作,将数据进行正确完整的导出,才能进一步对数据进行处理并写入到目标数据库,保证导出数据的快照一致性是基础条件之一。相关技术中,通过使用锁或长事务条件,对大数据表进行导出。但使用锁的方式阻止了正常业务需要的写操作,在偏交易类的系统可近似人为是停机状态,即使粒度再小的锁,也会造成数据库业务不可用状态,用户体验较差;长事务条件对数据库的负载和性能会造成较大影响,数据处理效率较低。


技术实现思路

1、本发明的一个目的在于提供一种基于日志文件的数据查询方法,通过结合日志文件实时对分段数据进行查询分析,能够在无锁、不依赖长事务条件下实现大数据表的导出,降低对数据库的负载,实现无感且高可行性的数据导出,保证数据库性能和数据导出操作时间段的数据快照一致性。本发明的另一个目的在于提供一种基于日志文件的数据查询装置。本发明的再一个目的在于提供一种计算机可读介质。本发明的还一个目的在于提供一种计算机设备。

2、为了达到以上目的,本发明一方面公开了一种基于日志文件的数据查询方法,包括:

3、获取待导出数据表和当前日志文件,待导出数据表包括主键信息和数据行信息;

4、根据预设的分段数据量、主键信息和数据行信息,对待导出数据表进行多段划分,得到多段查询数据记录;

5、按照预设的查询并发度,对每段查询数据记录进行迭代查询,得到当前数据查询结果;

6、通过当前日志文件,对当前数据查询结果进行更新,得到目标数据查询结果。

7、优选的,根据预设的分段数据量、主键信息和数据行信息,对待导出数据表进行多段划分,得到多段查询数据记录,包括:

8、根据主键信息,确定出数据快照范围;

9、根据分段数据量、主键信息和数据行信息,对数据快照范围进行多段划分,得到多段查询数据记录。

10、优选的,主键信息包括最大主键值、最小主键值和递增列值,数据行信息包括数据行数;

11、根据主键信息,确定出数据快照范围,包括:

12、若主键信息的类型为自增整数类型,根据最大主键值、最小主键值和数据行数,确定出数据快照范围;

13、若主键信息的类型为非自增整数类型,根据预先配置的列名信息,获取对应的递增列值,递增列值包括最大列值和最小列值;

14、根据最大列值、最小列值和数据行数,确定出数据快照范围。

15、优选的,主键信息的类型为自增整数类型;

16、根据分段数据量、主键信息和数据行信息,对数据快照范围进行多段划分,得到多段查询数据记录,包括:

17、根据分段数据量和数据行数,生成查询数据记录的总段数;

18、按照查询数据记录的总段数和分段数据量,根据最大主键值和最小主键值,将数据快照范围划分为多个区间,得到多段查询数据记录。

19、优选的,按照查询并发度,对每段查询数据记录进行迭代查询,得到当前数据查询结果,包括:

20、获取每段查询数据记录的低水位标识码和高水位标识码;

21、按照查询并发度,根据低水位标识码和高水位标识码进行数据并发查询,得到当前数据查询结果。

22、优选的,方法还包括:

23、将低水位标识码和高水位标识码存储至预先设置的水印表。

24、优选的,在按照查询并发度,对每段查询数据记录进行迭代查询,得到当前数据查询结果之前,还包括:

25、获取每段查询数据记录在当前日志文件中对应的日志起始位置;

26、根据当前日志文件的文件名和日志起始位置,生成每段查询数据记录对应的日志解析起始点。

27、优选的,通过当前日志文件,对当前数据查询结果进行更新,得到目标数据查询结果,包括:

28、按照日志解析起始点,对当前日志文件进行解析,得到全量事件;

29、按照事件类型、事件主键、查询数据记录的低水位标识码和高水位标识码,对全量事件进行事件过滤,得到目标更新事件;

30、根据目标更新事件,对当前数据查询结果进行更新,得到目标数据查询结果。

31、优选的,在通过预设的查询并发度和获取的当前日志文件,对每段查询数据记录进行迭代查询更新,得到目标数据查询结果之后,还包括:

32、将目标数据查询结果转换为磁盘文件;

33、导出磁盘文件。

34、本发明还公开了一种基于日志文件的数据查询装置,包括:

35、第一获取单元,用于获取待导出数据表和当前日志文件,待导出数据表包括主键信息和数据行信息;

36、划分单元,用于根据预设的分段数据量、主键信息和数据行信息,对待导出数据表进行多段划分,得到多段查询数据记录;

37、数据查询单元,用于按照预设的查询并发度,对每段查询数据记录进行迭代查询,得到当前数据查询结果;

38、结果更新单元,用于通过当前日志文件,对当前数据查询结果进行更新,得到目标数据查询结果。

39、优选的,划分单元,具体用于根据主键信息,确定出数据快照范围;根据分段数据量、主键信息和数据行信息,对数据快照范围进行多段划分,得到多段查询数据记录。

40、优选的,主键信息包括最大主键值、最小主键值和递增列值,数据行信息包括数据行数;

41、划分单元,具体用于若主键信息的类型为自增整数类型,根据最大主键值、最小主键值和数据行数,确定出数据快照范围;若主键信息的类型为非自增整数类型,根据预先配置的列名信息,获取对应的递增列值,递增列值包括最大列值和最小列值;根据最大列值、最小列值和数据行数,确定出数据快照范围。

42、优选的,主键信息的类型为自增整数类型;

43、划分单元,具体用于根据分段数据量和数据行数,生成查询数据记录的总段数;按照查询数据记录的总段数和分段数据量,根据最大主键值和最小主键值,将数据快照范围划分为多个区间,得到多段查询数据记录。

44、优选的,数据查询单元,具体用于获取每段查询数据记录的低水位标识码和高水位标识码;按照查询并发度,根据低水位标识码和高水位标识码进行数据并发查询,得到当前数据查询结果。

45、优选的,装置还包括:

46、存储单元,用于将低水位标识码和高水位标识码存储至预先设置的水印表。

47、优选的,装置还包括:

48、第二获取单元,用于获取每段查询数据记录在当前日志文件中对应的日志起始位置;

49、解析起始点生成单元,用于根据当前日志文件的文件名和日志起始位置,生成每段查询数据记录对应的日志解析起始点。

50、优选的,结果更新单元,具体用于按照日志解析起始点,对当前日志文件进行解析,得到全量事件;按照事件类型、事件主键、查询数据记录的低水位标识码和高水位标识码,对全量事件进行事件过滤,得到目标更新事件;根据目标更新事件,对当前数据查询结果进行更新,得到目标数据查询结果。

51、优选的,装置还包括:

52、转换单元,用于将目标数据查询结果转换为磁盘文件;

53、导出单元,用于导出磁盘文件。

54、本发明还公开了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法。

55、本发明还公开了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述处理器执行所述程序时实现如上所述方法。

56、本发明还公开了一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现如上所述方法。

57、本发明获取待导出数据表和当前日志文件,待导出数据表包括主键信息和数据行信息;根据预设的分段数据量、主键信息和数据行信息,对待导出数据表进行多段划分,得到多段查询数据记录;按照预设的查询并发度,对每段查询数据记录进行迭代查询,得到当前数据查询结果;通过当前日志文件,对当前数据查询结果进行更新,得到目标数据查询结果,通过结合日志文件实时对分段数据进行查询分析,能够在无锁、不依赖长事务条件下实现大数据表的导出,降低对数据库的负载,实现无感且高可行性的数据导出,保证数据库性能和数据导出操作时间段的数据快照一致性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1