CN113961643A - 搜索引擎更新方法及其装置、设备、介质、产品 - Google Patents

搜索引擎更新方法及其装置、设备、介质、产品 Download PDF

Info

Publication number
CN113961643A
CN113961643A CN202111221615.3A CN202111221615A CN113961643A CN 113961643 A CN113961643 A CN 113961643A CN 202111221615 A CN202111221615 A CN 202111221615A CN 113961643 A CN113961643 A CN 113961643A
Authority
CN
China
Prior art keywords
data
key
incremental data
incremental
expression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111221615.3A
Other languages
English (en)
Inventor
方俊炜
庞晓磊
蔡云雷
常成龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huaduo Network Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN202111221615.3A priority Critical patent/CN113961643A/zh
Publication of CN113961643A publication Critical patent/CN113961643A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Abstract

本申请公开一种搜索引擎更新方法及其装置、设备、介质、产品,所述方法包括:根据关系型数据库的日志文件确定被主表引用的从表中被更新的数据记录,从从表中获取数据记录对应的增量数据;将增量数据转存至分布式数据库对应的存储空间,从而将所述增量数据转换为键值对存储形式,触发数据更新事件,同一增量数据的各个键值对的键名均包含指向从表数据记录的指针标识;响应数据更新事件,从分布式数据库中提取出指针标识相对应的键值对,转换为预设协议格式的增量数据表达式;将增量数据表达式输出给搜索引擎的数据处理接口。本申请将关系型数据库的更新数据先打平后转存至分布式数据库中,解决了搜索系统中多表数据更新所存在的数据竞争问题。

Description

