数据同步方法、设备和计算机可读存储介质与流程
未命名
10-09
阅读:98
评论:0
1.本技术涉及数据库领域,尤其涉及数据同步方法、设备和计算机可读存储介质。
背景技术:
2.弹性搜索引擎(elasticsearch)提供了一个分布式多用户能力的全文搜索和分析引擎,使用java开发并使用lucene为核心来实现所有的搜索和索引功能,具有能够实时搜索、稳定、可靠、快速以及安装方便的特点。弹性搜索引擎允许存储、搜索和分析大量的数据,并且这个过程是近实时的,弹性搜索引擎通常被用作底层引擎和技术,为复杂的搜索功能和要求提供动力。
3.在信息系统中,用户通常采用关系型数据库进行数据的存储,并采用搜索速度快、支持全文搜索等特性的弹性搜索引擎进行数据的查询与搜索。于是,数据库与弹性搜索引擎之间的数据同步问题成为需要解决的一个问题。
4.相关技术中,传统数据库与弹性搜索引擎的数据库之间的数据同步主要是通过官方提供的logstash和非官方提供的elasticsearch-datatran、elasticsearch-dbsync等同步工具实现。然而,现有的数据同步方法只能支持简单的数据表业务的同步,若涉及跨库、多表或复杂的数据同步,则效率较为低下、甚或无法实现。
技术实现要素:
5.为解决或部分解决相关技术中存在的问题,本技术提供一种数据同步方法、设备和计算机可读存储介质,可以实现各种场景下数据源与弹性搜索引擎的数据库的高效同步。
6.本技术第一方面提供一种数据同步方法,包括:
7.对数据源及其数据获取规则进行配置,得到第一配置文件,以及对目标弹性搜索引擎索引进行配置,得到第二配置文件;
8.在收到同步请求消息后,根据所述同步请求消息确定目标数据的同步类型;
9.根据所述第一配置文件,从所述数据源获取所述目标数据;
10.根据所述第二配置文件或根据所述第一配置文件和第二配置文件,生成所述目标弹性搜索引擎索引;
11.根据所述目标弹性搜索引擎索引和所述目标数据的同步类型,将所述目标数据同步至弹性搜索引擎的数据库。
12.本技术第二方面提供一种数据同步装置,包括:
13.配置模块,用于对数据源及其数据获取规则进行配置,得到第一配置文件,以及对目标弹性搜索引擎索引进行配置,得到第二配置文件;
14.确定模块,用于在收到同步请求消息后,根据所述同步请求消息确定目标数据的同步类型;
15.获取模块,用于根据所述第一配置文件,从所述数据源获取所述目标数据;
16.生成模块,用于根据所述第二配置文件或根据所述第一配置文件和第二配置文件,生成所述目标弹性搜索引擎索引;
17.同步模块,用于根据所述目标弹性搜索引擎索引和所述目标数据的同步类型,将所述目标数据同步至弹性搜索引擎的数据库。
18.本技术第三方面提供一种电子设备,包括:
19.处理器;以及
20.存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
21.本技术第四方面提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
22.本技术提供的技术方案可以包括以下有益效果:一方面,通过对数据源及其数据获取规则,以及对目标弹性搜索引擎索引进行配置,分别得到第一配置文件以及第二配置文件,由于可以对目标弹性搜索引擎索引和多种数据源进行按需配置,后续根据这些配置文件即可生成目标弹性搜索引擎索引,因此可以支持复杂多表的数据处理,高效、自动完成数据源与弹性搜索引擎数据库之间的数据同步;另一方面,在生成目标弹性搜索引擎索引和根据同步请求消息确定目标数据的同步类型后,从而可以将目标数据全量或增量同步至弹性搜索引擎,实现了数据源与弹性搜索引擎的数据库之间灵活的数据同步方式,也能提升数据同步的效率。
23.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
24.通过结合附图对本技术示例性实施方式进行更详细地描述,本技术的上述以及其它目的、特征和优势将变得更加明显,其中,在本技术示例性实施方式中,相同的参考标号通常代表相同部件。
25.图1是本技术实施例示出的数据同步方法的流程示意图;
26.图2是本技术实施例示出的数据同步装置的结构示意图;
27.图3是本技术实施例示出的电子设备的结构示意图。
具体实施方式
28.下面将参照附图更详细地描述本技术的实施方式。虽然附图中显示了本技术的实施方式,然而应该理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本技术更加透彻和完整,并且能够将本技术的范围完整地传达给本领域的技术人员。
29.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
30.应当理解,尽管在本技术可能采用术语“第一”、“第二”、“第三”等来描述各种信
息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
31.弹性搜索引擎(elasticsearch)允许存储、搜索和分析大量的数据,并且这个过程是近实时的,弹性搜索引擎通常被用作底层引擎和技术,为复杂的搜索功能和要求提供动力。用户通常采用关系型数据库进行数据的存储,并采用搜索速度快、支持全文搜索等特性的弹性搜索引擎进行数据的查询与搜索。于是,数据库与弹性搜索引擎之间的数据同步问题成为需要解决的一个问题。相关技术中,传统数据库与弹性搜索引擎的数据库之间的数据同步主要是通过官方提供的logstash和非官方提供的elasticsearch-datatran、elasticsearch-dbsync等同步工具实现。然而,现有的弹性搜索引擎数据同步方法只能支持简单的数据表业务的同步,若涉及跨库、多表或复杂的数据同步,则效率较为低下、甚或无法实现。
32.针对上述问题,本技术实施例提供一种数据同步方法,可以实现各种场景下数据源与弹性搜索引擎的数据库的高效同步。
33.以下结合附图详细描述本技术实施例的技术方案。
34.参见图1,是本技术实施例示出的数据同步方法的流程示意图,主要包括步骤s101至步骤s105,说明如下:
35.步骤s101:对数据源及其数据获取规则进行配置,得到第一配置文件,以及对目标弹性搜索引擎索引进行配置,得到第二配置文件。
36.数据源是指需要将其数据同步至弹性搜索引擎的数据库的源头,这些数据源可以是mysql、oracle或postgresql等关系型数据库,此外,需要同步至弹性搜索引擎的数据库的数据亦可以是自定义的数据,例如,基于远程过程调用(remote procedure call,rpc)协议获取的数据;数据源还可以是其他类型,本技术对此不做限制。由于可以通过对各种数据源及其数据获取规则进行配置而得到相应配置文件,因此,本技术的技术方案可以支持复杂多表的数据处理,无需使用left join连表而高效自动地根据配置文件处理数据,快速完成弹性搜索引擎索引的数据维护。目标弹性搜索引擎即需要与数据源进行同步的弹性搜索引擎。在本技术实施例中,对数据源及其数据获取规则进行配置,主要是根据数据源的属性等特征,对数据源的数据获取规则以及数据源名称、地址和查询语句等字段进行定义,从而得到配置数据即第一配置文件。对目标弹性搜索引擎索引进行配置主要包括对目标弹性搜索引擎的索引名称、主键、字段类型、副本数、分片数和集群名称等字段或属性进行定义,其中,字段类型包括单值、多值、数字和字符串等。
37.步骤s102:在收到同步请求消息后,根据同步请求消息确定目标数据的同步类型。
38.同步请求消息来自于数据需求方即需要目标弹性搜索引擎中从数据源同步至该目标弹性搜索引擎的数据一方,例如,可以是业务方。同步请求消息可以携带目标数据的标识(id),同步请求消息可以缓存于kafka消息队列或者通过kafka消息队列发送,kafka消息队列中存储的消息来被称为生产者(producer)即向kafka缓存代理(broker)发送消息的客户端。由此说明,本技术的技术方案的实现无需业务方在其代码进行弹性搜索引擎数据的
增加、删除或更改,只需要发送一个基于kafka的同步请求消息即可。
39.作为本技术的一个实施例,根据同步请求消息确定目标数据的同步类型可以是:根据同步请求消息,获取弹性搜索引擎同步数据表中目标数据的标识;根据目标数据的标识,确定目标数据的同步类型是否为全量同步或增量同步。上述实施例中,若目标数据的标识是所有变化业务数据的标识,则目标数据的同步类型是全量同步。反之,目标数据的标识不是所有变化业务数据的标识,例如,一定范围的标识或者指定的若干标识,则目标数据的同步类型是增量同步。增量同步可以避免弹性搜索引擎增改字段,业务方在代码里加一堆判断,亦可以避免个别数据出现问题而需要全量重跑,或者避免全部字段处理,从而提高数据生成的效率。
40.弹性搜索引擎同步数据表根据数据源的变化业务数据生成,具体是数据源的业务数据发生变化、需要同步至弹性搜索引擎的数据库时,系统就将变化业务数据对应的标识保存下来,形成弹性搜索引擎同步数据表。其中,变化业务数据是数据源中发生变化的业务数据,其一般是从数据源直接读取。然而,考虑到一些诸如mysql、oracle或postgresql等关系型数据库的数据源,其具有主数据库和从数据库,且由于种种原因,主数据库和从数据库的数据并不同步,两者中存储的数据存在一定的延迟。例如,在时刻t从主数据库读取的数据d1和同在时刻t从从数据库读取的数据d2并不相同,即在时刻t从从数据库读取的数据d2可能是在时刻t之前的时刻t’主数据库存储的数据。为了防止同一时刻从两个数据库读取的数据不一样,上述实施例的方法还包括:间隔预设时间两次从数据源读取业务数据,得到两份业务数据;根据两份业务数据中第一次读取的业务数据,生成变化业务数据。
41.如前所述,数据需求方发送同步请求消息至kafka消息队列,其中携带目标数据的标识(id),该目标数据的标识被插入弹性搜索引擎同步数据表,因此,可以根据同步请求消息,获取弹性搜索引擎同步数据表中目标数据的标识。具体地,根据同步请求消息,获取弹性搜索引擎同步数据表中目标数据的标识可以是:扫描弹性搜索引擎同步数据表,以确定是否存在待处理数据;若存在待处理数据,则根据同步请求消息对待处理数据赋予标记值;扫描标记值,以根据标记值获取目标数据的标识。上述实施例中,扫描弹性搜索引擎同步数据表,以确定是否存在待处理数据是通过扫描弹性搜索引擎同步数据表,然后读取其中数据的状态值,若其中存在状态值为预设值的数据,则确定弹性搜索引擎同步数据表存在待处理数据。由于扫描弹性搜索引擎同步数据表和根据同步请求消息对存在的待处理数据赋予标记值是两个不同的进程所为,为了避免已经被赋予标记值的待处理数据再次被处理,在上述实施例中,在确定存在待处理数据并根据同步请求消息对该待处理数据赋予标记值后,可以将该待处理数据的状态值更新,以示该待处理数据是已经处理过的数据,如此,扫描弹性搜索引擎同步数据表的进程在扫描时不再将该待处理数据确定为待处理数据。需要说明的是,上述实施例中的标记值可以是redis缓存单元(例如,redis数据库)中数据的键(key)值。
42.步骤s103:根据第一配置文件,从数据源获取目标数据。
43.如前所述,第一配置文件定义了数据源的数据获取规则以及数据源名称、地址和查询语句等字段。因此,可以根据第一配置文件,从mysql、oracle或postgresql等关系型数据库或者通过基于rpc协议的接口获取目标数据。
44.步骤s104:根据第二配置文件或根据第一配置文件和第二配置文件,生成目标弹
性搜索引擎索引。
45.需要说明的是,弹性搜索引擎索引类似于mysql的数据库,本质上是具有相同结构的文档集合,目标弹性搜索引擎索引即需要与数据源进行同步的弹性搜索引擎的索引。作为本技术一个实施例,根据第二配置文件,生成目标弹性搜索引擎索引可以是:根据第二配置文件,在弹性搜索引擎索引库中创建对应的弹性搜索引擎新增索引、弹性搜索引擎更改索引或弹性搜索引擎删除索引,此处,弹性搜索引擎新增索引对应于目标数据是新增且需要同步至弹性搜索引擎的数据库的数据,弹性搜索引擎更改索引对应于目标数据是更改且需要同步至弹性搜索引擎的数据库的数据,弹性搜索引擎弹性搜索引擎删除索引对应于目标数据是删除且需要同步至弹性搜索引擎的数据库的数据。在本技术实施例中,根据第二配置文件,在弹性搜索引擎索引库中创建对应的弹性搜索引擎新增索引、弹性搜索引擎更改索引或弹性搜索引擎删除索引可以通过执行命令行实现,例如,对第二配置文件执行命令行./task xxxxxxxxshowcreate,生成curl,然后直接拷贝生成的curl即可生成弹性搜索引擎新增索引、弹性搜索引擎更改索引或弹性搜索引擎删除索引等目标弹性搜索引擎索引。
46.作为本技术另一实施例,根据第一配置文件和第二配置文件,生成目标弹性搜索引擎索引可以是:根据所述第二配置文件,编写第一配置文件中对应于数据源的查询语句作为弹性搜索引擎索引类;将每个第一配置文件中对应于数据源的查询语句命名,并根据弹性搜索引擎索引类将第一配置文件中对应于数据源的查询语句编写为映射器文件,以得到目标弹性搜索引擎索引。以数据源是mysql数据库为例,一般通过编写sql语句来查询mysql数据库的数据。例如,弹性搜索引擎中具有数据表,其配置文件中各列属性参数分别为人员年龄、性别、标识和属地,此时,按照属性参数来编写sql语句,分别得到人员关于年龄索引类、性别索引类、属地索引类和标识索引类,其中,索引类与数据表中的属性参数相对应。需要说明的是,虽然配置文件是以属性参数为人员年龄、性别、标识和属地为例说明,在实际应用中,还可以包括其他属性参数,弹性搜索引擎的数据还具有其他类型的数据,并不造成对本技术的限定性说明。本实施例中,索引文件的索引类为年龄索引类、性别索引类、属地索引类和标识索引类仅为示例性说明,在其他实施例中,索引文件的索引类还可以是其他,在此不再赘述。在将每个第一配置文件中对应于数据源的查询语句命名,并根据弹性搜索引擎索引类将第一配置文件中对应于数据源的查询语句编写为映射器文件时,例如,可以将根据弹性搜索引擎数据中编写的关于年龄的sql语句命名为“querypersonbyage”,为映射器文件中的年龄索引类,编写后的映射器文件包含一个名为“querypersonbyage”的索引类,当需要查询人员年龄数据时,可直接输入与年龄相关的指令,以调用“querypersonbyage”索引类所对应的数据。本实施例中,通过获取通过mysql数据库的操作方式,根据该操作方式和第二配置文件关于弹性搜索引擎索引的配置编写sql语句作为弹性搜索引擎索引类,将每个sql语句命名并将sql语句编写为映射器文件,获得目标elasticsearc索引。
47.步骤s105:根据目标弹性搜索引擎索引和目标数据的同步类型,将目标数据同步至弹性搜索引擎的数据库。
48.步骤s105的实现可以是将目标数据转换为弹性搜索引擎格式的数据;根据弹性搜索引擎新增索引、弹性搜索引擎更改索引或弹性搜索引擎删除索引,分别将弹性搜索引擎
格式的数据全量或增量同步至弹性搜索引擎的数据库,以实现全量数据或增量数据的增、删、改等操作。
49.从上述图1示例的弹性搜索引擎数据同步方法可知,一方面,通过对数据源及其数据获取规则,以及对目标弹性搜索引擎索引进行配置,分别得到第一配置文件以及第二配置文件,由于可以对目标弹性搜索引擎索引和多种数据源进行按需配置,后续根据这些配置文件即可生成目标弹性搜索引擎索引,因此可以支持复杂多表的数据处理,高效、自动完成数据源与弹性搜索引擎的数据库之间的数据同步;另一方面,在生成目标弹性搜索引擎索引和根据同步请求消息确定目标数据的同步类型后,从而可以将目标数据全量或增量同步至弹性搜索引擎,实现了数据源与弹性搜索引擎的数据库之间灵活的数据同步方式,也能提升数据同步的效率。
50.与前述应用功能实现方法实施例相对应,本技术还提供了一种弹性搜索引擎数据同步装置、电子设备及相应的实施例。
51.参见图2,是本技术实施例示出的数据同步装置的结构示意图。为了便于说明,仅示出了与本技术实施例相关的部分。图2示例的数据同步装置主要包括配置模块201、确定模块202、获取模块203、生成模块204和同步模块205,其中:
52.配置模块201,用于对数据源及其数据获取规则进行配置,得到第一配置文件,以及对目标弹性搜索引擎索引进行配置,得到第二配置文件;
53.确定模块202,用于在收到同步请求消息后,根据该同步请求消息确定目标数据的同步类型;
54.获取模块203,用于根据第一配置文件,从数据源获取目标数据;
55.生成模块204,用于根据第二配置文件或根据第一配置文件和第二配置文件,生成目标弹性搜索引擎索引;
56.同步模块205,用于根据目标弹性搜索引擎索引和目标数据的同步类型,将目标数据同步至弹性搜索引擎的数据库。
57.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
58.从上述图2示例的弹性搜索引擎数据同步装置可知,一方面,通过对数据源及其数据获取规则,以及对目标弹性搜索引擎索引进行配置,分别得到第一配置文件以及第二配置文件,由于可以对目标弹性搜索引擎索引和多种数据源进行按需配置,后续根据这些配置文件即可生成目标弹性搜索引擎索引,因此可以支持复杂多表的数据处理,高效、自动完成数据源与弹性搜索引擎的数据库之间的数据同步;另一方面,在生成目标弹性搜索引擎索引和根据同步请求消息确定目标数据的同步类型后,从而可以将目标数据全量或增量同步至弹性搜索引擎,实现了数据源与弹性搜索引擎的数据库之间灵活的数据同步方式,也能提升数据同步的效率。
59.可选地,图2示例的确定模块202可以包括标识获取单元和同步确定单元,其中:
60.标识获取单元,用于根据同步请求消息,获取弹性搜索引擎同步数据表中目标数据的标识,其中,弹性搜索引擎同步数据表根据数据源的变化业务数据生成;
61.同步确定单元,用于根据目标数据的标识,确定目标数据的同步类型是否为全量同步或增量同步。
62.可选地,上述示例的标识获取单元可以包括第一扫描单元、标记单元和第二扫描单元,其中:
63.第一扫描单元,用于扫描弹性搜索引擎同步数据表,以确定是否存在待处理数据;
64.标记单元,用于若存在所述待处理数据,则根据所述同步请求消息对所述待处理数据赋予标记值;
65.第二扫描单元,用于扫描标记值,以根据所述标记值获取所述目标数据的标识。
66.可选地,图2示例的装置还可以包括读取模块和变化业务数据生成模块,其中:
67.读取模块,用于间隔预设时间两次从数据源读取业务数据,得到两份业务数据;
68.变化业务数据生成模块,用于根据两份业务数据中第一次读取的业务数据,生成变化业务数据。
69.可选地,图2示例的生成模块204可以包括创建单元,用于根据第二配置文件在弹性搜索引擎索引库中创建对应的弹性搜索引擎新增索引、弹性搜索引擎更改索引或弹性搜索引擎删除索引。
70.可选地,图2示例的生成模块204可以包括编写单元和命名单元,其中:
71.编写单元,用于根据第二配置文件,编写第一配置文件中对应于数据源的查询语句作为弹性搜索引擎索引类;
72.将每个第一配置文件中对应于数据源的查询语句命名,并根据弹性搜索引擎索引类将第一配置文件中对应于数据源的查询语句编写为映射器文件,以得到目标弹性搜索引擎索引。
73.可选地,图2示例的同步模块205可以包括转换单元和删改单元,其中:
74.转换单元,用于将目标数据转换为弹性搜索引擎格式的数据;
75.删改单元,用于根据弹性搜索引擎新增索引、弹性搜索引擎更改索引或弹性搜索引擎删除索引,分别将弹性搜索引擎格式的数据全量或增量同步至弹性搜索引擎的数据库。
76.图3是本技术实施例示出的电子设备的结构示意图。
77.参见图3,电子设备300包括存储器310和处理器320。
78.处理器320可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
79.存储器310可以包括各种类型的存储单元,例如系统内存、只读存储器(rom)和永久存储装置。其中,rom可以存储处理器320或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器
在运行时需要的指令和数据。此外,存储器310可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(例如dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器310可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、min sd卡、micro-sd卡等)、磁性软盘等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
80.存储器310上存储有可执行代码,当可执行代码被处理器320处理时,可以使处理器320执行上文述及的方法中的部分或全部。
81.此外,根据本技术的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本技术的上述方法中部分或全部步骤的计算机程序代码指令。
82.或者,本技术还可以实施为一种计算机可读存储介质(或非暂时性机器可读存储介质或机器可读存储介质),其上存储有可执行代码(或计算机程序或计算机指令代码),当可执行代码(或计算机程序或计算机指令代码)被电子设备(或服务器等)的处理器执行时,使处理器执行根据本技术的上述方法的各个步骤的部分或全部。
83.以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。
技术特征:
1.一种数据同步方法,其特征在于,所述方法包括:对数据源及其数据获取规则进行配置,得到第一配置文件,以及对目标弹性搜索引擎索引进行配置,得到第二配置文件;在收到同步请求消息后,根据所述同步请求消息确定目标数据的同步类型;根据所述第一配置文件,从所述数据源获取所述目标数据;根据所述第二配置文件或根据所述第一配置文件和第二配置文件,生成所述目标弹性搜索引擎索引;根据所述目标弹性搜索引擎索引和所述目标数据的同步类型,将所述目标数据同步至弹性搜索引擎的数据库。2.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述同步请求消息确定目标数据的同步类型,包括:根据所述同步请求消息,获取弹性搜索引擎同步数据表中目标数据的标识,所述弹性搜索引擎同步数据表根据所述数据源的变化业务数据生成;根据所述目标数据的标识,确定所述目标数据的同步类型是否为全量同步或增量同步。3.根据权利要求2所述的数据同步方法,其特征在于,所述根据所述同步请求消息,获取弹性搜索引擎同步数据表中目标数据的标识,包括:扫描所述弹性搜索引擎同步数据表,以确定是否存在待处理数据;若存在所述待处理数据,则根据所述同步请求消息对所述待处理数据赋予标记值;扫描标记值,以根据所述标记值获取所述目标数据的标识。4.根据权利要求2所述的数据同步方法,其特征在于,所述方法还包括:间隔预设时间两次从所述数据源读取业务数据,得到两份业务数据;根据所述两份业务数据中第一次读取的业务数据,生成所述变化业务数据。5.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述第二配置文件,生成所述目标弹性搜索引擎索引,包括:根据所述第二配置文件在弹性搜索引擎索引库中创建对应的弹性搜索引擎新增索引、弹性搜索引擎更改索引或弹性搜索引擎删除索引。6.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述第一配置文件和第二配置文件,生成所述目标弹性搜索引擎索引,包括:根据所述第二配置文件,编写所述第一配置文件中对应于所述数据源的查询语句作为弹性搜索引擎索引类;将每个所述第一配置文件中对应于所述数据源的查询语句命名,并根据所述弹性搜索引擎索引类将所述第一配置文件中对应于所述数据源的查询语句编写为映射器文件,以得到所述目标弹性搜索引擎索引。7.根据权利要求5或6所述的数据同步方法,其特征在于,所述根据所述目标弹性搜索引擎索和所述目标数据的同步类型引,将所述目标数据同步至弹性搜索引擎的数据库,包括:将所述目标数据转换为弹性搜索引擎格式的数据;根据所述弹性搜索引擎新增索引、弹性搜索引擎更改索引或弹性搜索引擎删除索引,
分别将所述弹性搜索引擎格式的数据全量或增量同步至所述弹性搜索引擎的数据库。8.一种数据同步装置,其特征在于,所述装置包括:配置模块,用于对数据源及其数据获取规则进行配置,得到第一配置文件,以及对目标弹性搜索引擎索引进行配置,得到第二配置文件;确定模块,用于在收到同步请求消息后,根据所述同步请求消息确定目标数据的同步类型;获取模块,用于根据所述第一配置文件,从所述数据源获取所述目标数据;生成模块,用于根据所述第二配置文件或根据所述第一配置文件和第二配置文件,生成所述目标弹性搜索引擎索引;同步模块,用于根据所述目标弹性搜索引擎索引和所述目标数据的同步类型,将所述目标数据同步至弹性搜索引擎的数据库。9.一种电子设备,其特征在于,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至7中任意一项所述的方法。10.一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至7中任意一项所述的方法。
技术总结
本申请涉及一种数据同步方法、设备和计算机可读存储介质。该方法包括:对数据源及其数据获取规则进行配置,得到第一配置文件,以及对目标弹性搜索引擎索引进行配置,得到第二配置文件;在收到同步请求消息后,根据该同步请求消息确定目标数据的同步类型;根据第一配置文件,从数据源获取目标数据;根据第二配置文件或根据第一配置文件和第二配置文件,生成目标弹性搜索引擎索引;根据目标索引和目标数据的同步类型,将目标数据同步至弹性搜索引擎的数据库。本申请的技术方案可以实现各种场景下数据源与弹性搜索引擎的数据库的高效同步。数据源与弹性搜索引擎的数据库的高效同步。数据源与弹性搜索引擎的数据库的高效同步。
技术研发人员:李强
受保护的技术使用者:北京新氧万维科技咨询有限公司
技术研发日:2022.12.27
技术公布日:2023/10/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
