一种应用于搜索服务的增量同步方法技术

技术编号:22135208 阅读:27 留言:0更新日期:2019-09-18 08:56
本发明专利技术公开了一种应用于搜索服务的增量同步方法。该方法能够将应用系统中的海量不同数据源类型、不同中心库下的多表关联的实时变化的复杂业务数据以高效的速度增量同步至搜索引擎,具有很好的应用前景。

An Incremental Synchronization Method for Search Services

【技术实现步骤摘要】
一种应用于搜索服务的增量同步方法
本专利技术涉及计算机软件
,尤其涉及一种应用于搜索服务的增量同步方法。
技术介绍
随着信息技术的迅速发展,各应用系统的数据量与日俱增。在一些大型应用系统中,常常是大数据分布式存储方式,因此,在对用户所需的信息进行查询时,通常需要对不同中心库下的不同数据库做表关联查询,且检索及筛选条件比较复杂,从而导致数据库查询性能较差、响应超时等问题。因此,如何从海量数据中对用户所需的信息进行快速查询和分词检索,是各应用系统在建设过程中迫切需要解决的问题。搜索引擎技术由于可以进行数据的实时查询和分词检索,无疑成为解决上述问题的优选方案。但是,现有的数据传输服务只能实现对应用系统的数据库中的单表数据的变更进行实时监控并同步至搜索引擎的索引中,不能实现对多表关联的复杂索引结构进行数据的实时变更传输。现有的数据传输服务只能实现对应用系统的数据库中的单表数据的变更进行实时监控并同步至搜索引擎的索引中,并不能实现对多表关联的复杂索引结构进行数据的实时变更传输,具体说明如下:单表数据变更增量传输,是指通过数据传输服务监控数据库中的各个表的数据的变化,当数据库中的某个表的数据发生增删改操作时,数据传输服务能够马上获取到该条变更数据,并将该条变更数据同步写入到搜索引擎的对应索引中。例如,数据库中有一个订单表,与该订单表对应的搜索引擎的索引为订单索引。当订单表中新增一条订单数据时,数据传输服务能够马上监控到订单表中该条新增的订单数据,并将该条新增的订单数据写入到搜索引擎的订单索引中,以使数据库中的数据与搜索引擎中的数据保持一致。但是,为满足业务需求,一个索引的配置结构通常由跨数据库的多表进行关联组成。例如,用户在将数据库中的订单表中的数据实时增量同步至搜索引擎的订单索引后,便可对搜索引擎的订单索引进行分词检索,查询订单信息。但是,用户在进行订单查询时,通常也需要将该订单下的商品、物流等相关信息查询出来。由于在搜索引擎中不同索引之间不能做关联查询,因此,用户在将订单数据、该订单下的商品数据和物流数据同步至搜索引擎前,需要对上述数据做关联处理,即,用户以订单表作为主表,以商品表和物流表作为附表,通过关联键将主表中的数据和附表中的数据进行关联,形成包含订单、商品、物流等完善的JSON格式的数据信息,然后将该数据信息同步至搜索引擎的订单索引中。如此,用户在搜索引擎的订单索引中查询检索订单信息时,也会将订单的商品、物流等信息一并查出。由此可见,现有的数据传输服务只能实现对应用系统的数据库中的单表数据的变更进行实时监控并同步至搜索引擎的索引中,并不能实现对多表关联的复杂索引结构进行数据的实时变更传输。因此,如何将应用系统中的海量不同数据源类型、不同中心库下的多表关联的复杂业务数据以高效的速度增量同步至搜索引擎,成为业界急需解决的技术难题。为了解决上述技术问题,本专利技术提供了一种应用于搜索服务的增量同步方法。
技术实现思路
本专利技术所要解决的技术问题是:现有的数据传输服务只能实现对应用系统的数据库中的单表数据的变更进行实时监控并同步至搜索引擎的索引中,并不能实现对多表关联的复杂索引结构进行数据的实时变更传输。因此,现有的数据传输服务不能将应用系统中的海量不同数据源类型、不同中心库下的多表关联的复杂业务数据以高效的速度增量同步至搜索引擎。为了解决上述技术问题,本专利技术提供了一种应用于搜索服务的增量同步方法,该方法包括:获取数据库中各个表的变更数据及其相关信息,其中,该变更数据的相关信息包括:与每条变更数据对应的数据库的名称和该数据库中的表的名称、与每条变更数据对应的变更类型、以及每条变更数据在变更前后的所有字段值和主键值;分别以第一预设存储方式和第二预设存储方式,将数据库中各个表的变更数据以键值对的方式存储到缓存器中;利用哈希函数对与每条变更数据对应的数据库中的表的名称和每条变更数据在变更后的主键值进行处理,得到多组变更数据,其中,每组变更数据包括至少一条变更数据;针对每组变更数据中的每条变更数据,依次执行以下操作:根据与当前变更数据对应的数据库中的表的名称、以及与该表对应的索引配置信息,得到与该表对应的索引配置信息中包括的多个表中除该表之外的其余各表的数据,其中,该其余各表的数据包括:与该表对应的一级表的名称和主键值、以及与该表对应的索引配置信息中包括的多个表中除该表和与该表对应的一级表之外的其余表的名称和主键值;利用哈希函数,对与该表对应的索引配置信息中包括的搜索引擎索引名称、以及与该表对应的索引配置信息中包括的多个表中除该表和与该表对应的一级表之外的其余表的主键值进行处理,得到多组变更数据,其中,每组变更数据包括至少一条变更数据;针对每组变更数据中的每条变更数据,依次执行以下操作:根据与当前变更数据对应的数据库中的表的名称,查询与该表对应的索引配置信息;根据与该表对应的索引配置信息,从缓存器中查询利用与该表对应的索引配置信息中包括的搜索引擎索引名称配置的多个表的数据,并将该多个表的数据转换为JSON格式数据,调用搜索引擎的接口将该JSON格式数据写入到搜索引擎中,从而实现了从数据库到搜索引擎的增量同步。在本专利技术一优选实施例中,以第一预设存储方式将数据库中各个表的变更数据以键值对的方式存储到缓存器中,包括:根据当前变更数据的相关信息,将当前变更数据以键值对的方式存储到缓存器中,其中,键值对中的键为与当前变更数据对应的数据库中的表的名称和当前变更数据在变更后的主键值,键值对中的值为由当前变更数据在变更后的所有字段值组成的JSON格式数据。在本专利技术一优选实施例中,以第二预设存储方式将数据库中各个表的变更数据以键值对的方式存储到缓存器中,包括:根据与当前变更数据对应的数据库中的表的名称,查询与该表对应的索引配置信息,其中,与该表对应的索引配置信息包括:与该表对应的搜索引擎索引名称、利用该搜索引擎索引名称配置的多个表的数目、所述多个表中的每个表的名称、所述多个表中的每两个表之间的关联关系和关联键、所述多个表中的每个表配置的字段、以及与所述多个表中的每个表对应的数据源配置名称;根据与该表对应的索引配置信息,将当前变更数据以键值对的方式存储到缓存器中,其中,键值对中的键为该表的名称、以及该表与其上游表之间的关联键的字段名和字段值,键值对中的值为与该关联键的字段值对应的主键值的集合。在本专利技术一优选实施例中,利用哈希函数对与每条变更数据对应的数据库中的表的名称和每条变更数据在变更后的主键值进行处理,得到多组变更数据,包括:利用哈希函数对与每条变更数据对应的数据库中的表的名称和每条变更数据在变更后的主键值进行处理,得到与每条变更数据对应的哈希值,其中,该哈希值为字符串形式;根据与每条变更数据对应的哈希值的末位元素,将哈希值的末位元素相同的变更数据分为一组,得到多组变更数据。在本专利技术一优选实施例中,根据与当前变更数据对应的数据库中的表的名称、以及与该表对应的索引配置信息,得到与该表对应的索引配置信息中包括的多个表中除该表之外的其余各表的数据,包括:针对每组变更数据中的每条变更数据,依次执行以下操作:根据与当前变更数据对应的数据库中的表的名称、以及与该表对应的索引配置信息,得到与该表对应的一级表的数据;利用哈希函数对与每条变更数本文档来自技高网
...