搜索引擎更新方法及其装置、设备、介质、产品
技术领域
本申请涉及数据库转存技术领域,尤其涉及一种搜索引擎更新方法,此外还涉及该方法相应的装置、设备、非易失性存储介质以及计算机程序产品。
背景技术
在大型电商业务中,往往面临很多复杂的搜索场景,需要借助专门的搜索引擎,例如Elasticsearch、solr等。而业务数据又存在关系型数据库中。因此需要实现业务数据从关系型数据库到搜索引擎的实时同步,由于搜索业务的复杂性,搜索场景往往需要将一张主表和几张子表join起来,形成一张宽表对搜索引擎提供搜索在线服务,主表和子表的关联关系分别由一对一,一对多和多对一,为了保证数据的实时性,可以通过解析关系型数据库的日志文件,得到主表和子表的新增、删除或者更新变化的数据,然后对该些增量数据进行join、清洗、聚合和计算,以将该些增量数据并向下流入搜索引擎,淡由于join关系的复杂性以及很多计算过程需要用到全量数据,现有的技术中一般选择采用HBase 来存储全量历史数据并辅助join操作,但该现有技术存在如下问题:
第一,当主表和子表为一对多关系时,主表中的一条记录对应着多条子表记录,做法是将子表的记录合并后存入主表中,因此处理子表增量数据的时候,首先需要读取历史数据,再更新插入,这容易存在不同时段更新的增量数据之间的数据竞争问题,比如A数据先到,读取历史记录准备写入的时候,系统开始处理B数据,然后B数据先合并完历史数据写入后,再将A数据写入,这时候就会出些B数据被A数据覆盖的情况,使新数据无法被更新至搜索引擎中。
第二,由于HBase本身并没有类似关系型数据库的binlog,故下游的搜索引擎无法感知到HBase中实时的消息变化,需要搜索引擎自动地检测分布式数据库中存储的数据是否发生更新,影响了搜索系统的数据同步更新效率。
针对上述的问题,本申请人出于解决该问题的考虑做出相应的探索。
发明内容
本申请的目的在于满足用户需求而提供一种搜索引擎更新方法,此外还涉及该方法相应的装置、设备、非易失性存储介质以及计算机程序产品。
为实现本申请的目的,采用如下技术方案:
适应本申请的目的而提出的一种搜索引擎更新方法,包括如下步骤:
根据关系型数据库的日志文件确定被主表引用的从表中被更新的数据记录,从所述从表中获取被更新的数据记录相对应的增量数据;
将所述增量数据转存至分布式数据库对应的存储空间,从而将所述增量数据转换为键值对存储形式,触发数据更新事件,同一增量数据的各个键值对的键名均包含指向所述从表数据记录的指针标识;
响应所述数据更新事件,从所述分布式数据库中提取出所述指针标识相对应的键值对,转换为预设协议格式的增量数据表达式;
将所述增量数据表达式输出给搜索引擎的数据处理接口,以供该数据处理接口解析读取该增量数据表达式。
进一步的实施例中,将所述增量数据转存至分布式数据库对应的存储空间,从而将所述增量数据转换为键值对存储形式,触发数据更新事件,包括如下步骤:
将所述增量数据中的各个字段分别转换为键值对,其中,每个键值对的键名包含对应的字段名及所述指针标识,所述指针标识包含所述从表的表名及所述数据记录的唯一性索引值,每个键值对的值域用于存储相应字段的数据;
将所述增量数据相对应的所有键值对存储至分布式数据库为该关系型数据库预设的存储空间;
在完成存储后触发数据更新事件,在该事件的消息体中包含所述唯一性索引值。
进一步的实施例中,响应所述数据更新事件,从所述分布式数据库中提取出所述指针标识相对应的键值对,转换为预设协议格式的增量数据表达式,包括如下步骤:
响应所述数据更新事件,提取该事件的消息体中的唯一性索引值;
从分布式数据库的所述存储空间中读取出该唯一性索引值相对应的所有键值对;
将所读取出的所有键值对转换为预设协议格式的增量数据表达式,所述增量数据表达式中,包含所述唯一性索引值,以及各个键值对相对应的字段名及值域数据。
进一步的实施例中,将所述增量数据表达式输出给搜索引擎的数据处理接口,以供该数据处理接口解析读取该增量数据表达式,包括如下步骤:
所述搜索引擎通过数据处理接口获取搜索增量数据表达式,解析确定该数据表达式中包含所述唯一性索引值;
所述搜索引擎根据所述唯一性索引值,且根据该数据表达式中各个键值对相对应的字段名,将其值域数据进行处理后对应插入至自身的搜索数据库中。
较佳的实施例中,本方法包括如下前置步骤:
检测关系型数据库的转换开关,当其为开启状态时,将对所述关系型数据库的增量数据进行转存处理。
较佳的实施例中,所述分布式数据库基于HBase数据库所构建。
适应本申请的目的而提出的一种搜索引擎更新装置,其包括:
增量数据获取模块,用于根据关系型数据库的日志文件确定被主表引用的从表中被更新的数据记录,从所述从表中获取被更新的数据记录相对应的增量数据;
增量数据转存模块,用于将所述增量数据转存至分布式数据库对应的存储空间,从而将所述增量数据转换为键值对存储形式,触发数据更新事件,同一增量数据的各个键值对的键名均包含指向所述从表数据记录的指针标识;
更新事件响应模块,用于响应所述数据更新事件,从所述分布式数据库中提取出所述指针标识相对应的键值对,转换为预设协议格式的增量数据表达式;
表达式输出模块,用于将所述增量数据表达式输出给搜索引擎的数据处理接口,以供该数据处理接口解析读取该增量数据表达式。
进一步的实施例中,所述的增量数据转存模块包括:
字段转换子模块,用于将所述增量数据中的各个字段分别转换为键值对,其中,每个键值对的键名包含对应的字段名及所述指针标识,所述指针标识包含所述从表的表名及所述数据记录的唯一性索引值,每个键值对的值域用于存储相应字段的数据;
键值对存储子模块,用于将所述增量数据相对应的所有键值对存储至分布式数据库为该关系型数据库预设的存储空间;
更新事件触发子模块,用于在完成存储后触发数据更新事件,在该事件的消息体中包含所述唯一性索引值。
进一步的实施例中,所述的更新事件响应模块包括:
索引值提取子模块,用于响应所述数据更新事件,提取该事件的消息体中的唯一性索引值;
键值对读取子模块,用于从分布式数据库的所述存储空间中读取出该唯一性索引值相对应的所有键值对;
键值对转换子模块.用于将所读取出的所有键值对转换为预设协议格式的增量数据表达式,所述增量数据表达式中,包含所述唯一性索引值,以及各个键值对相对应的字段名及值域数据。
进一步的实施例中,所述的表达式输出模块包括:
索引值确定子模块,用于所述搜索引擎通过数据处理接口获取搜索增量数据表达式,解析确定该数据表达式中包含所述唯一性索引值;
键值对插入子模块,用于所述搜索引擎根据所述唯一性索引值,且根据该数据表达式中各个键值对相对应的字段名,将其值域数据进行处理后对应插入至自身的搜索数据库中。
为解决上述技术问题本申请实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述搜索引擎更新方法的步骤。
为解决上述技术问题本申请实施例还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述搜索引擎更新方法的步骤。
为解决上述技术问题本申请实施例还提供一种计算机程序产品,包括计算机程序及计算机指令,该计算机程序及计算机指令被处理器执行时,使得所述处理器执行上述所述搜索引擎更新方法的步骤。
相对于现有技术,本申请的优势如下:
本申请通过将关系型数据库中从表的增量数据进行打平处理后转存至分布式数据库中进行搜索引擎数据同步更新,解决了传统的将关系型数据库中的全局历史数据存储至分布式数据库中所存在的数据竞争问题,具体的,本申请将从表的增量数据转换为键值对,并参考关系数据库中主表与从表之间的主从键的关系,将键值对存储至分布式数据库中引用该从表的主键所对应的存储空间中进行数据同步,以利用分布式数据库的列式存储的特效,实现数据打平,避免了数据更新时存在的数据竞争问题。
另外,本申请在完成将关系型数据库中的增量数据转存至分布式数据库后,将触发数据更新事件,使分布式数据库具有通知下游的搜索引擎进行数据同步更新的功能,节省了搜索引擎对分布式数据库进行检测所花费的算力,且有效地提升搜索系统整体的数据同步更新的效率。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为实施本申请的技术方案相关的一种典型的网络部署架构示意图;
图2为本申请的搜索引擎更新方法的典型实施例的流程示意图;
图3为本申请关于增量数据转存至分布式数据库的具体实施方式所形成的流程示意图;
图4为本申请关于将键值对转换为预设协议格式的增量数据表达式的具体实施方式所形成的流程示意图;
图5为本申请关于搜索引擎的数据处理接口解析读取该增量数据表达式的具体实施方式所形成的流程示意图;
图6为本申请的搜索引擎更新装置的典型实施例的原理框图;
图7为本申请一个实施例的计算机设备的基本结构框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位系统)接收器;传统膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的传统膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
请参阅图1,本申请相关技术方案实施时所需的硬件基础可按图中所示的架构进行部署。本申请所称服务器80部署在云端,作为一个业务服务器,其可以负责进一步连接起相关数据服务器以及其他提供相关支持的服务器等,以此构成逻辑上相关联的服务机群,来为相关的终端设备例如图中所示的智能手机81 和个人计算机82或者第三方服务器(未图示)提供服务。所述的智能手机和个人计算机均可通过公知的网络接入方式接入互联网,与云端的服务器80建立数据通信链路,以便运行所述服务器所提供的服务相关的终端应用程序。
对于服务器而言,所述的应用程序通常会被构建为服务进程,开放相应的程序接口,供各种终端设备上运行的应用程序进行远程调用,本申请中适于运行于服务器的相关技术方案,便可以此种方式实现于服务器中。
所述的应用程序,是指运行于服务器或终端设备上的应用程序,这一应用程序采用编程的方式实现了本申请的相关技术方案,其程序代码可被以计算机可执行指令的形式保存于计算机能识别的非易失性存储介质中,并被中央处理器调入内存中运行,通过该应用程序在计算机的运行而构造出本申请的相关装置。
对于服务器而言,所述的应用程序通常会被构建为服务进程,开放相应的程序接口,供各种终端设备上运行的应用程序进行远程调用,本申请中适于运行于服务器的相关技术方案,便可以此种方式实现于服务器中。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
请参阅图2,本申请的一种搜索引擎更新方法,在其典型实施例中,其包括如下步骤:
步骤S11,根据关系型数据库的日志文件确定被主表引用的从表中被更新的数据记录,从所述从表中获取被更新的数据记录相对应的增量数据:
服务器根据所述关系型数据库的日志文件中被更新的数据记录,查询该关系型数据库中数据发生更新的被主表所引用的从表,以从该从表中获取所述数据记录相对应的所述增量数据。
所述的关系型数据库是指采用关系型模型来组织数据的数据库,其一般存储这多个主表及被该些主表所引用的从表,即主表与从表存在引用与被引用的关系,通过关系型模块进行主表与从表之间的引用关系的组织,所述的关系型数据库可采用Oracle、DB2、MySQL、Microsoft SQL Server、Microsoft Access 等其他关系型数据库进行构建。
当所述关系型数据库中从表所存储的数据发生更新时,将生成表征该从表的发生更新的数据的所述数据记录,并将该数据记录存储至所述日志文件中,以便服务器通过所述日志文件,获取该从表的所述增量数据。
服务器根据所述日志文件中最新的数据记录,从所述关系型数据库中查询该数据记录所指向的从表,以从该从表中确定该数据记录所指向的更新数据,生成包含更新数据及其在从表中的列名的字段的所述增量数据,需要注意的是,所属增量数据在本申请是为细化至从表中某一行数据的数据,如下来表格所示商品从表A发生数据更新,其将商品ID为124的进货价格从42修改为52,售价从70修改为80时,其所述增量数据为商品从表A中商品ID 124的进货价格 52、商品从表A中商品ID 124的售价80:
商品ID 进货价格 售价
124 52 80
127 32 50
步骤S12,将所述增量数据转存至分布式数据库对应的存储空间,从而将所述增量数据转换为键值对存储形式,触发数据更新事件,同一增量数据的各个键值对的键名均包含指向所述从表数据记录的指针标识:
服务器获取所述从表中的增量数据后,将该增量数据转存至所述分布式数据库中对应的存储控件中,从而将所述增量数据转换为以键值对的数据格式进行存储。
所述的分布式数据库是指基于分布式文件系统构建的数据库,且一般是指基于HBase构建的数据库,其具有分布式及面向列的特性,以应用于需要实时读写、随机访问超大规模数据集的系统中,如本申请所述的搜索引擎,通过将所述增量数据转存至所述分布式数据库中,以便后续高效地将该增量数据插入至搜索引擎中,便于搜索引擎进行相应业务的在线服务。
具体的,服务器通过将所述增量数据转存至所述分布式数据库时,将对所述增量数据进行存储形式的转换,通过将所述增量数据包含的各个字段分别转换为键值对,每个所述键值对的键名包含对应的字段的字段名及所述指针标识,所述指针标识包含所述从表的表名及所述数据记录的唯一性索引值,每个键值对的值域用于存储相应字段的数据,所述的唯一性索引值是指所述增量数据在主表与从表的主键-从键的索引值。
进一步的,服务器完成将所述增量数据转换为多个键值对后,将所有所述键值对存储至所述分布式数据库对应的存储空间,所述的存储空间一般为根据所述关系型数据库在所述分布式数据库中主表预设的存储空间,即关系型数据库在分布式数据库中的存储空间将存储其引用的所有从表的数据以及其自身在关系型数据库中所存储的数据,服务器通过所述增量数据所对应的所述唯一性索引值,确定引用该增量数据所属的从表的主表,以将该增量数据的所有键值对在所述分布式数据库中的存储空间,以将该些键值对对应存储至该存储空间中,使该些键值对在所述分布式数据库中具有从表与主表对应的关系。
具体的,当所述分布式数据库为基于HBase数据库所构建的数据库时,服务器通过所述增量数据相对应的所述唯一索引值确定其在HBase数据库中的行键(rowkey),以确定出所述增量数据的键值对在HBase数据库中的行存储空间(即所述存储空间),需要注意的是,所述唯一索引值不为HBase数据库中的行键,服务器通过所述唯一索引值,确定该唯一索引值所关联的主表在HBase 数据库中专属的行键(rowkey),该主表为引用所述唯一索引值所属的从表的的主表,在将所述增量数据包含的各字段对应转换为所述键值对时,该些键值对的键值是指其在HBase数据库中所述行存储空间的列名,而该些键值对的值域对应的数据存储至该列名的列存储空间中的数据,所述列名与其列存储空间中存储的数据形成将所述增量数据中的各字段对应转换为所述键值对。
可以理解,通过将增量数据转换为所述键值对,以将增量数据中的字段细化至从表中被主表所引用的某一数据下的发生更新的数据进行转存,可排除传统的将从表的数据更新的所有数据进行合并后转存入关系数据库中易发生的数据竞争所造成旧数据覆盖新数据的问题。
当服务器将所述增量数据的键值对存储至所述分布式数据库中对应的所述存储空间后,将触发生成包含所述唯一性索引值的所述数据更新事件,以便通过响应该数据更新事件,进行后续的从所述分布式数据库中提取出所述指针标识相对应的键值对,转换为预设协议格式的增量数据表达式的事件。
步骤S13,响应所述数据更新事件,从所述分布式数据库中提取出所述指针标识相对应的键值对,转换为预设协议格式的增量数据表达式:
服务器响应其将所述键值对存储至所述分布式数据库中相应的存储空间后所触发的数据更新事件,根据所述数据更新事件中包含所述唯一性索引值,确定所述分布式数据库中进行增量数据转存的存储空间,提取出该存储空间中所有键值对,即提取出引用所述增量数据所属从表的主表在分布式数据库中的所有键值对,该些键值对中包含上述增量数据所转换的所有键值对,即所述指针标识相对应的键值对,以将该些键值对转换为预设协议格式的所述增量数据表达式。
所述的预设协议格式为预设设置的,以用于将所述键值对转换为始于搜索引擎进行调用的所述增量数据表达式,具体的,服务器从所述分布式数据库中提取出所述指针标识相对应的所有键值对,将根据所述预设协议格式,生成包含所述唯一性索引值以及该些键值对相对应的字段名及值域数据的所述增量数据表达式,例如,当所述分布式数据库为HBase数据库时,服务器从所述HBase 数据库中确定该行键对应的行存储空间,将该行存储空间中的所有键值对,并通过该些键值对的列名确定出其在增量数据中的字段名,该字段名即为键值对的值域数据在其所属的从表中的列名,进而生成的所述增量数据表达式中将包含所述唯一性索引值以及各所述键值对各自的所述字段名及值域数据;进一步的举例,当服务器从所述为HBase数据库中该行存储空间中提取出唯一索引值为A的键值对分别为“table1_field1_A=value1”、“table1_field2_A= value2”时,根据该些键值对通过所述预设协议格式所生成的增量数据表达式为[{A,feild1:value1,feild2:value2}]。
步骤S14,将所述增量数据表达式输出给搜索引擎的数据处理接口,以供该数据处理接口解析读取该增量数据表达式:
服务器响应所述数据更新事件而将分布式数据库中提取出的键值对转换为所述增量表达式后,将所述增量数据表达式输出给所述搜索引擎的数据处理接口,以驱动所述数据处理接口解析读取该增量数据表达式,以保证搜索引擎中数据的同步更新。
本申请所述关系型数据库及分布式数据库所形成的业务数据与所述搜索引擎的在线服务的业务逻辑为解耦关系,服务器通过将所述增量数据表达式输出给该搜索引擎的所述数据处理接口,以便驱动所述数据处理接口解析读取该增量数据表达式,生成可被所述搜索引擎提供相应在线服务所需的搜索数据,存储至相应的搜索数据库中,以完成所述搜索引擎中数据的同步更新,例如,当所述增量表达式包含某商品的价格及名称时,服务器通过将该增量数据表达式输出给所述数据处理接口,以驱动该数据处理接口通过表达式中的唯一性索引值确定搜索引擎的搜索数据库中的相应的商品,并将该搜索数据库中的价格及名称更新为所述增量表达式包含该商品的价格及名称,进而还可同步更新所述搜索引擎中关于该商品所属的商品类型的价格统计数据的在线服务等。
可以理解,本申请通过将关系型数据库中从表的增量数据进行拆分转存至分布式数据库中,并通过数据更新事件的触发响应进行数据表达式的生成及传输,通知下游的搜索引擎进行数据同步更新,排除了传统的将主表及其关联的从表的所有数据进行全存储至分布式数据库所造成数据竞争问题,且通过数据更新事件的触发响应,使与搜索引擎在线服务系统解耦的业务数据存储系统具有主动通知搜索引擎进行数据同步更新的功能,不必由搜索引擎在线服务系统定时或实时监控业务数据存储系统的增量数据事件,有效地提升了整体系统的数据同步更新效率。
以上的典型实施例及其变化实施例充分揭示了本申请的搜索引擎更新方法的实施方案,但是,仍可通过对一些技术手段的变换和扩增而演绎出该方法的多种变化实施例,如下概要说明其他实施例:
一种实施例中,请参考图3,服务器将所述增量数据转存至分布式数据库对应的存储空间,从而将所述增量数据转换为键值对存储形式,触发数据更新事件的具体实施方式,其包括如下具体步骤:
步骤S121,将所述增量数据中的各个字段分别转换为键值对,其中,每个键值对的键名包含对应的字段名及所述指针标识,所述指针标识包含所述从表的表名及所述数据记录的唯一性索引值,每个键值对的值域用于存储相应字段的数据:
服务器获取所述增量数据后,将该增量数据中包含的各个字段分别转换为各自对应的键值对,所述键值对的键名包含字段的字段名及所述指针标识,键值对的键域即为字段所对应的数据,例如,当所述增量数据的字段为表征从表A 中裤子A的价格更新为50时,该字段的键值对为键名从表A_价格_裤子A,健域为50,其中,该键值对的键名中包含的所述指针标识即为从表A_裤子A。
步骤S122,将所述增量数据相对应的所有键值对存储至分布式数据库为该关系型数据库预设的存储空间:
服务器将所述增量数据包含的所有字段分别转换为所述键值对后,将该些键值对存储至所述分布式数据库中为所述关系型数据库预设的存储空间中,所述的预设的存储空间一般预先为所述关系库数据中主表所预设的存储空间,服务器将根据引用该增量数据的主表与所述增量数据所属的从表之间的主键-外键关联规则,查询出所属增量数据的所有键值对在所属分布式数据库中的存储空间,例如,当所述分布式数据库为基于HBase所构建的数据库时,服务器根据引用所述增量数据所属从表的主表,即所述主表与从表之间的主键-外键关联规则,确定出该增量数据在所述分布式数据库中的行键(rowkey),以将所述增量数据相对应的所有键值对存储至所述分布式数据库该行键(rowkey)所对应的行存储空间中。
进一步的举例,当键值对为键名为table1_field1_A,值域为value1时,引用该table1的主表在所述分布式数据库中的行存储空间的行键为102时,所述分布式数据库的示意表如下:
Figure BDA0003312849760000131
表中的行键102的行存储空间中的键值对filedA=A及filedB=B为行键102 所对应的主表在所述关系型数据库中该主表自身存储的数据,即若所述关系库数据库中的主表发生数据更新时,即需将其更新的数据直接插入至其在分布式数据库中的存储即可。
服务器确定出所述增量数据在所述分布型数据库中的所述存储空间后,将该增量数据的所有键值对应插入至该存储空间中进行存储。
步骤S123,在完成存储后触发数据更新事件,在该事件的消息体中包含所述唯一性索引值:
服务器将所述增量数据的所有键值对对应存储至所述分布式数据库中的存储空间后,将触发所述数据更新事件,该事件的消息体中将包含所述唯一索引值以及存储空间的位置标识(即HBase中的行键),以响应该数据更新事件,将提取所述存储空间中的所有键值对进行数据表达式的转换。
本实施例中,通过将从表的增量数据的所有字段对应转换为键值对转存至分布式数据库中,以细化从表的增量数据,实现将从表的增量数据进行数据打平,优化了关系型数据库将数据转换至分布式数据库的处理逻辑,排除了传统的将关系型数据库中从表的增量数据合并存储至主表的分布式数据库存储所造成的数据竞争问题。
一种实施例中,请参考图4,服务器响应所述数据更新事件,从所述分布式数据库中提取出所述指针标识相对应的键值对,转换为预设协议格式的增量数据表达式的具体实施方式,其包括如下具体步骤:
步骤S131,响应所述数据更新事件,提取该事件的消息体中的唯一性索引值:
服务器响应所述数据更新事件,提取该事件的消息体中的唯一性索引值以及该消息体中包含的所述存储空间的位置标识,以确定出所述分布式数据库中该位置标识所指向的位置标识中提取出所述唯一性索引值所对应的键值对进行增量事件表达式的构建。
步骤S132,从分布式数据库的所述存储空间中读取出该唯一性索引值相对应的所有键值对:
服务器确定出所述分布式数据库的所述存储空间后,将读取出该存储空间中所有键值对,该些键值对中包含所述存储空间所对应的主表的自身的键值对以及所述唯一性索引值所对应的增量数据的所有键值对。
步骤S133,将所读取出的所有键值对转换为预设协议格式的增量数据表达式,所述增量数据表达式中,包含所述唯一性索引值,以及各个键值对相对应的字段名及值域数据:
服务器将从所述存储空间中读取出的所述唯一性索引值所对应的增量数据的所有键值对根据所述预设协议格式,将该些键值对转换为相应的增量数据表达式,其中,为所述存储空间所对应的主表自身的键值对进行还原即可,例如,当所述存储空间的存储结构如下表所示:
Figure BDA0003312849760000141
提取该存储空间的键值对为:
[fieldA:A,fieldB:B,table1_field1_A:value1,table1_field2_A:Value2]
其中,键值对“table1_field1_A:value1”及“table1_field2_A:Value”双方的所述唯一性索引值为A,字段名分别为field1及field2,值域数据分别为vlaue1及vlue2,则根据所述预设协议格式所转换的增量数据表达式为:
[{102:A,filed1:value1,table1_field2_A:value2}]
本实施例中,通过响应所述数据更新事件,使分布式数据库具有自动感知数据发生更新的功能,以预先将所述增量数据的键值对转换为增量数据表达式,以提升搜索引擎的同步更新效率。
一种实施例中,请参考图5,关于服务器将所述增量数据表达式输出给搜索引擎的数据处理接口,关于该搜索引擎读取该增量数据表达式的具体实施方式,其包括如下具体步骤:
步骤S141,所述搜索引擎通过数据处理接口获取搜索增量数据表达式,解析确定该数据表达式中包含所述唯一性索引值:
服务器将所述增量数据表达式输出给所述搜索引擎的数据处理接口后,该搜索引擎将通过数据处理接口解析该增量数据表达式,以确定该表达式中包含的所述唯一性索引值。
步骤S142,所述搜索引擎根据所述唯一性索引值,且根据该数据表达式中各个键值对相对应的字段名,将其值域数据进行处理后对应插入至自身的搜索数据库中:
所述搜索引擎根据所述唯一性索引值确定出与所述增量数据表达式关联的搜索数据,并根据该数据表达式中所包含的各个键值对的相对应的字段名及其值域数据进行数据处理后,将处理结果插入值自身的搜索数据库中,例如,当所述增量数据表达式中的所述唯一性索引值为商品A时,所述搜索引擎确定出商品A的搜索数据,例如,商品A所属的商品类型的价格,商品A所属的商品类型的尺码等搜索数据,并根据该增量数据表达式中的字段名为商品价格的值域数据(即商品A在关系数据库的从表中的价格发生变化),将重新统计商品A 所属的商品类型的价格以完成处理,并将处理结果(即重新统计商品A所属的商品类型的价格)插入至自身的搜索数据库中。
本实施例中,通过所述数据处理接口进行增量数据表达式的传输,使所述关系型数据库及分布式数据库所形成的业务数据与所述搜索引擎的在线服务的业务逻辑为解耦关系。
一种实施例中,关于服务器进行增量数据的转存处理之前,还包括如下前置步骤:
步骤S10,检测关系型数据库的转换开关,当其为开启状态时,将对所述关系型数据库的增量数据进行转存处理:
服务器在进行将对所述关系型数据库的增量数据转存时,将检测所述关系型数据库的所述转换开关的状态,当其为开启状态时,将该关系型数据库中日志文件的所述数据记录,从所述从表中获取增量数据转存至所述分布式数据库中,当其为关闭状态时,则不执行上述的转存处理。
本实施例中,通过为关系型数据库设置上述转换开关,以控制服务器的所述关系型数据库的增量数据的转换处理,以便在对所述关系型数据库进行数据调试时,不触发所述增量数据的转换处理,影响了分布式数据库及搜索引擎中的数据,造成系统整体的数据混乱。
进一步,可以通过将上述各实施例所揭示的方法中的各个步骤进行功能化,构造出本申请的一种搜索引擎更新装置,按照这一思路,请参阅图6,其中的一个典型实施例中,该装置包括:增量数据获取模块11,用于根据关系型数据库的日志文件确定被主表引用的从表中被更新的数据记录,从所述从表中获取被更新的数据记录相对应的增量数据;增量数据转存模块12,用于将所述增量数据转存至分布式数据库对应的存储空间,从而将所述增量数据转换为键值对存储形式,触发数据更新事件,同一增量数据的各个键值对的键名均包含指向所述从表数据记录的指针标识;更新事件响应模块13,用于响应所述数据更新事件,从所述分布式数据库中提取出所述指针标识相对应的键值对,转换为预设协议格式的增量数据表达式;表达式输出模块14,用于将所述增量数据表达式输出给搜索引擎的数据处理接口,以供该数据处理接口解析读取该增量数据表达式。
一种实施例中,所述的增量数据转存模块12包括:字段转换子模块,用于将所述增量数据中的各个字段分别转换为键值对,其中,每个键值对的键名包含对应的字段名及所述指针标识,所述指针标识包含所述从表的表名及所述数据记录的唯一性索引值,每个键值对的值域用于存储相应字段的数据;键值对存储子模块,用于将所述增量数据相对应的所有键值对存储至分布式数据库为该关系型数据库预设的存储空间;更新事件触发子模块,用于在完成存储后触发数据更新事件,在该事件的消息体中包含所述唯一性索引值。
一种实施例中,所述的更新事件响应模块13包括:索引值提取子模块,用于响应所述数据更新事件,提取该事件的消息体中的唯一性索引值;键值对读取子模块,用于从分布式数据库的所述存储空间中读取出该唯一性索引值相对应的所有键值对;键值对转换子模块.用于将所读取出的所有键值对转换为预设协议格式的增量数据表达式,所述增量数据表达式中,包含所述唯一性索引值,以及各个键值对相对应的字段名及值域数据。
一种实施例中,所述的表达式输出模块14包括:索引值确定子模块,用于所述搜索引擎通过数据处理接口获取搜索增量数据表达式,解析确定该数据表达式中包含所述唯一性索引值;键值对插入子模块,用于所述搜索引擎根据所述唯一性索引值,且根据该数据表达式中各个键值对相对应的字段名,将其值域数据进行处理后对应插入至自身的搜索数据库中。
为解决上述技术问题,本申请实施例还提供一种计算机设备,用于运行根据所述搜索引擎更新方法所实现的计算机程序。具体请参阅图7,图7为本实施例计算机设备基本结构框图。
如图7所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种搜索引擎更新方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种搜索引擎更新方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施方式中处理器用于执行本申请的搜索引擎更新装置中的各个模块/子模块的具体功能,存储器存储有执行上述模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有搜索引擎更新装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
本申请还提供一种非易失性存储介质,所述的搜索引擎更新方法被编写成计算机程序,以计算机可读指令的形式存储于该存储介质中,计算机可读指令被一个或多个处理器执行时,意味着该程序在计算机中的运行,由此使得一个或多个处理器执行上述任一实施例搜索引擎更新方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM) 等。
综上所述,本申请通过将关系型数据库中从表的增量数据进行打平处理后转存至分布式数据库中进行搜索引擎数据同步更新,解决了传统的将关系型数据库中的全局历史数据存储至分布式数据库中所存在的数据竞争问题。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种搜索引擎更新方法,其特征在于,包括如下步骤:
根据关系型数据库的日志文件确定被主表引用的从表中被更新的数据记录,从所述从表中获取被更新的数据记录相对应的增量数据;
将所述增量数据转存至分布式数据库对应的存储空间,从而将所述增量数据转换为键值对存储形式,触发数据更新事件,同一增量数据的各个键值对的键名均包含指向所述从表数据记录的指针标识;
响应所述数据更新事件,从所述分布式数据库中提取出所述指针标识相对应的键值对,转换为预设协议格式的增量数据表达式;
将所述增量数据表达式输出给搜索引擎的数据处理接口,以供该数据处理接口解析读取该增量数据表达式。
2.根据权利要求1所述的方法,其特征在于,将所述增量数据转存至分布式数据库对应的存储空间,从而将所述增量数据转换为键值对存储形式,触发数据更新事件,包括如下步骤:
将所述增量数据中的各个字段分别转换为键值对,其中,每个键值对的键名包含对应的字段名及所述指针标识,所述指针标识包含所述从表的表名及所述数据记录的唯一性索引值,每个键值对的值域用于存储相应字段的数据;
将所述增量数据相对应的所有键值对存储至分布式数据库为该关系型数据库预设的存储空间;
在完成存储后触发数据更新事件,在该事件的消息体中包含所述唯一性索引值。
3.根据权利要求2所述的方法,其特征在于,响应所述数据更新事件,从所述分布式数据库中提取出所述指针标识相对应的键值对,转换为预设协议格式的增量数据表达式,包括如下步骤:
响应所述数据更新事件,提取该事件的消息体中的唯一性索引值;
从分布式数据库的所述存储空间中读取出该唯一性索引值相对应的所有键值对;
将所读取出的所有键值对转换为预设协议格式的增量数据表达式,所述增量数据表达式中,包含所述唯一性索引值,以及各个键值对相对应的字段名及值域数据。
4.根据权利要求2所述的方法,其特征在于,将所述增量数据表达式输出给搜索引擎的数据处理接口,以供该数据处理接口解析读取该增量数据表达式,包括如下步骤:
所述搜索引擎通过数据处理接口获取搜索增量数据表达式,解析确定该数据表达式中包含所述唯一性索引值;
所述搜索引擎根据所述唯一性索引值,且根据该数据表达式中各个键值对相对应的字段名,将其值域数据进行处理后对应插入至自身的搜索数据库中。
5.根据权利要求1所述的方法,其特征在于,本方法包括如下前置步骤:
检测关系型数据库的转换开关,当其为开启状态时,将对所述关系型数据库的增量数据进行转存处理。
6.根据权利要求1所述的方法,其特征在于,所述分布式数据库基于HBase数据库所构建。
7.一种搜索引擎更新装置,其特征在于,其包括:
增量数据获取模块,用于根据关系型数据库的日志文件确定被主表引用的从表中被更新的数据记录,从所述从表中获取被更新的数据记录相对应的增量数据;
增量数据转存模块,用于将所述增量数据转存至分布式数据库对应的存储空间,从而将所述增量数据转换为键值对存储形式,触发数据更新事件,同一增量数据的各个键值对的键名均包含指向所述从表数据记录的指针标识;
更新事件响应模块,用于响应所述数据更新事件,从所述分布式数据库中提取出所述指针标识相对应的键值对,转换为预设协议格式的增量数据表达式;
表达式输出模块,用于将所述增量数据表达式输出给搜索引擎的数据处理接口,以供该数据处理接口解析读取该增量数据表达式。
8.一种电子设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至7中任一项所述的方法的步骤。
9.一种非易失性存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至7中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至7任意一项所述方法的步骤。
CN202111221615.3A 2021-10-20 2021-10-20 搜索引擎更新方法及其装置、设备、介质、产品 Pending CN113961643A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111221615.3A CN113961643A (zh) 2021-10-20 2021-10-20 搜索引擎更新方法及其装置、设备、介质、产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111221615.3A CN113961643A (zh) 2021-10-20 2021-10-20 搜索引擎更新方法及其装置、设备、介质、产品

