一种通用的全文搜索引擎实时数据同步方法及装置与流程

文档序号:23396219发布日期:2020-12-22 14:04阅读:148来源:国知局
一种通用的全文搜索引擎实时数据同步方法及装置与流程

本申请涉及数据处理技术领域,尤其涉及一种通用的全文搜索引擎实时数据同步方法及装置。



背景技术:

随着信息化的不断发展,各类数据、信息呈现井喷式的增长。在这种数据纷繁复杂的情况下,数据的高性能检索系统成为了一个必然的趋势,催生了一些专业的全文搜索引擎。

现有的全文搜索引擎在进行数据收录时,普遍采用的方法包括业务系统主动推送、外部系统定时监控数据库日志抽取变化等。但业务系统主动推送容易对原有的业务系统造成侵入;定时监控数据库日志抽取变化很难做到多种数据库的兼容,且数据的实时性要求难以满足。



技术实现要素:

本申请实施例提供了一种通用的全文搜索引擎实时数据同步方法及装置,用以解决现有的全文搜索引擎数据同步方法容易对现有业务系统造成侵入、无法兼容多种数据库且数据的实时性无法保证的技术问题。

第一方面,本申请实施例提供了一种通用的全文搜索引擎实时数据同步方法,包括:监听预设数据库的通信端口;抓取并解析通信端口对应的通信数据包,以得到待执行指令;基于预设数据库的类型,解析待执行指令,以得到数据变更集;其中,数据变更集用于指示预设数据库中的待变更数据;对数据变更集进行封装处理,并将封装处理后的数据变更集推送至消息队列中,进而同步至全文搜索引擎中。

本申请实施例提供的一种通用的全文搜索引擎实时数据同步方法,通过建通数据库的通信端口,当有网络通信数据包传输时,对该数据包进行抓取,使得该方法对业务系统原有的数据无侵入;通过对数据包解析得到待执行指令,通过对待执行指令解析得到数据变更集,根据数据库的类型进行解析,实现了兼容多种数据库类型;通过消息阵列将数据变更集同步至全文搜索引擎中,借助消息阵列的高性能处理能力及集群模式,实现数据的实时性处理,保证了数据同步的实时性。

在本申请的一种实现方式中,对数据变更集进行封装处理后,方法还包括:将封装处理后的数据变更集转换映射为全文搜索引擎的索引;对索引进行保存。

在本申请的一种实现方式中,封装处理后的数据变更集中包括数据完整性校验码。

本申请实施例提出的数据同步方法中,在对数据进行封装时,设置完整性校验码,以确保数据变更集得到完整的传输与更新,进而保证了预设数据库中的变更数据与全文搜索引擎保持一致。

在本申请的一种实现方式中,解析待执行指令,以得到数据变更集,具体包括:确定预设数据库的类型;根据预设数据库的类型,确定与之对应的指令解析器;通过指令解析器,对待执行指令进行解析,并根据预设数据库中的数据文件,整理得到数据变更集。

第二方面,本申请实施例还提供了一种通用的全文搜索引擎实时数据同步装置,装置包括:数据库监听器,用于对预设数据库的通信端口进行监听,以抓取与通信端口对应的通信数据包;数据库监听器还用于对通信数据包进行解析,以得到待执行指令;指令解析器,用于解析待执行指令,并根据解析结果确定数据变更集;其中,数据变更集用于指示预设数据库中的待变更数据;消息产生器,用于对数据变更集进行封装处理,并将封装处理后的数据变更集发送至消息队列中;消息处理器,用于将封装处理后的数据变更集同步至全文搜索引擎中。

本申请实施例提供的一种通用的全文搜索引擎实时数据同步装置,由于采用的是网络数据抓包解析的方式,使得整个装置对业务系统编码无侵入,不仅支持新项目开发,也可以支持已建系统的升级;指令解析器可以针对不同的数据库做出切换,实现了多种数据库类型的兼容;在装置部署安装时,可以根据现场实际场景,选装特定数据库类型对应的指令解析器,以便正确执行对应的指令解析工作;消息处理器器为了更好的提供消息处理能力,提高消息产生与处理过程中的系统可扩展性,通过消息队列来对消息的产生与处理解耦,借助消息队列的高性能处理能力及集群模式,实现数据的实时处理,保证了数据同步的实时性。

在本申请的一种实现方式中,指令解析器包括若干解析模块;若干解析模块用于根据所述预设数据库的类型进行切换。

在本申请的一种实现方式中,消息产生器包括数据封装模块;数据封装模块用于将数据变更集封装为预设格式的数据变更集;预设格式的数据变更集用于与全文搜索引擎中的若干索引建立对应关系。

本申请实施例中的数据封装模块将数据变更集封装为统一格式的数据变更集,其意义在于能够使得数据解析过程中获知数据在全文搜索引擎中的影响范围,这样不但达到了增量更新全文搜索引擎中数据,而且还提高了时效性,避免了部分通过轮询方法获取增量数据的延时问题。同时,相较于传统的基于时间戳轮询获取变更数据的方案,本申请实施例中提出的数据同步装置对资源的消耗也得到了明显的改善。

