一种数据同步方法、装置、设备及计算机可读存储介质与流程

文档序号:36285227发布日期:2023-12-07 00:41阅读:44来源:国知局
一种数据同步方法与流程

本发明涉及计算机,特别涉及一种数据同步方法、装置、设备及计算机可读存储介质。


背景技术:

1、基于云安全托管平台,因其业务需求,elasticsearch(基于lucene的分布式全文搜索引擎,提供实时搜索、分析和存储能力)常用于存储日志和事件数据等,这些数据可能包含重要的业务信息。通过将elasticsearch数据同步到mysql(一种开源的关系型数据库管理系统,支持多种操作系统和编程语言,具有高性能、可靠性和可扩展性)数据库中,可以将数据备份到可靠的关系型数据库中,以便在elasticsearch数据丢失或损坏时进行恢复操作。

2、logstash(是一个开源数据收集引擎)可以通过用户从各种数据源收集数据,并将其发送到目标位置,达成数据转换和传输的目的,在elasticsearch数据同步到mysql数据库一般较为常用,但其因为采用了java(是一门面向对象的编程语言)编程的应用程序,存在较多的组件和应用,运维保障相对复杂,需要额外的配置和管理工作;并且还会占用额外的系统资源和网络带宽;对于大数据量的同步,logstash方法可能会影响elasticsearch的性能。

3、因此,如何高效便捷地将elasticsearch数据同步到mysql数据库是本领域技术人员亟待解决的问题。


技术实现思路

1、有鉴于此,本发明的目的在于提供数据同步方法、装置、设备及可读存储介质,解决了现有技术中将elasticsearch数据同步到mysql数据库效率低且不便捷的问题。

2、为解决上述技术问题,本发明提供了一种数据同步方法,包括:

3、mysql数据库和elasticsearch建立连接;

4、当连接成功后,检查所述mysql数据库中是否存在目标表;

5、若存在,则利用elasticsearch的search api和scroll api获取所述elasticsearch中的数据;

6、若不存在,则创建所述目标表,执行所述利用elasticsearch的search api和scroll api获取所述elasticsearch中的数据的步骤;

7、将所述elasticsearch中的数据进行类型转换并同步到所述mysql数据库。

8、可选的,在所述mysql数据库和elasticsearch建立连接之后,还包括:

9、判断是否为首次连接;

10、若是首次连接,则所述利用所述elasticsearch的search api和scroll api获取所述elasticsearch中的数据,包括:

11、利用所述elasticsearch的search api和scroll api获取所述elasticsearch中的所有数据;

12、若非首次连接,则所述利用所述elasticsearch的search api和scroll api获取所述elasticsearch中的数据,包括:

13、利用所述elasticsearch的search api和scroll api按照预设规则获取所述elasticsearch中的数据。

14、可选的,所述利用所述elasticsearch的search api和scroll api按照预设规则获取所述elasticsearch中的数据,包括:

15、获取预设周期;

16、利用所述search api向所述elasticsearch发送查询请求;所述查询请求包括查询数据范围;

17、利用所述scroll api根据所述查询请求和所述预设周期滚动获取所述elasticsearch中的数据。

18、可选的,所述利用所述elasticsearch的scroll api获取所述elasticsearch中的数据,包括:

19、利用基于时间的scroll api获取所述elasticsearch中的数据;

20、或者,利用基于游标的scroll api获取所述elasticsearch中的数据;

21、或者,利用基于slice的scroll api获取所述elasticsearch中的数据。

22、可选的,所述利用所述elasticsearch的search api和scroll api获取所述elasticsearch中的数据;将所述elasticsearch中的数据进行类型转换并同步到所述mysql数据库,包括:

23、按照多线程的方式执行利用所述elasticsearch的search api和scroll api获取所述elasticsearch中的数据;

24、按照多线程方式将所述elasticsearch中的数据进行类型转换并同步到所述mysql数据库。

25、可选的,所述将所述elasticsearch中的数据同步到所述mysql数据库,包括:

26、检查所述mysql数据库是否存在所述elasticsearch中的数据;

27、若存在,则根据所述elasticsearch中的数据更新所述mysql数据库;

28、若不存在,则将所述elasticsearch中的数据插入到所述mysql数据库。

29、可选的,所述将所述elasticsearch中的数据进行类型转换,包括:

30、将所述elasticsearch中的数据由json格式转换为所述mysql数据库中的表和字段。

31、本发明还提供了一种数据同步装置,包括:

32、建立连接模块,用于mysql数据库和elasticsearch建立连接;

33、检测目标表模块,用于当连接成功后,检查所述mysql数据库中是否存在目标表;

34、第一获取模块,用于若存在,则利用elasticsearch的search api和scroll api获取所述elasticsearch中的数据;

35、第二获取模块,用于若不存在,则创建所述目标表,执行所述利用elasticsearch的search api和scroll api获取所述elasticsearch中的数据的步骤;

36、转换同步模块,用于将所述elasticsearch中的数据进行类型转换并同步到所述mysql数据库。

37、本发明还提供了一种数据同步设备,包括:

38、存储器,用于存储计算机程序;

39、处理器,用于执行所述计算机程序时实现上述的数据同步方法的步骤。

40、本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据同步方法的步骤。

41、可见,本发明通过mysql数据库和elasticsearch建立连接;当连接成功后,检查mysql数据库中是否存在目标表;若存在,则利用elasticsearch的search api和scrollapi获取elasticsearch中的数据;若不存在,则创建目标表,执行利用elasticsearch的search api和scroll api获取elasticsearch中的数据的步骤;将elasticsearch中的数据进行类型转换并同步到mysql数据库。本发明使用elasticsearch的scroll api实现elasticsearch数据同步到mysql数据库,因scroll api为开源技术可以降低系统成本,并且可以获得更好的灵活性和可扩展性;还可以避免在每次查询时重新计算查询结果的开销,从而提高查询效率。

42、此外,本发明还提供了一种数据同步装置、设备及计算机可读存储介质,同样具有上述有益效果。

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