CN112905707A - 关系数据库与搜索引擎的同步方法、装置和计算机存储介质 - Google Patents
关系数据库与搜索引擎的同步方法、装置和计算机存储介质 Download PDFInfo
- Publication number
- CN112905707A CN112905707A CN202110347559.1A CN202110347559A CN112905707A CN 112905707 A CN112905707 A CN 112905707A CN 202110347559 A CN202110347559 A CN 202110347559A CN 112905707 A CN112905707 A CN 112905707A
- Authority
- CN
- China
- Prior art keywords
- log file
- relational database
- search engine
- data
- database
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种关系数据库与搜索引擎的同步方法、装置和计算机存储介质。所述方法包括:建立第一链接,向关系数据库所在的主服务器发送从服务器数据请求,以使所述主服务器推送日志文件,所述日志文件由所述主服务器修改所述关系数据库所产生;使用所述第一链接获取所述主服务器推送的日志文件;建立第二链接,向所述关系数据库发送数据库连接请求,以获取与所述日志文件关联的多个字段名;根据获取的所述多个字段名确定最新版本字段名;使用所述最新版本字段名解析所述日志文件,得到解析结果;以及将所述解析结果推送给搜索引擎。
Description
技术领域
本发明主要涉及数据领域,尤其涉及一种关系数据库与搜索引擎的同步方法、装置和计算机存储介质。
背景技术
目前,关系数据库是线上***的主流存储方式,但关系数据库无法支持索引特别是多字段任意组合索引和全索引。因此通常引入搜索引擎来做搜索,这就带来关系数据库与搜索引擎的同步问题。解决这一问题的一种方案是双写模式,即数据同时保存在关系数据库和搜索引擎。这种方法要保证代码中写关系数据库和写搜索引擎是原子性的,一旦出现一个成功一个失败的情况就会导致数据的不一致。另一方案是数据库CDC(Change DataCapture,变化数据捕捉)机制,通过重试等来实现索引一致性,主要通过中间件来达到非侵入的方式。但这一种方式能解决的也就是数据库日志文件解析的问题,并没有解决搜索引擎同步的问题。
发明内容
本发明要解决的技术问题是提供一种关系数据库与搜索引擎的同步方法、装置和计算机存储介质,能够解决关系数据库与搜索引擎同步的问题。
为解决上述技术问题,本发明提供了一种关系数据库与搜索引擎的同步方法,在监听组件执行,所述方法包括以下步骤:建立第一链接,向关系数据库所在的主服务器发送从服务器数据请求,以使所述主服务器推送日志文件,所述日志文件由所述主服务器修改所述关系数据库所产生;使用所述第一链接获取所述主服务器推送的日志文件;建立第二链接,向所述关系数据库发送数据库连接请求,以获取与所述日志文件关联的多个字段名;根据获取的所述多个字段名确定最新版本字段名;使用所述最新版本字段名解析所述日志文件,得到解析结果;以及将所述解析结果推送给搜索引擎。
在本发明的一实施例中,使用所述最新版本字段名解析所述日志文件的步骤包括:建立所述最新版本字段名与所述日志文件中对应数据的映射关系。
在本发明的一实施例中,上述方法还包括记录解析所述日志文件时的位点,所述位点指示下一次解析的起始位置。
在本发明的一实施例中,上述方法还包括将所述多个字段名与所述位点作为元数据保存。
在本发明的一实施例中,上述方法还包括:提供多个保存位置的配置选项,所述保存位置包括内存和数据库;以及根据对所述配置选项的选择,将所述元数据保存到相应保存位置。
在本发明的一实施例中,将所述解析结果推送给搜索引擎的步骤包括:将所述解析结果推送给消息中间件;监听所述消息中间件发送的数据;以及将所述数据转发给所述搜索引擎。
在本发明的一实施例中,上述方法还包括:全量查询所述关系数据库,将所述关系数据库中目标表的数据整体同步到所述搜索引擎的对应索引中。
在本发明的一实施例中,上述方法还包括解析离线获取的所述日志文件,并根据解析结果向所述关系数据库反查所述日志文件中的最新数据。
本发明还提出一种关系数据库与搜索引擎的同步装置,包括监听组件,配置为:建立第一链接,向关系数据库所在的主服务器发送从服务器数据请求,以使所述主服务器推送日志文件,所述日志文件由所述主服务器修改所述关系数据库所产生;使用所述第一链接获取所述主服务器推送的日志文件;建立第二链接,向所述关系数据库发送数据库连接请求,以获取与所述日志文件关联的多个字段名;根据获取的所述多个字段名确定最新版本字段名;使用所述最新版本字段名解析所述日志文件,得到解析结果;以及将所述解析结果推送给搜索引擎。
在本发明的一实施例中,上述装置还包括消息中间件,其中所述监听组件还配置为按下述方式将所述解析结果推送给搜索引擎:将所述解析结果推送给消息中间件;监听所述消息中间件发送的数据;以及将所述数据转发给所述搜索引擎。
在本发明的一实施例中,所述监听组件还配置为:全量查询所述关系数据库,将所述关系数据库中目标表的数据整体同步到所述搜索引擎的对应索引中。
在本发明的一实施例中,所述监听组件还配置为:解析离线获取的所述日志文件,并根据解析结果向所述关系数据库反查所述日志文件中的最新数据。
本发明还提出一种关系数据库与搜索引擎的同步装置,包括:存储器,用于存储可由处理器执行的指令;以及处理器,用于执行所述指令以实现如上所述的方法。
本发明还提出一种存储有计算机程序代码的计算机存储介质,所述计算机程序代码在由处理器执行时实现如上所述的方法。
与现有技术相比,本发明可以通过监听组件以从服务器方式向关系数据库所在的主服务器发送数据请求,从而获得增量日志文件。并且通过监听组件获得与日志文件对应的字段名,从而实现对增量日志文件的解析。将解析结果发送给搜索引擎,实现了关系数据库与搜索引擎的同步。
附图说明
包括附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本发明原理的作用。附图中:
图1是根据本申请一实施例的***结构框图。
图2是根据本申请一实施例的关系数据库与搜索引擎的同步方法流程图。
图3是根据本申请另一实施例的关系数据库与搜索引擎的同步方法流程图。
图4是本申请一实施例的关系数据库与搜索引擎的同步装置硬件实施环境。
具体实施方式
为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件,仅仅是为了便于对相应零部件进行区别,如没有另行声明,上述词语并没有特殊含义,因此不能理解为对本申请保护范围的限制。此外,尽管本申请中所使用的术语是从公知公用的术语中选择的,但是本申请说明书中所提及的一些术语可能是申请人按他或她的判断来选择的,其详细含义在本文的描述的相关部分中说明。此外,要求不仅仅通过所使用的实际术语,而是还要通过每个术语所蕴含的意义来理解本申请。
应当理解,当一个部件被称为“在另一个部件上”、“连接到另一个部件”、“耦合于另一个部件”或“接触另一个部件”时,它可以直接在该另一个部件之上、连接于或耦合于、或接触该另一个部件,或者可以存在***部件。相比之下,当一个部件被称为“直接在另一个部件上”、“直接连接于”、“直接耦合于”或“直接接触”另一个部件时,不存在***部件。同样的,当第一个部件被称为“电接触”或“电耦合于”第二个部件,在该第一部件和该第二部件之间存在允许电流流动的电路径。该电路径可以包括电容器、耦合的电感器和/或允许电流流动的其它部件,甚至在导电部件之间没有直接接触。
图1是根据本申请一实施例的***结构框图。参考图1所示,***100可具有主服务器101,其具有数据库101a和磁盘101b,数据库101a例如为主数据库,用于存储数据。主服务器101使用过程中会修改数据库101a中的数据11,此时会产生日志文件12并存储在磁盘101b中。监听组件103可以获取日志文件12,并在获取日志文件12后进行解析,得到解析结果。在此,数据库101a例如是MySQL等关系数据库,日志文件12例如是binlog文件,它是有规则的二进制格式。
在一个方面,监听组件103全量查询数据库101a,将数据库101a中目标表的数据整体同步到搜索引擎102的对应索引中。举例来说,通过“select*from db.tb”的模式把整个表的数据同步到搜索引擎102的对应的索引中。当全量查询的数据量非常大,例如超过千万个数据时,***的内存无法存下如此大数据。为此,根据本申请的一实施例,采取分范围多次查询的方案。例如:“select*from db.tb where id>=10000and id<10100”,在每次查询时限定查询id的范围。相比之下,常规的翻页查询会有深度翻页查询的问题,导致处理器占有率一直很高,影响线上使用。
在另一方面,监听组件103监听数据库101a,以持续获得增量数据。更具体地说,监听组件103会在内部建立第一链接,用于向主数据库101a所在的主服务器101发送数据请求。数据请求例如是MySQL中的dump(转储)请求。在一个实施例中,监听组件103使用复制(replication)协议来发送dump请求。这样,在主服务器101看来,是收到从服务器发送的数据请求。响应于数据请求,服务器200会持续主动把增量的日志文件12推送给监听组件103。在一些实施例中,推送的间隔可达到毫秒级的实时程度。由此,监听组件103使用第一链接可持续获取主服务器101推送的日志文件12。
对于获取数据库101a被修改的数据而言,常规上可以通过业务逻辑的主动消息推送实现。或者是,使用***把要计算的数据推到消息中间件105。但是,如果之后开发了其它的业务逻辑时,忘了对新业务逻辑的消息进行推送,会导致数据的不完整。另外,如果由于某些逻辑异常,需要手动到数据库修订数据时也会导致消息的不完整。还有一些旧模块的改造,不熟悉旧逻辑时肯定也会导致数据的不完整。在本申请的实施例中,监听组件103是在数据库层面的拦截,则不会出现消息不完整的问题。
需要注意,日志文件12中只保存数据的值,不保存数据所对应的字段,且在实际运行中字段名是不断变更的,因此字段名的获取和管理变得重要。为此,根据本申请的实施例,监听组件103建立第二链接,向数据库101a发送数据库连接请求,以获取与日志文件关联的多个字段名。数据库连接请求可包括目标表名,通过目标表名可查询到字段名。在一个实施例中,数据库连接请求可以是JDBC(Java Database Connectivity)请求。监听组件103根据获取的多个字段名确定最新版本字段名。具体而言,如果监听组件103没有存储过字段名,则将获取到的最新字段名,作为最新版本字段名;如果监听组件103存储过字段名,直接以存储的字段名,作为最新版本字段名;如果数据库101a提供修改表的形式,则向数据库101a请求字段名的最新版本。
在一个实施例中,在收到日志文件12后,监听组件103会使用最新版本字段名解析日志文件12,产生解析结果。在一个实施例中,日志文件12是有规则的二进制格式,监听组件103会解析增量的日志文件14为人类能看懂的字符串数据。并且解析的步骤包括,建立最新版本字段名与日志文件12中对应数据的映射关系。解析结果包括字段名和与之映射的数据。
在一个实施例中,监听组件103记录解析日志文件12时的位点。位点指示下一次解析的起始位置。这样,当监听组件103可以在新一次解析时,以上一次解析的结束位置作为本次解析的起始位置,继续进行解析。位点包括文件名+偏置和GTID(Global TransactionIdentifier,全局事务标识)两种定位方式需要数据的合集。在一实施例中,将合集合成为一个完整的位点信息,就能满足不同场景的高可用(HA)要求。
位点与前述的多个字段名都作为元数据保存,供解析使用。在一个实施例中,提供多个保存位置的配置选项。举例来说,保存位置包括内存和数据库。数据库可包括各种类型的数据库,例如MySQL,H2DB等。根据对配置选项的选择,将元数据保存到相应保存位置。举例来说,对上层应用来说,保存在内存更方便使用。使用MySQL保存适合需要建立独立的库的场景,使用H2DB保存适合以文件形式保存而不依赖于权限的场景。
在一个实施例中,监听组件103将解析结果推送给搜索引擎102。搜索引擎102会对解析结果进行分析、结构化等操作,然后存储到管理数据库104中。在另一个实施例中,如果解析结果不需处理,也可以由监听组件103直接推送到管理数据库104中,供搜索引擎102访问。在一个实施例中,搜索引擎102包括elastic search。
当数据库101a的数据不只用于同步搜索引擎102时,可将数据提供给消息中间件105。在一个实施例中,监听组件103将解析结果推送到消息中间件105。此后,监听组件103会监听消息中间件105发送的数据,并将数据转发给搜索引擎102。消息中间件105的数据一部分可以直接被搜索引擎102使用,另一部分可供例如业务106的其他一方或多方共用。在一个实施例中,监听组件103向消息中间件105的推送可以是实时的,延迟低至毫秒级。在一个实施例中,监听组件103将解析结果序列化后再推送给消息中间件105,以加快传输速度。消息中间件105存储转发数据,不再进行处理。监听组件103将来自消息中间件105数据转发给搜索引擎102之前,还进行反序列化,再导入到搜索引擎102。由于数据库101a和搜索引擎102在设计上的差异,在一个实施例中,建立二者之间的映射规则,即数据库101a的字段对应搜索引擎102的哪一字段。当要支持两表或更多表关联(例如为父子关系)时,需要考虑多张表如何按规则进入搜索引擎102的索引中。在此,多张表中的数据保存在索引下的文档中。在一个实施例中,可在搜索引擎102中创建连接(Join)字段,指示对应于两表或多表的文档之间的关联关系。在另一实施例中,某个文档可包括关联的多张表的数据,通过局部更新把每张表的更新数据实时同步到该文档的某个部分中。
另一方面,在发生同步问题或峰值来临时,引入离线解析功能。在一个实施例中,可以离线获取前述日志文件12,并下载到监听组件103所在计算机,由监听组件103解析离线获取的日志文件。进一步,监听组件103根据解析结果向数据库101a反查日志文件中的最新数据,这样就保证了新数据不会被旧数据覆盖。
图2是根据本申请一实施例的关系数据库与搜索引擎的同步方法流程图。参考图2所示,从另一角度看,本申请的一种关系数据库与搜索引擎的同步的方法,包括以下步骤:
在步骤201,建立第一链接,向关系数据库所在的主服务器发送从服务器数据请求,以使主服务器推送日志文件,日志文件由主服务器修改关系数据库所产生。
参考图1所示,监听组件103建立第一链接,向主服务器101发送从服务器数据请求以进行监听,主服务器101会推送日志文件12。日志文件12由主服务器12修改数据库101a所产生。
在步骤202,使用第一链接获取主服务器推送的日志文件。
参考图1所示,监听组件103使用第一链接获取主服务器101推送的日志文件12。
在步骤203,建立第二链接,向关系数据库发送数据库连接请求,以获取与日志文件关联的多个字段名。
参考图1所示,监听组件103建立第二链接,向数据库101a发送数据库连接请求,以获取与日志文件12关联的多个字段名。
在步骤204,根据获取的多个字段名确定最新版本字段名。
在步骤205,使用最新版本字段名解析日志文件,得到解析结果。
在步骤206,将述解析结果推送给搜索引擎。
参考图1所示,监听组件103将解析结果推送给搜索引擎102。
图3是根据本申请另一实施例的关系数据库与搜索引擎的同步方法流程图。参考图3所示,从另一角度看,本申请的一种关系数据库与搜索引擎的同步的方法,包括以下步骤:
在步骤301,建立第一链接,向关系数据库所在的主服务器发送从服务器数据请求,以使主服务器推送日志文件,日志文件由主服务器修改关系数据库所产生。
参考图1所示,监听组件103建立第一链接,向主服务器101发送从服务器数据请求以进行监听,主服务器101会推送日志文件12。日志文件12由主服务器12修改数据库101a所产生。
在步骤302,使用第一链接获取主服务器推送的日志文件。
参考图1所示,监听组件103使用第一链接获取主服务器101推送的日志文件12。
在步骤303,建立第二链接,向关系数据库发送数据库连接请求,以获取与日志文件关联的多个字段名。
参考图1所示,监听组件103建立第二链接,向数据库101a发送数据库连接请求,以获取与日志文件12关联的多个字段名。
在步骤304,根据获取的多个字段名确定最新版本字段名。
在步骤305,使用最新版本字段名解析日志文件,得到解析结果。
在步骤306,将解析结果推送给消息中间件。
参考图1所示,监听组件103将解析结果发送给消息中间件。
在步骤307,监听消息中间件发送的数据。
如图1所示,监听组件监听消息中间件105发送的数据。
在步骤308,将所述数据转发给所述搜索引擎。
参考图1所示,监听组件103将消息中间件105发送的数据转发给搜索引擎102。
本方法的其他细节可参考前文的描述,在此不再展开。
本申请中使用了流程图用来说明根据本申请的实施例的***所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图4是本申请一实施例的关系数据库和搜索引擎的同步装置硬件实施环境。装置300可包括内部通信总线401、处理器(Processor)402、只读存储器(ROM)403、随机存取存储器(RAM)404、以及通信端口405。当应用在个人计算机上时,装置400还可以包括硬盘407。内部通信总线401可以实现装置400组件间的数据通信。处理器402可以进行判断和发出提示。在一些实施例中,处理器402可以由一个或多个处理器组成。通信端口405可以实现装置400与外部的数据通信。在一些实施例中,装置400可以通过通信端口405从网络发送和接受信息及数据。装置400还可以包括不同形式的程序储存单元以及数据储存单元,例如硬盘407,只读存储器(ROM)403和随机存取存储器(RAM)404,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的程序指令。处理器执行这些指令以实现方法的主要部分。处理器处理的结果通过通信端口传给终端设备,在用户界面上显示。
上述的同步方法可以实施为计算机程序,保存在硬盘407中,并可记载到处理器402中执行,以实施本申请的同步方法。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体***的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
本申请的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“***”。处理器可以是一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DAPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器或者其组合。此外,本申请的各方面可能表现为位于一个或多个计算机存储介质中的计算机产品,该产品包括计算机存储程序编码。例如,计算机存储介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,压缩盘CD、数字多功能盘DVD……)、智能卡以及闪存设备(例如,卡、棒、键驱动器……)。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机存储介质可以是除计算机存储存储介质之外的任何计算机存储介质,该介质可以通过连接至一个指令执行***、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
虽然本申请已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本申请,在没有脱离本申请精神的情况下还可作出各种等效的变化或替换,因此,只要在本申请的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。
Claims (14)
1.一种关系数据库与搜索引擎的同步方法,在监听组件执行,所述方法包括以下步骤:
建立第一链接,向关系数据库所在的主服务器发送从服务器数据请求,以使所述主服务器推送日志文件,所述日志文件由所述主服务器修改所述关系数据库所产生;
使用所述第一链接获取所述主服务器推送的日志文件;
建立第二链接,向所述关系数据库发送数据库连接请求,以获取与所述日志文件关联的多个字段名;
根据获取的所述多个字段名确定最新版本字段名;
使用所述最新版本字段名解析所述日志文件,得到解析结果;以及
将所述解析结果推送给搜索引擎。
2.如权利要求1所述的方法,其特征在于,使用所述最新版本字段名解析所述日志文件的步骤包括:建立所述最新版本字段名与所述日志文件中对应数据的映射关系。
3.如权利要求1所述的方法,其特征在于,还包括记录解析所述日志文件时的位点,所述位点指示下一次解析的起始位置。
4.如权利要求3所述的方法,其特征在于,还包括将所述多个字段名与所述位点作为元数据保存。
5.如权利要求4所述的方法,其特征在于,还包括:
提供多个保存位置的配置选项,所述保存位置包括内存和数据库;以及
根据对所述配置选项的选择,将所述元数据保存到相应保存位置。
6.如权利要求1所述的方法,其特征在于,将所述解析结果推送给搜索引擎的步骤包括:
将所述解析结果推送给消息中间件;
监听所述消息中间件发送的数据;以及
将所述数据转发给所述搜索引擎。
7.如权利要求1所述的方法,其特征在于,还包括:全量查询所述关系数据库,将所述关系数据库中目标表的数据整体同步到所述搜索引擎的对应索引中。
8.如权利要求1所述的方法,其特征在于,还包括解析离线获取的所述日志文件,并根据解析结果向所述关系数据库反查所述日志文件中的最新数据。
9.一种关系数据库与搜索引擎的同步装置,包括监听组件,配置为:
建立第一链接,向关系数据库所在的主服务器发送从服务器数据请求,以使所述主服务器推送日志文件,所述日志文件由所述主服务器修改所述关系数据库所产生;
使用所述第一链接获取所述主服务器推送的日志文件;
建立第二链接,向所述关系数据库发送数据库连接请求,以获取与所述日志文件关联的多个字段名;
根据获取的所述多个字段名确定最新版本字段名;
使用所述最新版本字段名解析所述日志文件,得到解析结果;以及
将所述解析结果推送给搜索引擎。
10.如权利要求9所述的装置,其特征在于,还包括消息中间件,其中所述监听组件还配置为按下述方式将所述解析结果推送给搜索引擎:
将所述解析结果推送给消息中间件;
监听所述消息中间件发送的数据;以及
将所述数据转发给所述搜索引擎。
11.如权利要求9所述的装置,其特征在于,所述监听组件还配置为:全量查询所述关系数据库,将所述关系数据库中目标表的数据整体同步到所述搜索引擎的对应索引中。
12.如权利要求9所述的装置,其特征在于,所述监听组件还配置为:解析离线获取的所述日志文件,并根据解析结果向所述关系数据库反查所述日志文件中的最新数据。
13.一种关系数据库与搜索引擎的同步装置,包括:
存储器,用于存储可由处理器执行的指令;以及
处理器,用于执行所述指令以实现如权利要求1-8任一项所述的方法。
14.一种存储有计算机程序代码的计算机存储介质,所述计算机程序代码在由处理器执行时实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110347559.1A CN112905707A (zh) | 2021-03-31 | 2021-03-31 | 关系数据库与搜索引擎的同步方法、装置和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110347559.1A CN112905707A (zh) | 2021-03-31 | 2021-03-31 | 关系数据库与搜索引擎的同步方法、装置和计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905707A true CN112905707A (zh) | 2021-06-04 |
Family
ID=76109698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110347559.1A Pending CN112905707A (zh) | 2021-03-31 | 2021-03-31 | 关系数据库与搜索引擎的同步方法、装置和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905707A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001034518A (ja) * | 1999-07-27 | 2001-02-09 | Nec Software Chugoku Ltd | 分散データベースシステムにおける主従関係情報同期方式 |
EP2306319A1 (en) * | 2009-09-14 | 2011-04-06 | Software AG | Database server, replication server and method for replicating data of a database server by at least one replication server |
CN107180116A (zh) * | 2017-06-28 | 2017-09-19 | 努比亚技术有限公司 | 一种数据同步处理方法、移动终端以及计算机可读存储介质 |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN108920659A (zh) * | 2018-07-03 | 2018-11-30 | 广州唯品会信息科技有限公司 | 数据处理***及其数据处理方法、计算机可读存储介质 |
CN110609844A (zh) * | 2018-05-29 | 2019-12-24 | 优信拍(北京)信息科技有限公司 | 一种数据更新方法,装置及*** |
CN111026727A (zh) * | 2019-10-24 | 2020-04-17 | 贝壳技术有限公司 | 基于日志文件的表维度检索数据同步方法、***及装置 |
CN111752939A (zh) * | 2019-03-28 | 2020-10-09 | 北京京东尚科信息技术有限公司 | 用于多个***的数据处理方法、装置、计算机***、介质 |
-
2021
- 2021-03-31 CN CN202110347559.1A patent/CN112905707A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001034518A (ja) * | 1999-07-27 | 2001-02-09 | Nec Software Chugoku Ltd | 分散データベースシステムにおける主従関係情報同期方式 |
EP2306319A1 (en) * | 2009-09-14 | 2011-04-06 | Software AG | Database server, replication server and method for replicating data of a database server by at least one replication server |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN107180116A (zh) * | 2017-06-28 | 2017-09-19 | 努比亚技术有限公司 | 一种数据同步处理方法、移动终端以及计算机可读存储介质 |
CN110609844A (zh) * | 2018-05-29 | 2019-12-24 | 优信拍(北京)信息科技有限公司 | 一种数据更新方法,装置及*** |
CN108920659A (zh) * | 2018-07-03 | 2018-11-30 | 广州唯品会信息科技有限公司 | 数据处理***及其数据处理方法、计算机可读存储介质 |
CN111752939A (zh) * | 2019-03-28 | 2020-10-09 | 北京京东尚科信息技术有限公司 | 用于多个***的数据处理方法、装置、计算机***、介质 |
CN111026727A (zh) * | 2019-10-24 | 2020-04-17 | 贝壳技术有限公司 | 基于日志文件的表维度检索数据同步方法、***及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107818115B (zh) | 一种处理数据表的方法及装置 | |
CN110046133B (zh) | 一种存储文件***的元数据管理方法、装置及*** | |
US8924365B2 (en) | System and method for range search over distributive storage systems | |
EP3702932A1 (en) | Method, apparatus, device and medium for storing and querying data | |
US9798762B2 (en) | Real time big data master data management | |
US20100306234A1 (en) | Cache synchronization | |
WO2009004620A2 (en) | Method and system for data storage and management | |
CN112084161B (zh) | 基于数据库的数据处理方法、装置以及可读存储介质 | |
US9171051B2 (en) | Data definition language (DDL) expression annotation | |
CN113220794A (zh) | 用于同步异构数据库之间的查询结果的方法、服务器和计算机可读介质 | |
KR102119258B1 (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
EP2380090B1 (en) | Data integrity in a database environment through background synchronization | |
CN113986873A (zh) | 一种海量物联网数据模型化的处理、存储与共享方法 | |
CN111046036A (zh) | 数据同步方法、装置、***及存储介质 | |
CN110505495A (zh) | 多媒体资源抽帧方法、装置、服务器及存储介质 | |
KR20200056357A (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
CN114691704A (zh) | 一种基于MySQL binlog的元数据同步方法 | |
KR101797483B1 (ko) | 데이터베이스 관리 시스템에서 쿼리를 프로세싱하기 위한 기법 | |
CN114328981A (zh) | 基于模式映射的知识图谱建立和数据获取方法、装置 | |
CN114595286A (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
CN116049306A (zh) | 数据同步方法、装置、电子设备以及可读存储介质 | |
CN113918535A (zh) | 一种数据读取方法、装置、设备及存储介质 | |
KR20160050930A (ko) | 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체 | |
CN112905707A (zh) | 关系数据库与搜索引擎的同步方法、装置和计算机存储介质 | |
CN115587114A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210604 |