【技术保护点】
1.一种应用于搜索服务的增量同步方法,其特征在于,包括:获取数据库中各个表的变更数据及其相关信息,其中,该变更数据的相关信息包括:与每条变更数据对应的数据库的名称和该数据库中的表的名称、与每条变更数据对应的变更类型、以及每条变更数据在变更前后的所有字段值和主键值;分别以第一预设存储方式和第二预设存储方式,将数据库中各个表的变更数据以键值对的方式存储到缓存器中;利用哈希函数对与每条变更数据对应的数据库中的表的名称和每条变更数据在变更后的主键值进行处理,得到多组变更数据,其中,每组变更数据包括至少一条变更数据;针对每组变更数据中的每条变更数据,依次执行以下操作:根据与当前变更数据对应的数据库中的表的名称、以及与该表对应的索引配置信息,得到与该表对应的索引配置信息中包括的多个表中除该表之外的其余各表的数据,其中,该其余各表的数据包括:与该表对应的一级表的名称和主键值、以及与该表对应的索引配置信息中包括的多个表中除该表和与该表对应的一级表之外的其余表的名称和主键值;利用哈希函数,对与该表对应的索引配置信息中包括的搜索引擎索引名称、以及与该表对应的索引配置信息中包括的多个表中除该表和与该表对应的一级表之外的其余表的主键值进行处理,得到多组变更数据,其中,每组变更数据包括至少一条变更数据;针对每组变更数据中的每条变更数据,依次执行以下操作:根据与当前变更数据对应的数据库中的表的名称,查询与该表对应的索引配置信息;根据与该表对应的索引配置信息,从缓存器中查询利用与该表对应的索引配置信息中包括的搜索引擎索引名称配置的多个表的数据,并将该多个表的数据转换为JSON格式数据,调用搜索引擎的接口将该JSON格式数据写入到搜索引擎中,从而实现了从数据库到搜索引擎的增量同步。...