在本申请的一种实现方式中,数据封装模块还用于在预设格式的数据变更集中添加预设字段;预设字段用于支持预设格式的数据变更集进行完整性校验。

本申请实施例提供的数据同步装置中的消息产生器包括数据封装模块,数据封装模块在对数据变更集进行封装处理时,还会增加预设字段,以确保数据变更集得到了完整的传输与更新,保证了数据的完整性,进而保证了预设数据库中的数据变化与全文搜索引擎保持一致。

在本申请的一种实现方式中,数据封装模块还用于配置全文搜索引擎中的待建立索引。该数据封装模块可以进行自定义设置,可以配置全文搜索引擎中将要建立的索引,使得全文搜索引擎能够更加适应业务的需要。

在本申请的一种实现方式中,消息处理器还用于将封装处理后的数据变更集转换映射为全文搜索引擎的索引。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的一种通用的全文搜索引擎实时数据同步方法流程示意图;

图2为本申请实施例提供的一种通用的全文搜索引擎实时数据同步装置内部结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

随着企业规模以及信息化的发展,各类企业信息、数据呈现井喷式增长。在这种数据纷繁复杂的场景下,数据的高性能检索系统成为了一个必然趋势,催生了一些专业的全文搜索引擎。

对于全文搜索引擎中数据的收录,目前普遍的做法主要包括业务系统主动推送、外部系统定时监控数据库日志抽取变化等多种方式。然而,通过监控数据库日志的方案很难做到多数据库兼容;定时抽取数据增量的方案无法做到数据实时性要求;且部分业务系统主动推送数据到全文搜索引擎的方案,对原有业务有一定的侵入性,已建立的系统需升级改造。

总而言之,现有的实时数据同步方案一般会存在一些诸如对现有业务系统的侵入、无法兼容多种数据库、很难达到实时数据抽取等弊端,制约了全文搜索引擎的发展。

为解决上述技术问题,本申请实施例提出了一种通用的全文搜索引擎实时数据同步方法及装置,通过监听数据库通信端口,抓取网络通信数据包,并解析其中的数据库待执行指令,生成数据变更集,通过消息队列将数据变更集实时推送到全文搜索引擎中。从而实现了全文搜索引擎同步数据的实时性,且保证了对原有的业务系统无侵入,以及实现了多种类型数据库的兼容性。

下面通过附图对本申请实施例提出的技术方案进行详细的说明。

图1为本申请实施例提供的一种通用的全文搜索引擎实时数据同步方法流程示意图。如图1所示,本申请实施例提供的全文搜索引擎实时数据同步过程,主要包括以下步骤:

步骤101、监听预设数据库的通信端口,进行通信数据包的抓取,并解析为待执行指令。

本申请实施例提出的一种通用的全文搜索引擎实时数据同步方法中,首先是建立预设数据库的监听关系,对预设数据库进行监听。在预设数据库的通信端口有网络通信数据包传输时,抓取该通信数据包,并对其进行解析。

进一步地,通信数据包中包含若干条待执行指令,且当若干条待执行指令被执行时,使得预设数据库中的数据进行相应的变化。

在抓取到通信数据包之后,对该通信数据包进行解析,并提取其中包含的待执行指令。

需要说明的是,抓取通信数据包并对抓取到的数据包进行解析,可以通过现有的方法或者设备实现,本申请实施例在此不做赘述。

步骤102、基于预设数据库的类型,解析待执行指令,得到数据变更集。

在解析通信数据包得到待执行指令之后,对待执行指令进行解析,将该待执行指令被执行后的影响结果,整理成数据变更集。

在本申请的一个实施例中,根据预设数据库的类型,选择与之对应的指令解析器,对待执行指令进行解析。

进一步地,结合预设数据库中的数据文件,根据待执行指令被执行后的影响结果,整理得到数据变更集。

需要说明的是,该数据变更集中的数据用于指示预设数据库中的待变更数据。

步骤103、对数据变更集进行封装处理,并推送至消息队列。

在得到数据变更集之后,对数据变更集进行封装处理,将其封装成统一格式的数据变更集,并将该统一格式的数据变更集推送至消息队列中。

在本申请的一个实施例中,将封装后的数据变更集推送至消息队列中可以通过同步方式或者异步方式实现。

在本申请的另一实施例中,将数据变更集封装为统一格式的数据变更集,便于与全文搜索引擎中的索引建立对应关系。

在本申请的一个实施例中,封装处理后的数据变更集中包括数据完整性校验码。通过该数据完整性校验码,确保数据变更集得到了完整的传输与更新,保证了实时数据同步的完整性。

步骤104、解析数据变更集与索引的映射关系,并将数据变更集发送至全文搜索引擎中。

消息队列可以解析封装后的数据变更集与全文搜索引擎中若干索引的映射关系,并根据解析出的映射关系,将数据变更集发送至全文搜索引擎中。

