一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据同步方法及装置与流程

2021-11-15 18:46:00 来源:中国专利 TAG:
1.本公开涉及计算机
技术领域
:,尤其涉及数据同步方法及装置。
背景技术
::2.随着互联网技术飞速发展,各领域的数据呈爆炸式增长。而业务系统通常基于传统的关系型数据库(如mysql、oracle等)进行数据管理和存储,但是,随着数据量级的增大,基于关系型数据库的系统搜索能力难以满足用户愈来愈高的需求。因此,引入搜索引擎服务器,如elasticsearch,作为业务系统的搜索核心,从而使数据库专注于数据存储,由搜索引擎服务器专注于数据搜索。3.由于不同领域的数据组织和处理特点不同,需要单独开发专门的数据同步系统(数据同步系统运行在数据同步服务器中),将业务系统(业务系统运行在业务服务器中)的数据同步到搜索引擎服务器,再由搜索引擎服务器对外提供数据服务,可见,目前的数据同步系统只能处理某一领域的业务数据,通用性差,需要针对每个领域开发一套数据同步系统,开发及维护成本高。技术实现要素:4.本公开提供一种数据同步方法及装置,以至少解决相关技术中数据同步系统通用性差、开发及维护成本高的问题。本公开的技术方案如下:5.根据本公开实施例的第一方面,提供一种数据同步方法,该方法应用于数据同步服务器,所述方法包括:6.获取业务服务器的待同步数据,所述待同步数据包括索引数据类型;7.确定搜索引擎服务器中与所述索引数据类型相匹配的目标索引库;8.转换所述待同步数据的第一数据格式为第二数据格式,所述第二数据格式为所述目标索引库对应的数据格式;9.向所述搜索引擎服务器发送所述第二数据格式的待同步数据,以触发所述搜索引擎服务器根据所述第二数据格式的待同步数据更新所述目标索引库中的数据。10.该方案中,数据同步服务器获取业务服务器转换得到的第一数据格式的待同步数据,并将该第一数据格式转换为搜索引擎服务器所支持的第二数据格式,进而将第二数据格式的待同步数据更新至目标索引库中。可见,该方案不需要针对不同领域的业务系统单独开发相应的数据同步系统,因此,降低了数据同步系统的开发及维护成本。11.在第一方面的一种可能的实现方式中,所述待同步数据包括数据操作类型,所述方法还包括:12.在所述待同步数据的数据操作类型为更新操作的情况下,若根据预存的预设关联关系,确定存在与所述待同步数据相关联的关联数据,则根据所述待同步数据及关联数据生成关联数据更新指令,并发送至搜索引擎服务器,所述预设关联关系用于表征所述业务服务器中的数据之间的关联关系,所述关联数据更新指令用于使所述搜索引擎服务器更新所述关联数据。13.该方案在将待同步数据更新到搜索引擎服务器中对应的索引库的过程中,能够更新搜索引擎服务器的其他索引库中与该待同步数据相关联的关联数据,该方案减少了业务服务器与搜索引擎服务器之间的数据同步次数,因此缩短了数据同步过程耗用的时长,提高了数据同步效率。14.在第一方面的另一种可能的实现方式中,所述待同步数据包括数据标识和字段集合,所述字段集合包括索引字段的字段名称及字段内容;所述转换所述待同步数据的第一数据格式为第二数据格式步骤,包括:15.提取所述待同步数据中数据标识,以及所述字段集合中的索引字段对应的字段名称及字段内容;16.将所述数据标识、所述字段名称及所述字段内容填充至第二数据格式对应的各字段中,得到所述第二数据格式的待同步数据。17.在第一方面的又一种可能的实现方式中,所述方法还包括:18.如果所述搜索引擎服务器中不存在所述目标索引库或所述目标索引库不正常,则触发所述搜索引擎服务器构建所述目标索引库。19.在第一方面的再一种可能的实现方式中,在所述获取业务服务器的待同步数据之后,所述方法还包括:20.若所述待同步数据的关键字段存在且所述关键字段的数据内容正确,确定所述待同步数据有效;21.若所述关键字段不存在或所述关键字段的数据内容不正确,确定所述待同步数据无效,并向所述业务服务器返回所述待同步数据的数据标识信息。22.该方案在对数据进行同步操作之前,先检查待同步数据中的关键字段及关键字段的数据内容是否正确,若任一项不正确,则确定待同步数据无效。可见,该方案能够快速检查出无效的待同步数据,对于无效的待同步数据无需进行同步操作,因此提高了数据同步的准确率,同时,提高了有效数据的同步速度。23.在第一方面的另一种可能的实现方式中,在所述获取业务服务器的待同步数据之后,所述方法还包括:24.获取预置的字段配置信息,所述字段配置信息包括所述业务服务器设置的业务数据中索引字段对应的数据类型;25.若所述待同步数据中的索引数据类型与所述字段配置信息中的数据类型不一致,确定所述待同步数据无效,向所述业务服务器返回所述待同步数据的数据标识信息;26.若所述待同步数据的索引数据类型与所述字段配置信息中的数据类型一致,确定所述待同步数据有效。27.该方案利用字段配置信息对获得的待同步数据中设置的字段数据类型进行校验,能够确保待同步数据准确写入搜索引擎服务器的索引库中,提高了索引库中数据的准确率。此外,对于无效的待同步数据无需进行同步操作,提高了数据同步的准确率,同时,也提高了有效数据的同步速度。28.在第一方面的又一种可能的实现方式中,所述待同步数据包括数据操作类型,所述向所述搜索引擎服务器发送所述第二数据格式的待同步数据,以触发所述搜索引擎服务器根据所述第二数据格式的待同步数据更新所述目标索引库中的数据步骤,包括:29.在所述数据操作类型为删除操作的情况下,将所述第二数据格式的待同步数据写入删除数据集合,生成删除数据指令并发送至所述搜索引擎服务器,以触发所述搜索引擎服务器删除所述目标索引库中所述删除数据集合对应的数据;30.在所述数据操作类型为更新操作的情况下,将所述第二数据格式的同步数据写入更新数据集合,生成更新数据指令并发送至所述搜索引擎服务器,以触发所述搜索引擎服务器更新所述目标索引库中所述更新数据集合对应的数据;31.在所述数据操作类型为新增数据操作的情况下,将所述第二数据格式的待同步数据写入新增数据集合,生成新增数据指令并发送至所述搜索引擎服务器,以触发所述搜索引擎服务器向所述目标索引库写入所述新增数据集合对应的数据。32.该方案根据待同步数据中不同的数据操作类型对待同步数据进行分流,将具有相同数据操作类型的数据写入相应的数据集合中,数据分流和数据同步并行执行,提高数据同步效率。33.第二方面,本技术还提供了一种数据同步方法,该方法应用于业务服务器,该方法包括:34.获取待同步的业务数据;35.转换所述业务数据的数据格式为第一数据格式,得到待同步数据,所述待同步数据包括索引数据类型;36.发送所述待同步数据至数据同步服务器,所述数据同步服务器用于确定所述搜索引擎服务器中与所述索引数据类型相匹配的目标索引库,转换所述待同步数据的第一数据格式为第二数据格式并发送至所述搜索引擎服务器,所述搜索引擎服务器用于根据所述第二数据格式的待同步数据更新所述目标索引库中的数据。37.该方案中,业务服务器将待同步的业务数据的数据格式转换为第一数据格式,并发送至数据同步服务器进行数据同步操作。数据同步服务器将该第一数据格式转换为搜索引擎服务器所支持的第二数据格式,进而将第二数据格式的待同步数据更新至目标索引库中。利用该方案不需要针对不同领域的业务系统单独开发相应的数据同步系统,因此,降低了数据同步系统的开发及维护成本。38.在第二方面的一种可能的实现方式中,所述转换所述业务数据的数据格式为第一数据格式,得到待同步数据步骤,包括:39.提取所述业务数据的关键字段数据和非关键字段数据,其中,所述关键字段数据包括数据主键、索引数据类型和数据操作类型,所述非关键字段数据是所述业务数据中除所述关键字段数据之外的其他字段数据;40.将所述关键字段数据写入所述第一数据格式中与所述关键字段数据相匹配的字段内;41.将所述非关键字段数据写入所述字段集合,所述字段集合中的数据包括字段名称和字段数据内容。42.在第二方面的另一种可能的实现方式中,所述方法还包括:43.接收数据查询请求,发送所述数据查询请求至所述搜索引擎服务器;44.接收所述搜索引擎服务器响应所述查询请求返回的第一数据的第一数据指纹;45.响应所述数据查询请求,从所述业务服务器的数据库中查询与所述数据查询请求相匹配的第二数据的第二数据指纹;46.当所述第一数据指纹与所述第二数据指纹不同时,根据所述第二数据确定待修复数据,并发送所述待修复数据至所述数据同步服务器,所述数据同步服务器用于发送所述待修复数据至所述搜索引擎服务器,所述搜索引擎服务器用于根据所述待修复数据更新所述第一数据。47.该方案在接收到用户的数据查询请求后,同步查询搜索引擎服务器和业务服务器获得相对应的数据,当搜索引擎服务器中的数据与业务服务器中的数据不一致时,自动将业务服务器中的数据同步至搜索引擎服务器中,从而保证搜索引擎服务器中数据的准确性,提高数据查询的准确率。48.在第二方面的又一种可能的实现方式中,所述第一数据指纹包括至少两个第一数据子指纹,每个所述第一数据子指纹根据所述第一数据中的部分字段的数据生成,且不同所述第一数据子指纹对应的字段不同;所述第二数据指纹包括至少两个第二数据子指纹,每个所述第二数据子指纹根据所述第二数据中的部分字段的数据生成,且不同所述第二数据子指纹对应的字段不同;49.所述当所述第一数据指纹与所述第二数据指纹不同时,根据所述第二数据确定待修复数据,包括:50.当所述第二数据中第一部分字段对应的第二数据子指纹与所述第一数据中相同字段对应的第一数据子指纹不同时,确定所述第二数据中第一部分字段对应的数据以及与所述第一部分字段具有预设关联关系的其他数据为所述待修复数据。51.该方案针对第一数据和第二数据中的部分字段生成相应的数据指纹,识别出两个数据中内容不同的字段,进一步确定该字段以及与该字段具有关联关系的其他数据为待修复数据,可见,待修复数据可以精确到字段,提高了数据修复效率。52.第三方面,本技术还提供了一种数据同步方法,应用于实现数据同步的系统,所述系统包括业务服务器、数据同步服务器和搜索引擎服务器,所述方法包括:53.所述业务服务器获取待同步的业务数据,转换所述业务数据的数据格式为第一数据格式得到待同步数据,所述待同步数据包括索引数据类型;54.所述业务服务器向所述数据同步服务器发送所述待同步数据;55.所述数据同步服务器确定所述搜索引擎服务器中与所述索引数据类型相匹配的目标索引库;56.所述数据同步服务器将所述待同步数据的第一数据格式转换为第二数据格式,并发送至所述搜索引擎服务器,所述第二数据格式为所述目标索引库对应的数据格式;57.所述搜索引擎服务器根据所述第二数据格式的待同步数据更新所述目标索引库中的数据。58.第四方面,本技术还提供了一种数据同步装置,其特征在于,应用于数据同步服务器,所述装置包括:59.获取单元,被配置为执行获取业务服务器的待同步数据,所述待同步数据包括索引数据类型;60.索引库确定单元,被配置为执行确定搜索引擎服务器中与所述索引数据类型相匹配的目标索引库;61.数据格式转换单元,被配置为执行转换所述待同步数据的第一数据格式为第二数据格式,所述第二数据格式为所述目标索引库对应的数据格式;62.发送单元,被配置为执行向所述搜索引擎服务器发送所述第二数据格式的待同步数据,以触发所述搜索引擎服务器根据所述第二数据格式的待同步数据更新所述目标索引库中的数据。63.在第四方面的一种可能的实现方式中,所述待同步数据包括数据操作类型,所述数据同步装置还包括:64.关联数据确定单元,被配置为执行当所述待同步数据的数据操作类型为更新操作时,根据预存的预设关联关系,确定与所述待同步数据相关联的关联数据,所述预设关联关系用于表征所述业务服务器中的数据之间的关联关系;65.关联数据发送单元,被配置为执行根据待同步数据及关联数据生成关联数据更新指令,并发送至搜索引擎服务器,所述关联数据更新指令用于使所述搜索引擎服务器更新所述关联数据。66.在第四方面的另一种可能的实现方式中,所述待同步数据包括数据标识和字段集合,所述字段集合包括索引字段的字段名称及字段内容;所述数据格式转换单元,包括:67.提取子单元,被配置为执行提取所述待同步数据中的数据标识,以及所述字段集合中索引字段对应的字段名称及字段内容;68.格式转换子单元,被配置为执行将所述数据标识、所述字段名称及所述字段内容填充至第二数据格式对应的各字段中,得到所述第二数据格式的待同步数据。69.在第四方面的又一种可能的实现方式中,所述装置还包括:70.索引库创建触发单元,被配置为执行当所述搜索引擎服务器中不存在所述目标索引库或所述目标索引库不正常时,触发所述搜索引擎服务器构建所述目标索引库。71.在第四方面的再一种可能的实现方式中,所述装置还包括:72.第一数据有效确定单元,被配置为执行当所述待同步数据的关键字段存在且所述关键字段的数据内容正确时,确定所述待同步数据有效;73.第一问题数据返回单元,被配置为执行当所述关键字段不存在或所述关键字段的数据内容不正确时,确定所述待同步数据无效,并向所述业务服务器返回所述待同步数据的数据标识信息。74.在第四方面的另一种可能的实现方式中,所述装置还包括:75.字段配置信息获取单元,被配置为执行获取预置的字段配置信息,所述字段配置信息包括所述业务服务器设置的业务数据中索引字段对应的数据类型;76.数据类型比较单元,被配置为执行比较所述待同步数据中索引数据类型与所述字段配置信息中的数据类型是否一致;77.第二数据有效确定单元,被配置为当所述待同步数据中的索引数据类型与所述字段配置信息中的数据类型一致,确定所述待同步数据有效;78.第二问题数据返回单元,被配置为执行当所述待同步数据中的索引数据类型与所述字段配置信息中的数据类型不一致时,向所述业务服务器返回所述待同步数据的数据标识信息。79.在第四方面的又一种可能的实现方式中,所述发送单元包括:80.删除子单元,被配置为执行在所述数据操作类型为删除操作的情况下,将所述第二数据格式的待同步数据写入删除数据集合,生成删除数据指令并发送至所述搜索引擎服务器,以触发所述搜索引擎服务器删除所述目标索引库中所述删除数据集合对应的数据;81.更新子单元,被配置为执行在所述数据操作类型为更新操作的情况下,将所述第二数据格式的同步数据写入更新数据集合,生成更新数据指令并发送至所述搜索引擎服务器,以触发所述搜索引擎服务器更新所述目标索引库中所述更新数据集合对应的数据;82.新增子单元,被配置为执行在所述数据操作类型为新增数据操作的情况下,将所述第二数据格式的待同步数据写入新增数据集合,生成新增数据指令并发送至所述搜索引擎服务器,以触发所述搜索引擎服务器向所述目标索引库写入所述新增数据集合对应的数据。83.第五方面,本技术还提供了一种数据同步装置,应用于业务服务器,包括:84.获取单元,被配置为执行获取待同步的业务数据;85.数据格式转换单元,被配置为执行转换所述业务数据的数据格式为第一数据格式得到待同步数据,所述待同步数据包括索引数据类型;86.发送单元,被配置为执行向数据同步服务器发送所述待同步数据,所述数据同步服务器用于确定搜索引擎服务器中与所述索引数据类型相匹配的目标索引库,转换所述待同步数据的第一数据格式为第二数据格式并发送至所述搜索引擎服务器,所述搜索引擎服务器用于根据所述第二数据格式的待同步数据更新所述目标索引库中的数据。87.在第五方面的一种可能的实现方式中,所述数据格式转换单元包括:88.字段提取子单元,被配置为执行提取所述业务数据的关键字段数据和非关键字段数据,其中,所述关键字段数据包括数据主键、索引数据类型和数据操作类型,所述非关键字段数据是所述业务数据中除所述关键字段数据之外的其他字段数据;89.关键字段转换子单元,被配置为执行将所述关键字段数据写入所述第一数据格式中与所述关键字段数据相匹配的字段内;90.非关键字段转换子单元,被配置为执行将所述非关键字段数据写入所述字段集合,所述字段集合中的数据包括字段名称和字段数据内容。91.在第五方面的另一种可能的实现方式中,所述装置还包括:92.第一查询单元,被配置为执行接收数据查询请求,并发送所述数据查询请求至搜索引擎服务器;93.第一接收单元,被配置为执行接收所述搜索引擎服务器响应所述查询请求返回的第一数据的第一数据指纹;94.第二查询单元,被配置为执行响应所述数据查询请求,从所述业务服务器的数据库中查询与所述数据查询请求相匹配的第二数据的第二数据指纹;95.修复数据确定单元,被配置为执行当所述第一数据指纹与所述第二数据指纹不同时,根据所述第二数据确定待修复数据,并发送所述待修复数据至所述数据同步服务器,所述数据同步服务器用于发送所述待修复数据至所述搜索引擎服务器,所述搜索引擎服务器用于根据所述待修复数据更新所述第一数据。96.在第五方面的又一种可能的实现方式中,所述第一数据指纹包括至少两个第一数据子指纹,每个所述第一数据子指纹根据所述第一数据中的部分字段的数据生成,且不同所述第一数据子指纹对应的字段不同;所述第二数据指纹包括至少两个第二数据子指纹,每个所述第二数据子指纹根据所述第二数据中的部分字段的数据生成,且不同所述第二数据子指纹对应的字段不同;97.所述修复数据确定单元被配置为执行当所述第一数据指纹与所述第二数据指纹不同时,根据所述第二数据确定待修复数据时,被配置为执行:98.当所述第二数据中第一部分字段对应的第二数据子指纹与所述第一数据中相同字段对应的第一数据子指纹不同时,确定所述第二数据中第一部分字段对应的数据以及与所述第一部分字段具有预设关联关系的其他数据为所述待修复数据。99.第六方面,本技术还提供了一种同步服务器,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第一方面或第一方面的任一种可能的实现方式所述的数据同步方法。100.第七方面,本技术还提供了一种业务服务器,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第二方面或第二方面的任一种可能的实现方式所述的数据同步方法。101.第八方面,本技术还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由同步服务器的处理器执行时,使得所述同步服务器能够执行第一方面或第一方面的任一种可能的实现方式所述的数据同步方法。102.第九方面,本技术还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由业务服务器的处理器执行时,使得所述业务服务器能够执行第二方面或第二方面的任一种可能的实现方式所述的数据同步方法。103.第十方面,本技术还提供了一种计算机程序产品,当所述计算机程序产品在同步服务器上执行时,适于执行初始化有第一方面或第一方面的任一种可能的实现方式所述数据同步方法的程序。104.第十一方面,本技术还提供了一种计算机程序产品,当所述计算机程序产品在业务服务器上执行时,适于执行初始化有第二方面或第二方面的任一种可能的实现方式所述数据同步方法的程序。105.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明106.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。107.图1是根据一示例性实施例示出的一种实现数据同步方法的系统的结构示意图;108.图2是根据一示例性实施例示出的一种数据同步方法的流程图;109.图3是根据一示例性实施例示出的一种数据同步过程的示意图;110.图4是根据一示例性实施例提供的另一种数据同步方法的流程图;111.图5是根据一示例性实施例示出的又一种数据同步方法的流程图;112.图6是根据一示例性实施例示出的一种检查待同步数据是否正常过程的流程图;113.图7是根据一示例性实施例示出的另一种检查待同步数据是否正常过程的流程图;114.图8是根据一示例性实施例示出的一种检查目标索引库是否正常过程的流程图;115.图9是根据一示例性实施例示出的一种实现数据同步的系统的示意图;116.图10是根据一示例性实施例示出的一种基于业务服务器的一致性修复过程的流程图;117.图11是根据一示例性实施例示出的一种数据同步装置框图;118.图12是根据一示例性实施例示出的又一种数据同步装置的框图;119.图13是根据一示例性实施例示出的另一种数据同步装置的框图;120.图14是根据一示例性实施例示出的又一种数据同步装置框图121.图15是根据一示例性实施例示出的另一种数据同步装置的框图122.图16是根据一示例性实施例示出的一种服务器框图。具体实施方式123.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。124.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。125.图1是根据一示例性实施例示出的一种实现数据同步方法的系统的结构示意图,如图1所示,该系统包括业务服务器1、数据同步服务器2和搜索引擎服务器3,其中,业务服务器1分别与数据同步服务器2和搜索引擎服务器3进行通信,数据同步服务器2还可以与搜索引擎服务器3进行通信。126.业务服务器1上运行有业务系统,业务服务器1将业务系统产生的业务数据发送至数据同步服务器2。127.数据同步服务器2再将该数据更新至搜索引擎服务器3的索引库中。128.搜索引擎服务器3,对外提供数据服务,如数据查询服务。129.业务服务器1在接收到用户的数据查询请求后,将该请求发送至搜索引擎服务器3,搜索引擎服务器3可以从索引库中查询到与数据查询请求相匹配的数据,并返回至业务服务器1。130.在一种应用场景中,不同业务领域的业务系统所需要的数据有所差异,因此,不同业务系统中业务数据的组织形式可能不同。在一示例性实施例中,业务服务器1能够将业务数据转换为第一数据格式,该第一数据格式即入库数据格式。131.在一示例性实施例中,数据同步服务器2将业务服务器发送的第一数据格式的待同步数据转换为目标数据格式后更新至搜索引擎服务器3,该目标数据格式即第二数据格式。132.下面将结合图2详细介绍同步服务器2将业务服务器1中的数据更新至搜索引擎服务器3的过程。133.图2是根据一示例性实施例示出的一种数据同步方法的流程图,如图2所示,该方法应用于图1所示的数据同步服务器,包括以下步骤。134.在s110中,业务服务器获取待同步的业务数据,并转换为第一数据格式。135.在一示例性实施例中,不同业务系统对应的业务服务器中都预先配置有上述的第一数据格式,当业务系统需要向搜索引擎服务器同步数据时,将需要同步的数据的数据格式转换为第一数据格式。136.在一种可能的实现方式中,第一数据格式可以包括doc模型和docfield模型。137.其中,如表1和图3所示,doc模型约定了待同步数据的关键字段数据,如数据主键字段id、索引数据类型type(由业务服务器的业务数据决定,如任务、商品、用户名等)、数据操作类型action、字段集合docfields等,其中,docfields字段中数据是待同步数据的非关键字段数据。138.表1139.字段类型说明idstring(字符串)数据主键typestring(字符串)索引数据类型,默认为_docactionenum(枚举类型)操作类型有insert,update,deletedocfieldslist<docfield>(结构体)字段集合140.如表2所示,docfield模型约定了待同步数据中除关键字段之外的其他字段(即非关键字段),如,索引字段的字段名称name、字段数据类型type和字段数据内容values。141.表2[0142][0143]如图3所示,在将待同步的业务数据转换为第一数据格式时,将业务数据的关键字段转换为doc模型,以及,将业务数据的非关键字段转换为docfield模型规定的格式;转换得到的docfield模型的数据中的每个字段都包括字段名称、字段数据类型和字段内容。[0144]所有业务系统中的业务数据模型最终都会转换为上述的第一数据格式,然后,再发送至数据同步服务器执行相应的入库操作。[0145]在s120中,业务服务器将待同步数据发送至数据同步服务器。[0146]待同步数据是指业务服务器中需要更新至搜索引擎服务器的索引库中的数据,而且,该待同步数据的数据格式已经由业务服务器转换为预先配置的第一数据格式。[0147]在s130中,数据同步服务器确定搜索引擎服务器中与索引数据类型相匹配的目标索引库。[0148]数据同步服务器接收到的待同步数据中包含索引数据类型,根据该索引数据类型可以确定搜索引擎服务器中与该待同步数据相匹配的索引库。[0149]在一示例性实施例中,数据同步服务器从待同步数据中获取索引数据类型,基于索引数据类型与索引库之间的映射关系确定搜索引擎服务器中与该待同步数据相匹配的目标索引库。[0150]在一示例性实施例中,业务服务器首次向数据同步服务器进行数据同步时,会向数据同步服务器发送索引数据类型与索引库之间的映射关系,数据同步服务器内预先存储有索引数据类型与索引库之间的映射关系。当数据同步服务器接收到业务服务器发送的待同步数据后,根据预存的索引数据类型与索引库之间的映射关系,确定该待同步数据对应的目标索引库的索引库信息,如索引库名称。[0151]进一步,数据同步服务器查询搜索引擎服务器中是否存在该目标索引库。例如,向搜索引擎服务器发送目标索引库的索引库名称,查询搜索引擎服务器中是否存在与该索引库名称对应的索引库,若存在,则确定搜索引擎服务器中存在该目标索引库;若不存在,则确定搜索引擎服务器中不存在该目标索引库。进一步地,触发搜索引擎服务器根据索引库配置信息构建目标索引库。[0152]在一示例性实施例中,业务服务器首次向数据同步服务器进行数据同步时,向数据同步服务器发送索引库配置信息,例如,在发送索引数据类型与索引库之间的映射关系的同时,发送索引库配置信息。该索引库配置信息可以包括索引库结构信息,以及,索引库中各字段的属性信息,如索引字段的名称、数据类型、数据内容等。数据同步服务器预先将该索引库配置信息发送给搜索引擎服务器,以便搜索引擎服务器根据索引库配置信息构建相应的索引库。[0153]在另一示例性实施例中,如果搜索引擎服务器中包含目标索引库,进一步检查目标索引库是否正常;如果该目标索引库的索引库结构符合预设配置,则确定索引库正常;如果该目标索引库的数据库结构不符合预设配置,则确定目标索引库不正常,此种情况下,需要触发搜索引擎服务器构建与该索引数据类型相匹配的索引库,即构建目标索引库。[0154]在s140中,数据同步服务器将待同步数据的第一数据格式转换为第二数据格式。[0155]在一示例性实施例中,第二数据格式是搜索引擎服务器支持的数据格式,例如,键值对格式。[0156]下面结合示例介绍第一数据格式转换为第二数据格式的过程:[0157]例如,第一数据格式为表1和表2所示的文档数据格式,即,doc模型格式(表1所示),doc模型中包括docfield模型(表2所示)格式的docfields字段,第二数据格式的数据为(id,map)映射格式。[0158]其中,id为doc格式中的数据主键id,map为docfield的(name,values)的映射,name表示docfield中字段名称,values表示docfield中的字段值,如果docfield中的values为object类型时,需要将object转换为(key,value)的映射形式。[0159]下面分别针对docfield中value的不同类型逐一进行介绍:[0160]1)docfield的values为单值[0161]第一数据格式的数据:doc(id=1,type=typea,action=update,docfields=[{name=fielda,type=long,values=100}])。[0162]id=1表示该数据的数据主键为1,type=typea表示该数据的索引数据类型为typea,action=update表示该数据对应的操作类型为更新,name=fielda表示该数据的索引字段的名称是fielda,type=long表示该索引字段的数据类型为long,values=100表示该数据的索引字段的数据内容是100。[0163]从第一数据格式中的关键字段中提取数据主键id=1、以及字段集合docfields中索引字段名称及字段值,建立数据主键、字段名称及字段值之间的映射关系,得到第二数据格式的数据为:(1,{fielda=100})。[0164](1,{fielda=100})中,“1”表示该数据的id为1,索引字段对应的名称为fielda,该索引字段对应的数值为100。[0165]2)docfield的values为多值[0166]第一数据格式:doc(id=1,type=typea,action=update,docfields=[{name=fielda,type=long,values=[100,200,300]}])[0167]第二数据格式:(1,{fielda=[100,200,300]}),该数据的id为1,索引字段名称为fielda,该索引字段的字段值为[100,200,300]。[0168]3)docfield的values为单object时[0169]第一数据格式:doc(id=1,type=typea,action=update,docfields=[{name=fielda,type=object,values={subfielda=100,subfieldb=200}}]),该数据中,fielda索引字段包括单值对象,该单值对象包括多个属性字段,分别为subfielda和subfieldb。[0170]第二数据格式为(1,{fielda={subfielda=100,subfieldb=200}}),该数据的id为1,索引字段名称为fielda,fielda.subfielda,fielda.subfieldb,索引字段fielda对应的字段值为{subfielda=100,subfieldb=200},fielda.subfield对应的字段值为100,fielda.subfieldb对应的字段值为200。[0171]4)docfield的values为多object(其中,object的格式应当一致)[0172]第一数据格式:doc(id=1,type=typea,action=update,docfields=[{name=fielda,type=object,values=[{subfielda=100,subfieldb=200},{subfielda=300,subfieldb=400}]}]),该数据表示fielda这一索引字段包括多值对象,且每个对象包括相同的属性字段,即subfielda和subfieldb。[0173]第二数据格式:(1,{fielda=[{subfielda=100,subfieldb=200},{subfielda=300,subfieldb=400}]}),该数据的索引字段为:fielda,fielda.subfielda,fielda.subfieldb。[0174]其中,fielda对应的字段值为[{subfielda=100,subfieldb=200},{subfielda=300,subfieldb=400}],{subfielda=100,subfieldb=200}为一个字段值,{subfielda=300,subfieldb=400}为另一个字段值。[0175]其中,上述示例中,subfielda和subfieldb相关联,例如,subfielda=100与subfieldb=200相关联,subfielda=300与subfieldb=400相关联。如果用户查询subfielda字段为100的数据,则返回{subfielda=100,subfieldb=200};如果查询subfielda字段为300的数据,则返回{subfielda=300,subfieldb=400}。[0176]在s150中,数据同步服务器向搜索引擎服务器发送第二数据格式的待同步数据。[0177]搜索引擎服务器用于根据第二数据格式的待同步数据更新目标索引库中的数据。[0178]为了提高数据同步速度,可以根据不同的数据操作类型对待同步数据进行分流。[0179]在一示例性实施例中,待同步数据中的数据操作类型包括删除操作、新建操作和更新操作,数据同步服务器根据待同步数据中的数据操作类型将所有待同步数据划分至三类集合中,分别为删除数据集合(即d桶)、新建数据集合(即c桶)和更新数据集合(即u桶),并按照删除、新建(或更新)的顺序分别提交给搜索引擎服务器进行同步处理。向搜索引擎服务器发送目标数据格式的待同步数据的过程可以包括以下过程(1)‑(3)。[0180](1)在数据操作类型为删除操作的情况下,将第二数据格式的待同步数据写入删除数据集合,生成删除数据指令并发送至搜索引擎服务器,以触发搜索引擎服务器删除目标索引库中删除数据集合对应的数据。[0181]在一示例性实施例中,删除数据指令包括待删除数据对应的数据标识和索引数据类型,搜索引擎服务器接收到该删除数据指令后,根据索引数据类型确定待删除数据所对应的索引库,并从该索引库中删除数据标识所对应的数据。[0182](2)在数据操作类型为更新操作的情况下,将第二数据格式的同步数据写入更新数据集合,生成更新数据指令并发送至搜索引擎服务器,以触发搜索引擎服务器更新目标索引库中更新数据集合对应的数据;[0183](3)在数据操作类型为新增数据操作的情况下,将第二数据格式的待同步数据写入新增数据集合,生成新增数据指令并发送至搜索引擎服务器,以触发搜索引擎服务器向目标索引库写入新增数据集合对应的数据。[0184]在一示例性实施例中,更新数据集合和新增数据集合可以合并为一个集合,即更新集合。[0185]在一示例性实施例中,数据更新指令包括待更新数据及对应的索引数据类型,搜索引擎服务器接收到该数据更新指令后,根据索引数据类型确定待更新数据对应的索引库,进一步将待更新数据写入该索引库中。[0186]本实施例提供的数据同步方法,数据同步服务器获取业务服务器中的第一数据格式的待同步数据,其中,该待同步数据包括索引数据类型;确定搜索引擎服务器中与索引数据类型相匹配的索引库为与该待同步数据相匹配的目标索引库;进一步,将待同步数据的第一数据格式转换为第二数据格式,并发送至搜索引擎服务器,以使搜索引擎服务器根据第二数据格式的待同步数据更新目标索引库中的数据。由上述过程可知,业务服务器能够将需要同步的数据的数据格式转换为第一数据格式,以及,同步服务器能够将第一数据格式的待同步数据转换为搜索引擎服务器所支持的第二数据格式,进而将第二数据格式的待同步数据更新至目标索引库中。可见,利用该方案不需要针对不同领域的业务系统单独开发相应的数据同步系统,因此,降低了数据同步系统的开发及维护成本。[0187]图4是根据一示例性实施例提供的另一种数据同步方法的流程图,该实施例在向搜索引擎服务器同步待同步数据时,可以更新搜索引擎服务器中与该待同步数据相关联的数据。[0188]如图4所示,该方法在图2所示实施例的基础上还包括以下步骤。[0189]在s210中,在确定待同步数据的数据操作类型为更新操作的情况下,根据预存的预设关联关系,确定与待同步数据相关联的关联数据。[0190]在业务服务器中,业务数据分别存储在不同的表中,例如,业务数据模型包括任务表和用户表,其中,任务表主要用于存储业务服务器中的任务数据,用户表主要用于存储用户的个人信息;而任务与用户之间具有一定关联关系,例如,任务信息中包含用户信息,如用于表明完成该任务的用户。这种关联关系由业务服务器根据业务数据的特点预先配置。数据同步服务器可以预先从业务服务器中获得数据间的预设关联关系并存储至数据同步服务器中。[0191]数据同步服务器根据业务服务器设定的业务数据之间的关联关系,确定与待同步数据对应的预设关联关系,以及根据该预设关联关系确定与该待同步数据相关联的存储在其他索引库中的关联数据。[0192]在s220中,根据待同步数据及关联数据,生成关联数据更新指令并发送至搜索引擎服务器。[0193]关联数据更新指令用于触发搜索引擎服务器更新对应的索引库中与待同步数据相对应的关联数据。[0194]在s230中,搜索引擎服务器响应关联数据更新指令更新关联数据。[0195]在一示例性实施例中,数据同步服务器在确定出与待同步数据相关联的关联数据之后,生成关联数据更新指令并发送至搜索引擎服务器,关联数据更新指令可以包括与待同步数据相关联的关联数据的关联字段,以及关联字段对应的旧值和更新值等,搜索引擎服务器根据该指令更新该关联数据。[0196]例如,搜索引擎服务器中包括索引数据类型为任务的索引库,称为任务索引库,以及,索引数据类型为用户的索引库,称为用户索引库。任务索引库中的数据中包含用户名字段,userid,即,任务索引库与用户索引库的关联字段是用户名字段。如果某一用户修改用户索引库中自己的用户名(即userid)后,该方案会同步修改任务索引库中该用户对应的所有任务数据中的用户名。[0197]本实施例提供的数据同步方法,数据同步服务器在将待同步数据更新到搜索引擎服务器中对应的索引库的过程中,能够更新搜索引擎服务器的其他索引库中与该待同步数据相关联的关联数据,该方案减少了业务服务器与搜索引擎服务器之间的数据同步次数,因此缩短了数据同步过程耗用的时长,提高了数据同步效率。[0198]图5是根据一示例性实施例示出的又一种数据同步方法的流程图,该方法应用于数据同步服务器,如图5所示,该方法包括以下步骤。[0199]在本公开的其它示例性实施例中,还可以在图4所示实施例的基础上增加以下步骤中的s310~s350,其实现过程相同,此处不再赘述。[0200]在s300中,数据同步服务器获取业务服务器中的待同步数据。[0201]在s310中,数据同步服务器检查待同步数据是否有效;如果待同步数据有效,则执行s320;如果待同步数据无效,则忽略该条待同步数据并继续处理下一条待同步数据。[0202]在一种可能的实现方式中,如图6所示,检查待同步数据是否有效的过程可以包括以下步骤。[0203]在s3111中,检查待同步数据的关键字段是否存在;如果存在则执行s3112;如果不存在,则执行s3113。[0204]在s3112中,继续检查关键字段的数据内容是否正确;如果数据内容正确,则执行s3113;如果数据内容不正确,则执行s3114。[0205]在一示例性实施例,关键字段可以包括但不限于:数据主键字段id、索引数据类型字段type、数据操作类型action等。[0206]数据同步服务器根据数据主键字段id判断数据的唯一性,如果关键字段id不存在,则认为该数据不正常。[0207]数据同步服务器根据索引数据类型字段type确定目标索引库,如果该关键字段不存在,则认为该数据不正常。[0208]数据同步服务器根据数据操作类型action字段确定待同步数据的同步操作类型,如果该关键字段不存在,则认为该数据不正常。[0209]如果待同步数据中包括docfields字段,还需要进一步判断docfields字段中的name、type和values等字段是否存在,若任一字段不存在则确定该待同步数据不正常。[0210]在s3113中,数据同步服务器确定待同步数据有效。[0211]数据同步服务器确定待同步数据有效后,继续执行s320。[0212]在s3114中,数据同步服务器确定待同步数据无效。[0213]如果确定待同步数据不正常,则记录该待同步数据不正常,并将该待同步数据作为错误数据返回给业务服务器,继续处理下一条待同步数据。在一示例性实施例中,向业务服务器返回该待同步数据的数据主键,继续处理下一条待同步的数据。[0214]本示例在接收到待同步数据后,判断待同步数据的关键字段信息是否准确,如果关键字段信息不准确,则确定该待同步数据无效。利用该方案能够提前检查出无效的待同步数据,提高了数据同步的准确率,同时,节省了对无效数据的后续同步操作,因此,提高了有效数据的同步速度。[0215]在另一种可能的实现方式中,在确定待同步数据的关键字段正确之后,还可以继续检查待同步数据的字段数据类型是否正确,如图7所示,检查待同步数据的过程在图6所示实施例的基础上还可以包括以下步骤。[0216]在s3121中,数据同步服务器获取预置的字段配置信息,该字段配置信息包括业务服务器配置的业务数据中预设字段对应的数据类型。[0217]当业务服务器首次通过数据同步服务器进行业务数据同步时,向数据同步服务器发送字段配置信息,数据同步服务器存储该字段配置信息,该字段配置信息配置了业务数据中预设字段(如,需要在索引库中创建索引项的字段)的数据类型。[0218]数据同步服务器将该字段配置信息发送至搜索引擎服务器,搜索引擎服务器根据字段配置信息创建相应的索引库。如果待同步数据中预设字段的数据类型与字段配置信息中的数据类型不同,则导致待同步数据无法写入索引库中。因此,在将待同步数据写入索引库之前,先根据字段配置信息判断待同步数据中预设字段的数据类型是否正确,如果不正确则不执行写索引库的操作。[0219]在s3122中,数据同步服务器根据字段配置信息判断待同步数据中预设字段的数据类型是否正确;如果是,则执行s3123;如果否,则执行s3124。[0220]仍以图3所示的第一数据格式为例进行说明,待同步数据包括符合doc模型和docfield模型的数据内容,数据同步服务器根据预先获得的字段配置信息判断待同步数据中docfield模型的字段数据类型是否正确,如果正确,则确定待同步数据有效;如果不正确,则确定待同步数据无效。[0221]在一种可能的实现方式中,在数据同步服务器中,字段配置信息是后缀为${fieldname}_settings的数据,其中,${fieldname}为字段名称,对于多层级字段,不同字段层级之间用“.”分隔标识,例如,多层级字段名称为a.b.c,其字段层级由高到低依次为a,b,c。${fieldname}的值为待配置字段的字段数据类型。[0222]在s3123中,确定待同步数据有效。[0223]在s3124中,确定待同步数据无效。[0224]如果待同步数据中预设字段的数据类型与字段配置信息中的数据类型不一致,则记录该待同步数据无效,并向业务服务器返回该数据的数据主键,即,数据标识信息。[0225]业务服务器接收到无效数据的数据主键重新发送该待同步数据,或者,业务服务器重新检查该数据主键对应的数据,检查无误后重新向数据同步服务器发送该数据,其中,该检查过程与图6和图7所示的检查过程相同,此处不再赘述。[0226]利用字段配置信息对获得的待同步数据中设置的字段数据类型进行校验,能够确保待同步数据准确写入搜索引擎服务器的索引库中,提高了索引库中数据的准确率。[0227]需要说明的是,上述判断待同步数据中预设字段的数据类型是否一致的过程,一个示例中,在将第二数据格式的待同步数据发送至搜索引擎服务器之前执行,本公开其他示例对该过程的执行顺序不做特殊限制。[0228]此外,待同步数据中预设字段的数据类型的判断过程可以与图6所示的待同步数据的检查过程依次执行,例如,可以先检查待同步数据中的关键字段及关键字段的数据内容,再检查待同步数据中的预设字段的数据类型。或者,也可以先检查待同步数据中预设字段的数据类型,然后检查待同步数据的关键字段及关键字段的数据内容。本公开对此不做特殊限制。[0229]本示例在接收到待同步数据后,根据预先获得的业务服务器配置的字段配置信息,判断待同步数据中预设字段的数据类型是否准确,如果不准确,则确定该待同步数据无效,利用该方案能够提前检查出无效的待同步数据,提高了数据同步的准确率,同时,节省了对无效数据的后续同步操作,因此,提高了数据的同步速度。[0230]在s320中,数据同步服务器确定搜索引擎服务器中与索引数据类型相匹配的目标索引库。[0231]在s330中,数据同步服务器检查搜索引擎服务器中的目标索引库是否正常;如果该目标索引库不正常,则执行s340;如果该目标索引库都正常,则执行s350。[0232]在一种可能的实现方式中,如图8所示,检查索引库是否正常的过程可以包括以下步骤s331~s334。[0233]s331,检查搜索引擎服务器中与待同步数据相匹配的目标索引库是否存在;如果存在则执行s332;如果不存在则执行s333;[0234]数据同步服务器在进行数据同步操作之前,会检查待同步数据相匹配的索引库(即,目标索引库)是否正常,首先检查索引库是否存在。[0235]前已叙及,数据同步服务器中预先存储有索引数据类型与索引库之间的映射关系,当接收到业务服务器发送的待同步数据后,确定待同步数据的索引数据类型,并根据该映射关系确定与该索引数据类型相匹配的目标索引库,进一步检查搜索引擎服务器中是否存在该目标索引库。[0236]例如,数据同步服务器向搜索引擎服务器发送目标索引库的索引库名称,查询搜索引擎服务器中是否存在与该索引库名称对应的索引库,若存在,则确定搜索引擎服务器中存在目标索引库;若不存在,则确定搜索引擎服务器中不存在目标索引库。[0237]s332,检查目标索引库的结构是否符合预设索引库配置,如果符合则执行s333;如果不符合,则执行s334。[0238]确定搜索引擎服务器中存在与待同步数据相匹配的索引库后,继续判断与该待同步数据相匹配的索引库的数据库结构是否符合相应的索引库配置,例如,索引库的map结构是否符合预设的配置,其中,map结构是一种数据结构,即key‑value对,通过key获取value。[0239]在s333中,确定目标索引库正常。[0240]如果搜索引擎服务器中存在与待同步数据的数据索引类型相匹配的索引库,而且,该索引库的结构符合预设索引库配置,则确定该索引库正常,继续执行s350。[0241]如果搜索引擎服务器中不存在目标索引库,或者,存在目标索引库但目标索引库的结构不符合预设索引库配置,则确定目标索引库不正常。[0242]在s334中,确定目标索引库不正常。[0243]在s340中,数据同步服务器触发搜索引擎服务器构建目标索引库。[0244]如果搜索引擎服务器中不存在与待同步数据对应的目标索引库,或者,搜索引擎服务器中的目标索引库不正常,则向搜索引擎服务器发送创建目标索引库的指令,搜索引擎服务器响应该指令根据索引库配置信息重新构建目标索引库。建立目标索引库后继续进行数据同步操作。[0245]前已叙及,索引库配置信息可以由业务服务器首次向数据同步服务器进行数据同步时,向数据同步服务器发送索引库配置信息,数据同步服务器预先将该索引库配置信息发送给搜索引擎服务器。该索引库配置信息可以包括索引库结构信息,以及,索引库中各字段的属性信息,如索引字段的名称、数据类型、数据内容等。搜索引擎服务器根据该索引库配置信息创建相应的索引库。[0246]当数据同步服务器检查待同步数据和该待同步数据相匹配的目标索引库均正常后,继续进行后续的数据同步操作。[0247]在s350中,数据同步服务器转换待同步数据的第一数据格式为第二数据格式,第二数据格式为目标索引库对应的数据格式。[0248]在s360中,数据同步服务器向搜索引擎服务器发送第二数据格式的待同步数据。[0249]在s370中,搜索引擎服务器根据第二数据格式的待同步数据更新目标索引库中的数据。[0250]本示例性实施例以先检查待同步数据后检查目标索引库为例进行说明,在其它示例性实施例中,也可以先检查待同步数据对应的索引库,再检查待同步数据;当然,也可以并行检查待同步数据和目标索引库,本公开对此不做特殊限制。[0251]本实施例提供的数据同步方法,在将待同步数据更新至搜索引擎服务器的索引库中之前,先检查待同步数据和相匹配的目标索引库是否正常;若待同步数据不正常则忽略该条数据,继续处理下一条待同步的数据。如果与待同步数据相匹配的目标索引库不正常则重建索引库后继续执行同步操作。利用该方案能够提前检查出无效的待同步数据,无需对无效的待同步数据进行同步操作,因此提高了数据同步的准确率,同时,提高了有效数据的同步速度。而且,该方案能够提前检查出不正常的索引库,从而确保将待同步数据写入正常的索引库中,提高了待同步数据同步至搜索引擎服务器的速度和准确率。[0252]请参见图9,示出了根据一示例性实施例示出的一种实现数据同步的系统的示意图,如图9所示,实现数据同步的系统包括业务服务器、数据同步服务器和搜索引擎服务器,例如,该系统包括搜索引擎服务器主集群和搜索引擎服务器备集群。[0253]其中,数据同步服务器从业务服务器获取待同步数据的方式包括以下同步方式。[0254]1)数据库binlog同步[0255]该同步方式利用binlog监控工具监控业务服务器的数据库中的数据变动操作,例如,删除操作、新增操作、更新操作(即,修改操作),将变动的数据提交到消息队列中。[0256]数据同步服务器内的消息监控线程监控消息队列中是否有未读取的数据,如果有,则将该未读取的数据作为待同步数据进行后续的数据同步操作。[0257]例如,binlog同步消息为:{"database":"database_x","table"":table_x","type":"update","data":{"id":96558868494896877,"title":"新标题,"deleted":0},"old":{"title":"旧标题"}}。[0258]上述消息中,各个字段的含义如下:[0259]database,表示数据库,database_x表示需要监控数据库名为“x”的数据库;[0260]table,表示数据表,table_x表示需要监控数据表名为“x”的数据表;[0261]type,操作类型,可以包括insert,update,delete等;[0262]data,其后为最新的数据,修改后的数据;[0263]id,表示新数据的id,title表示新数据的标题,“deleted:0”表示数据状态为未删除的数据;old,旧数据,修改前的数据;[0264]从上述binlog数据同步消息中,可以获知业务服务器更新了哪个数据库中哪个数据表中的数据,以及数据当前的状态和变更字段的旧值,数据同步服务器根据这些数据构建第一数据格式进行数据同步。[0265]在本公开的另一个实施例中,数据库binlog同步方式还支持数据加密传输,例如,可以通过aes加密算法对关键字段进行加密传输,保证数据的安全性。binlog在传输数据时根据约定的秘钥对传输的数据进行加密处理,数据接收端根据秘钥对接收到的加密数据的进行解密,提高数据传输的安全性。[0266]一方面,利用消息队列能够将业务服务器和数据同步服务器解耦;另一方面,利用消息队列能够对数据同步过程实现削峰填谷,避免数据丢失,提高数据同步效率。[0267]2)业务服务器推送[0268]该数据同步方式是由业务服务器按照预设推送策略,主动触发向数据同步服务器推送待同步数据。[0269]3)数据同步服务器拉取[0270]该数据同步方式由数据同步服务器按照预设拉取策略,主动从业务服务器拉取业务数据,并同步至搜索引擎服务器中。其中,可以是实时拉取或定时拉取,此外,可以拉取全量数据,或拉取增量数据。[0271]如图9所示,无论是业务服务器推送方式还是数据同步服务器拉取方式,都可以通过api(applicationprogramminginterface,应用程序接口)或grpc接口传输数据。[0272]此外,在本公开的一个实施例中,搜索引擎服务器可以包括主用搜索引擎服务器和备用搜索引擎服务器。而且,主/备用搜索引擎服务器可以由一台服务器实现,或者,有多台独立的服务器构成的服务器集权实现。[0273]本实施例提供的数据同步方法,具有多种数据同步方式,如,基于binlog同步方式、推送同步方式、拉取同步方式,使得该数据同步服务器能够适应各种复杂的系统环境,适用范围更广泛。[0274]在本公开的另一个示例性实施例中,该数据同步方法还提供了一致性修复策略,其中,该一致性修复策略包括以下两类:[0275]1)基于binlog监控对比策略[0276]该一致性修复策略,利用binlog监控工具监控业务数据的变更情况,binlog监控工具通过监控数据库中的数据提交操作获取数据库中发生变更的业务数据,并从数据库中获取发生变更的业务数据的关联数据,将变更的数据及其关联数据推送至数据同步服务器,再由数据同步服务器将这些数据同步至搜索引擎服务器中。该过程即数据同步数据通过binlog监控工具自动从业务服务器的数据库中拉取变更的数据,修复搜索引擎服务器中的数据。[0277]一方面,利用binlog监控对比策略能够弥补业务服务器推送数据或数据同步服务器主动拉取数据过程可能丢失数据的风险,另一方面,针对将一个庞大的领域对象拆成多个关联表进行组织的业务场景,利用binlog监控工具能够获得数据主键,进一步根据数据主键实时从业务服务器中拉取业务对象的完整数据。[0278]2)基于业务服务器的一致性修复策略[0279]如图10所示,基于业务服务器的一致性修复过程可以包括以下步骤。[0280]在s410中,业务服务器接收数据查询请求,并发送至搜索引擎服务器。[0281]当用户需要查询数据时,向业务服务器发送数据查询请求,业务服务器接收到该数据查询请求后发送至搜索引擎服务器。[0282]在s420中,搜索引擎服务器查询与数据查询请求相匹配的第一数据的第一数据指纹,并返回至业务服务器。[0283]数据查询请求中携带待查询数据的数据主键(即id),搜索引擎服务器响应接收到的数据查询请求,从索引库中查找与该数据主键相匹配的数据(即,第一数据),以及该数据的数据指纹,即第一数据指纹。[0284]在一示例性实施例中,将第一数据中的至少部分字段的数据生成一个数据指纹,因此,一条第一数据对应至少一个数据指纹。[0285]数据指纹是根据元数据计算得到的数字指纹,只能从原文计算得到数字指纹,无法从指纹推算出数据原文,因此数字指纹通常用于保证信息传输过程的安全。[0286]在s430中,业务服务器从业务服务器的数据库中查询与数据查询请求相匹配的第二数据的第二数据指纹。[0287]业务服务器接收到用户发送的数据查询请求后,提取要查询的数据主键,即数据的id,从业务服务器的数据库中查询与该id相匹配的第二数据,以及该数据的数据指纹,即第二数据指纹。[0288]在s440中,业务服务器比较第一数据指纹和第二数据指纹是否一致;如果不一致,则执行s450;如果一致,则结束当前流程。[0289]在s450中,业务服务器根据第二数据确定待修复数据,并发送待修复数据至数据同步服务器。[0290]在一示例性实施例中,第一数据包括一个第一数据指纹,第二数据包括一个第二数据指纹。此种情况下,如果第一数据指纹和第二数据指纹不一致,表明搜索引擎服务器返回的第一数据可能存在错误。确定业务服务器查询得到的第二数据为待修复数据。此外,当其他数据表中存在与第二数据具有预设关联关系的关联数据时,确定第二数据以及该关联数据均为待修复数据。[0291]在另一示例性实施例中,第一数据指纹包括至少两个第一数据子指纹,每个第一数据子指纹根据第一数据中的部分字段的数据生成,且不同第一数据子指纹对应的字段不同。[0292]第二数据指纹包括至少两个第二数据子指纹,每个第二数据子指纹根据第二数据中的部分字段的数据生成,且不同第二数据子指纹对应的字段不同。[0293]如果第一数据和第二数据中相同字段部分对应的第一数据子指纹和第二数据子指纹不一致,则确定该相同字段部分的数据为待修复数据。[0294]例如,第一数据中的字段a、b、c的数据内容生成一个第一数据子指纹,同理,第二数据中字段a、b、c的数据内容生成一个第二数据子指纹,该第一数据子指纹与第二数据子指纹不一致,表明第一数据中字段a、b、c的数据内容与第二数据中字段a、b、c的数据内容不相同,因此,确定第二数据中字段a、b、c的数据内容为待修复数据。[0295]此外,如果业务服务器的其他数据表中存在与所述第二数据的字段a、b、c的数据内容相关联的关联数据,则确定该关联数据也是待修复数据。[0296]在s460中,数据同步服务器向搜索引擎服务器发送待修复数据。[0297]在s470中,搜索引擎服务器根据待修复数据更新第一数据。[0298]本实施例提供的数据同步方法,在接收到用户的数据查询请求后,同步查询搜索引擎服务器和业务服务器获得相对应的数据,当搜索引擎服务器中的数据与业务服务器中的数据不一致时,自动将业务服务器中的数据同步至搜索引擎服务器中,从而保证搜索引擎服务器中数据的准确性,提高数据查询的准确率。[0299]图11是根据一示例性实施例示出的一种数据同步装置框图。参照图11,该装置包括:获取单元110、索引库确定单元120、数据格式转换单元130和发送单元140。[0300]获取单元110,被配置为执行获取业务服务器的待同步数据。[0301]待同步数据包括索引数据类型,且待同步数据的数据格式为第一数据格式。[0302]在一示例性实施例中,获取单元包括:第一获取子单元、发送子单元和读取子单元。[0303]第一获取子单元,被配置为执行监测到业务服务器的数据库的数据变更操作后,获取数据变更操作对应的变更数据。[0304]发送子单元,被配置为执行发送变更数据至数据同步消息队列中。[0305]读取子单元,被配置为执行读取数据同步消息队列中的数据,该数据为待同步数据。[0306]索引库确定单元120,被配置为执行确定搜索引擎服务器中与索引数据类型相匹配的目标索引库。[0307]在一示例性实施例中,该数据同步装置还包括:索引库创建触发单元;[0308]该索引库创建触发单元,被配置为执行当搜索引擎服务器中不存在目标索引库或目标索引库不正常时,触发搜索引擎服务器构建目标索引库。[0309]数据格式转换单元130,被配置为执行转换待同步数据的第一数据格式为第二数据格式,第二数据格式为目标索引库对应的数据格式。[0310]在一示例性实施例中,待同步数据包括数据标识和字段集合,字段集合包括索引字段的字段名称及字段内容。该数据格式转换单元包括提取子单元和格式转换子单元。[0311]该提取子单元,被配置为提取待同步数据中的数据标识,以及字段集合中索引字段对应的字段名称及字段内容。[0312]给格式转换子单元,被配置为执行将数据标识、字段名称及字段内容填充至第二数据格式对应的各字段中,得到第二数据格式的待同步数据。[0313]发送单元140,被配置为执行向搜索引擎服务器发送第二数据格式的待同步数据,以触发搜索引擎服务器根据第二数据格式的待同步数据更新目标索引库中的数据。[0314]在一示例性实施例中,发送单元包括:删除子单元、更新子单元和新增子单元。[0315]该删除子单元,被配置为执行在数据操作类型为删除操作的情况下,将第二数据格式的待同步数据写入删除数据集合,生成删除数据指令并发送至搜索引擎服务器,以触发搜索引擎服务器删除目标索引库中删除数据集合对应的数据。[0316]该更新子单元,被配置为执行在数据操作类型为更新操作的情况下,将第二数据格式的同步数据写入更新数据集合,生成更新数据指令并发送至搜索引擎服务器,以触发搜索引擎服务器更新目标索引库中更新数据集合对应的数据。[0317]该新增子单元,被配置为执行在数据操作类型为新增数据操作的情况下,将第二数据格式的待同步数据写入新增数据集合,生成新增数据指令并发送至搜索引擎服务器,以触发搜索引擎服务器向目标索引库写入新增数据集合对应的数据。[0318]本示例性实施例提供的数据同步装置,数据同步服务器获取业务服务器中的第一数据格式的待同步数据,其中,该待同步数据包括索引数据类型;确定搜索引擎服务器中与索引数据类型相匹配的索引库为与该待同步数据相匹配的目标索引库;进一步,将待同步数据的第一数据格式转换为第二数据格式,并发送至搜索引擎服务器,以使搜索引擎服务器根据第二数据格式的待同步数据更新目标索引库中的数据。由上述过程可知,业务服务器能够将需要同步的数据的数据格式转换为第一数据格式,以及,同步服务器能够将第一数据格式的待同步数据转换为搜索引擎服务器所支持的第二数据格式,进而将第二数据格式的待同步数据更新至目标索引库中。可见,利用该方案不需要针对不同领域的业务系统单独开发相应的数据同步系统,因此,降低了数据同步系统的开发及维护成本。[0319]图12是根据一示例性实施例示出的又一种数据同步装置的框图,该装置在图11所示实施例的基础上还可以包括:[0320]关联数据确定单元210,被配置为执行当待同步数据的数据操作类型为更新操作时,根据预存的预设关联关系,确定与待同步数据相关联的关联数据,预设关联关系用于表征业务服务器中的数据之间的关联关系。[0321]关联数据发送单元220,被配置为执行根据待同步数据及关联数据生成关联数据更新指令,并发送至搜索引擎服务器,关联数据更新指令用于使搜索引擎服务器更新关联数据。[0322]本实施例提供的数据同步装置,数据同步服务器在将待同步数据更新到搜索引擎服务器中对应的索引库的过程中,能够更新搜索引擎服务器的其他索引库中与该待同步数据相关联的关联数据,减少了业务服务器与搜索引擎服务器之间的数据同步次数,缩短了数据同步过程的耗时,提高了数据同步效率。[0323]图13是根据一示例性实施例示出的另一种数据同步装置的框图,该装置在上述数据同步装置实施例的基础上还可以包括:数据字段检查单元310、数据内容检查单元320、第一数据有效确定单元330和第一问题数据返回单元340。[0324]数据字段检查单元310,被配置为执行检查待同步数据的关键字段是否存在。[0325]数据内容检查单元320,被配置为执行当关键字段存在时,检查关键字段的数据内容是否正确;若关键字段存在且关键字段的数据内容正确时,确定待同步数据有效,并触发索引库确定单元执行相应的步骤。[0326]第一问题数据返回单元330,被配置为执行当关键字段不存在或关键字段的数据内容不正确时,确定待同步数据无效,并向业务服务器返回待同步数据的数据标识信息。[0327]在另一示例性实施例中,该数据同步装置还可以包括:[0328]字段配置信息获取单元,被配置为执行获取预置的字段配置信息,字段配置信息包括业务服务器设置的业务数据中索引字段对应的数据类型。[0329]数据类型比较单元,被配置为执行比较待同步数据中索引数据类型与字段配置信息中索引字段的数据类型是否一致,若待同步数据中的索引数据类型与字段配置信息中的数据类型一致,确定待同步数据有效,并触发索引库确定单元执行相应的步骤。第二问题数据返回单元,被配置为执行当待同步数据中索引数据类型与字段配置信息中的数据类型不一致时,向业务服务器返回待同步数据的数据标识信息。[0330]本实施例提供的数据同步装置,在将待同步数据更新至搜索引擎服务器的索引库中之前,先检查待同步数据和相匹配的目标索引库是否正常。该方案能够提前检查出无效的待同步数据,从而提高了数据同步的准确率,同时,节省了对无效数据的后续同步操作,因此,提高了有效数据的同步速度。而且,该方案能够提前检查出不正常的索引库,从而确保将待同步数据写入正确的索引库中,提高了将待同步数据同步至搜索引擎服务器的速度和准确率。[0331]图14是根据一示例性实施例示出的又一种数据同步装置框图,该装置应用于业务服务器,如图14所示,该装置可以包括:获取单元410、数据格式转换单元420和发送单元430。[0332]获取单元410,被配置为执行获取待同步的业务数据。[0333]数据格式转换单元420,被配置为执行转换业务数据为第一数据格式,得到待同步数据,待同步数据包括索引数据类型。[0334]在一示例性实施例中,数据格式转换单元420包括:字段提取子单元、关键属性字段转换子单元和其他字段转换子单元。[0335]字段提取子单元,被配置为执行提取业务数据的关键字段数据和非关键字段数据,其中,关键字段数据包括数据主键、索引数据类型和数据操作类型,非关键字段数据是业务数据中除关键字段数据之外的其他字段数据。[0336]关键字段转换子单元,被配置为执行转换将关键字段数据写入第一数据格式中与关键字段数据相匹配的字段内。[0337]非关键字段转换子单元,被配置为执行将非关键字段数据写入字段集合,字段集合中的数据均包括字段名称和字段数据内容。[0338]发送单元430,被配置为执行发送待同步数据至数据同步服务器。[0339]数据同步服务器用于确定搜索引擎服务器中与索引数据类型相匹配的目标索引库,转换待同步数据的第一数据格式为第二数据格式,并发送至搜索引擎服务器。搜索引擎服务器用于根据第二数据格式的待同步数据更新目标索引库中的数据。[0340]本实施例提供的数据同步装置,业务服务器能够将需要同步的数据的数据格式转换为第一数据格式,以及,同步服务器能够将第一数据格式的待同步数据转换为搜索引擎服务器所支持的目标数据格式,进而将第二数据格式的待同步数据更新至相匹配的索引库中。由此可见,该装置不需要针对不同领域的业务系统单独开发相应的数据同步系统,因此,降低了数据同步系统的开发及维护成本。[0341]图15是根据一示例性实施例示出的另一种数据同步装置的框图,该装置在图14所示实施例的基础上还包括:第一查询单元510、第一接收单元520、第二查询单元530和修复数据确定单元540。[0342]第一查询单元510,被配置为执行接收数据查询请求,发送数据查询请求至搜索引擎服务器。[0343]第一接收单元520,被配置为执行接收搜索引擎服务器响应查询请求返回的第一数据的第一数据指纹。[0344]第二查询单元530,被配置为执行响应数据查询请求,从业务服务器的数据库中查询与数据查询请求相匹配的第二数据的第二数据指纹。[0345]修复数据确定单元540,被配置为执行当第一数据指纹与第二数据指纹不一致时,根据第二数据确定待修复数据,并发送待修复数据至数据同步服务器,数据同步服务器用于发送待修复数据至搜索引擎服务器,搜索引擎服务器用于根据待修复数据更新第一数据。[0346]本实施例提供的数据同步装置,在接收到用户的数据查询请求后,同步查询搜索引擎服务器和业务服务器获得相对应的数据,当搜索引擎服务器中的数据与业务服务器中的数据不一致时,自动将业务服务器中的数据同步至搜索引擎服务器中,从而保证搜索引擎服务器中数据的准确性,提高数据查询的准确率。[0347]关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。[0348]图16是根据一示例性实施例示出的一种服务器框图,如图16所示,该服务器包括至少一个处理器610、以及与处理器610连接的至少一个存储器620、总线630;其中,处理器610、存储器620通过总线630完成相互间的通信;处理器610用于调用存储器620中的程序指令,以执行上述应用于数据同步服务器的数据同步方法,或者,用于执行上述的应用于业务服务器的数据同步方法。[0349]在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器620,上述指令可由服务器的处理器610执行以完成上述的数据同步方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd‑rom、磁带、软盘和光数据存储设备等。[0350]在一示例性实施例中,还提供一种计算机程序产品,当该计算机程序产品在服务器上执行时,适于执行初始化有上述的数据同步服务器的数据同步方法,或者,用于执行上述的应用于业务服务器的数据同步方法。[0351]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。[0352]应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献