【技术特征摘要】
1.一种应用于搜索服务的增量同步方法,其特征在于,包括:获取数据库中各个表的变更数据及其相关信息,其中,该变更数据的相关信息包括:与每条变更数据对应的数据库的名称和该数据库中的表的名称、与每条变更数据对应的变更类型、以及每条变更数据在变更前后的所有字段值和主键值;分别以第一预设存储方式和第二预设存储方式,将数据库中各个表的变更数据以键值对的方式存储到缓存器中;利用哈希函数对与每条变更数据对应的数据库中的表的名称和每条变更数据在变更后的主键值进行处理,得到多组变更数据,其中,每组变更数据包括至少一条变更数据;针对每组变更数据中的每条变更数据,依次执行以下操作:根据与当前变更数据对应的数据库中的表的名称、以及与该表对应的索引配置信息,得到与该表对应的索引配置信息中包括的多个表中除该表之外的其余各表的数据,其中,该其余各表的数据包括:与该表对应的一级表的名称和主键值、以及与该表对应的索引配置信息中包括的多个表中除该表和与该表对应的一级表之外的其余表的名称和主键值;利用哈希函数,对与该表对应的索引配置信息中包括的搜索引擎索引名称、以及与该表对应的索引配置信息中包括的多个表中除该表和与该表对应的一级表之外的其余表的主键值进行处理,得到多组变更数据,其中,每组变更数据包括至少一条变更数据;针对每组变更数据中的每条变更数据,依次执行以下操作:根据与当前变更数据对应的数据库中的表的名称,查询与该表对应的索引配置信息;根据与该表对应的索引配置信息,从缓存器中查询利用与该表对应的索引配置信息中包括的搜索引擎索引名称配置的多个表的数据,并将该多个表的数据转换为JSON格式数据,调用搜索引擎的接口将该JSON格式数据写入到搜索引擎中,从而实现了从数据库到搜索引擎的增量同步。2.根据权利要求1所述的应用于搜索服务的增量同步方法,其特征在于,以第一预设存储方式将数据库中各个表的变更数据以键值对的方式存储到缓存器中,包括:根据当前变更数据的相关信息,将当前变更数据以键值对的方式存储到缓存器中,其中,键值对中的键为与当前变更数据对应的数据库中的表的名称和当前变更数据在变更后的主键值,键值对中的值为由当前变更数据在变更后的所有字段值组成的JSON格式数据。3.根据权利要求2所述的应用于搜索服务的增量同步方法,其特征在于,以第二预设存储方式将数据库中各个表的变更数据以键值对的方式存储到缓存器中,包括:根据与当前变更数据对应的数据库中的表的名称,查询与该表对应的索引配置信息,其中,与该表对应的索引配置信息包括:与该表对应的搜索引擎索引名称、利用该搜索引擎索引名称配置的多个表的数目、所述多个表中的每个表的名称、所述多个表中的每两个表之间的关联关系和关联键、所述多个表中的每个表配置的字段、以及与所述多个表中的每个表对应的数据源配置名称;根据与该表对应的索引配置信息,将当前变更数据以键值对的方式存储到缓存器中,其中,键值对中的键为该表的名称、以及该表与其上游表之间的关联键的字段名和字段值,键值对中的值为与该关联键的字段值对应的主键值的集合。4.根据权利要求3所述的应用于搜索服务的增量同步方法,其特征在于,利用哈希函数对与每条变更数据对应的数据库中的表的名称和每条变更数据在变更后的主键值进行处理,得到多组变更数据,包括:利用哈希函数对与每条变更数据对应的数据库中的表的名称和每条变更数据在变更后的主键值进行处理,得到与每条变更数据对应的哈希值,其中,该哈希值为字符串形式;根据与每条变更数据对应的哈希值的末位元素,将哈希值的末位元素相同的变更数据分为一组,得到多组变更数据。5.根据权利要求4所述的应用于搜索服务的增量同步方法,其特征在于,根据与当前变更数据对应的数据库中的表的名称、以及与该表对应的索引配置信息,得到与该表对应的索引配置信息中包括的多个表中除该表之外的其余各表的数据,包括:针对每组变更数据中的每条变更数据,依次执行以下操作:根据与当前变更数据对应的数据库中的表的名称、以及与该表对应的索引配置信息,得到与该表对应的一级表的数据;利用哈希函数对与每条变更数据对应的数据库中的表对应的一级表的名称和主键值进行处理,得到多组变更数据,其中,每组变更数据包括至少一条变更数据;针对每组变更数据中的每条变更数据,依次执行以下操作:根据与当前变更数据对应的数据库中的表的名称,得到与该表对应的索引配置信息中包括的多个表中除该表和与该表对应的一级表之外的其余表的数据。6.根据权利要求5所述的应用于搜索服务的增量同步方法,其特征在于,根据与当前变更数据对应的数据库中的表的名称、以及与该表对应的索引配置信息,得到与该表对应的一级表的数据,包括:步骤一、根据与当前变更数据对应的数据库中的表的名称、以及与该表对应的索引配置信息,以与当前变更数据对应的数据库的名称、与当前变更数据对应的数据库中的表的名称、以及...

【专利技术属性】
技术研发人员:陈海龙王建新
申请(专利权)人:石化盈科信息技术有限责任公司
类型:发明
国别省市:北京,11

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

1