在本申请的一个实施例中,如果消息队列没有解析出与封装后的数据变更集对应的索引,则可以将统一格式的数据变更集转换映射为全文搜索引擎的索引,保存该索引,并将统一格式的数据变更集发送至全文搜索引擎中。

至此,当预设数据库中的数据有相应的变化时,可以实现将待变更数据实时同步至全文搜索引擎中,而不需要侵入原有的业务系统,且能够保证数据同步的实时性。另外,本申请实施例对预设数据库的类型并没有特殊限制,因此,本申请实施例提供的全文搜索引擎实时数据同步方法中可以实现多种数据库类型的兼容性。

基于同样的发明构思,本申请实施例还提供了一种通用的全文搜索引擎实时数据同步装置。其内部结构示意图如图2所示。

图2为本申请实施例提供的一种通用的全文搜索引擎实时数据同步装置内部结构示意图。如图2所示,本申请实施例提供的装置包括:数据库监听器201、指令解析器202、消息产生器203及消息处理器204。

如图2所示,数据库监听器201用于监听业务系统对应数据库的通信端口。当数据库的通信端口有通信数据包进行传输时,数据库监听器201抓取传输的通信数据包。

进一步地,数据库监听器201根据数据库的类型,解析抓取到的通信数据包,并提取其中的待执行指令。

其中,待执行指令被执行时,使得数据库监听器201监听的数据库中的数据发生变更。

如图2所示,指令解析器202用于解析待执行指令,得到数据变更集。

具体地,指令解析器202中包括若干解析模块,且各个解析模块对应一种数据库类型。

进一步地,根据数据库监听器201正在监听的数据库的类型,指令解析器202切换不同的解析模块,以对应正在监听的数据库的类型。解析模块对待执行指令进行解析。

进一步地,根据数据库中的数据文件,通过解析后的待执行指令,整理出数据变更集。其中,数据变更集用于指示数据库中的待变更数据。

如图2所示,消息产生器203用于接收指令解析器202得到的数据变更集,并对其进行封装处理,以得到预设格式数据变更集。

在本申请的一个实施例中,消息产生器203中包括数据封装模块,用于将数据变更集封装为预设格式的数据变更集。

进一步地,将预设格式的数据变更集以同步方式或者异步方式推送至消息队列中。

在本申请的一个实施例中,预设格式的数据变更集用于与全文搜索引擎中的若干索引建立对应关系,以便后续将该预设格式的数据变更集同步至全文搜索引擎中。

在本申请的另一实施例中,消息队列具有高性能处理能力及集群模式,以便实现数据同步的实时性。

更进一步地,数据封装模块在对数据变更集进行封装处理时,还会在数据变更集中添加预设字段。该预设字段用于支持封装处理后的数据变更集进行完整性校验,以保证数据同步的完整性。

在本申请的另一实施例中,该数据封装模块还可以提供用户的自定义设置,可以配置全文搜索引擎中将要建立的索引,以使得全文搜索引擎能够更加适应业务的发展需求。

如图2所示,消息处理器204用于将消息队列中封装处理后的数据变更集同步至全文搜索引擎中。

在本申请的一个实施例中,消息处理器204还用于将封装处理后的数据变更集转换映射为全文搜索引擎对应的索引。

本申请实施例中的消息产生器203将数据变更集进行封装处理为预设格式的数据变更集,以便后续消息处理器204在进行数据同步时能够与全文搜索引擎中的若干索引建立对应关系。而封装处理后的数据变更集中还会有部分数据无法与全文搜索引擎中的若干索引建立对应关系,此时,消息处理器204可以根据数据变更集的内容将其转换映射成全文搜索引擎的索引,并将该数据变更集与转换映射后的索引建立对应关系,然后将数据变更集同步至全文搜索引擎中。

在本申请的一个实施例中,该全文搜索引擎实时数据同步装置可以应用于erp电子商务平台中采购方与供应商的跨平台信息共享,大数据供应商信息、商机信息检索与匹配等场景。其中,企业信息和商机信息的来源途径是多样化的,一般可以由多个租户内的独立业务系统将数据同步到统一的全文搜索引擎集群中,从而形成公有云的商机中心,大量数据汇集在一起便于平台针对性的进行信息检索、智能推荐、撮合交易。

进一步地,每个租户对应的业务系统中,包括在建系统、已建系统均可以使用该装置进行数据实时同步,数据收录时对原业务系统无任何侵入性,根本不需要对原系统程序进行改造,保障了原有系统业务流程的稳定性。

如果是新建系统,则在开发过程中,部署并运行该装置,通过配置指定的端口号来启动监听。当发现有通信数据包通过网络传输,便会主动触发该装置进行解析并生成数据变更集推送到全文搜索引擎中,以实现数据的同步过程。

如果是原有业务系统的优化升级,原业务系统的业务流程往数据库里的写入过程并不需要修改,部署该装置后,通过配置指定的端口号来启动监听。当发现有指令数据包通过网络传输,便会主动触发该装置进行解析并生成数据变更集并推送到全文搜索引擎中,以实现数据的实时同步。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,相关之处参见方法实施例的部分说明即可。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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