Publications (1)

Publication Number Publication Date
CN113961643A true CN113961643A (zh) 2022-01-21

Family

ID=79464973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111221615.3A Pending CN113961643A (zh) 2021-10-20 2021-10-20 搜索引擎更新方法及其装置、设备、介质、产品

Country Status (1)

Country Link
CN (1) CN113961643A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150456A (zh) * 2023-04-18 2023-05-23 中信天津金融科技服务有限公司 一种智能档案管理方法、装置、电子设备和介质
CN116821245A (zh) * 2023-07-05 2023-09-29 贝壳找房(北京)科技有限公司 分布式场景下数据聚合同步方法及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150456A (zh) * 2023-04-18 2023-05-23 中信天津金融科技服务有限公司 一种智能档案管理方法、装置、电子设备和介质
CN116150456B (zh) * 2023-04-18 2023-08-11 中信天津金融科技服务有限公司 一种智能档案管理方法、装置、电子设备和介质
CN116821245A (zh) * 2023-07-05 2023-09-29 贝壳找房(北京)科技有限公司 分布式场景下数据聚合同步方法及存储介质

Similar Documents

Publication Publication Date Title
US9934260B2 (en) Streamlined analytic model training and scoring system
CN106407360B (zh) 一种数据的处理方法及装置
CN113961643A (zh) 搜索引擎更新方法及其装置、设备、介质、产品
CN108959538B (zh) 全文检索系统及方法
CN114328682A (zh) 一种基于规则引擎的数据处理方法、装置、设备及介质
CN103778258A (zh) 一种数据库数据的发送、接收方法、客户端、服务器
CN114328981B (zh) 基于模式映射的知识图谱建立和数据获取方法、装置
CN116028505A (zh) 一种在分布式数据库中实现高可用序列的方法
US20110191549A1 (en) Data Array Manipulation
US20090138451A1 (en) On-line organization of data sets
CN113343684B (zh) 核心产品词识别方法、装置、计算机设备及存储介质
WO2022068348A1 (zh) 关系图谱构建方法、装置、电子设备及存储介质
CN114661726A (zh) 数据类型映射处理方法及其装置、设备、介质及产品
CN115391286A (zh) 一种链路追踪数据管理方法、装置、设备及存储介质
US20210141791A1 (en) Method and system for generating a hybrid data model
EP3046307B1 (en) Processing method, device and system for data of distributed storage system
CN113420099A (zh) 埋点数据访问控制方法、装置以及计算机设备、存储介质
CN113641761A (zh) 数据同步方法及装置
CN113342866B (zh) 关键词更新方法、装置、计算机设备及存储介质
US11928423B1 (en) Transaction entity prediction through learned embeddings
US20230030208A1 (en) Bulk data extract hybrid job processing
CN114579888B (zh) 知识图谱数据构建的方法、系统和非瞬态计算机可读介质
CN110569456B (zh) Web端数据离线缓存方法及装置、电子设备
US20230036517A1 (en) Delta database data provisioning
CN116049200A (zh) 分析库数据更新方法、装置、计算机设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination