CN109634975B - 数据同步方法及装置、电子设备及计算机可读存储介质 - Google Patents
数据同步方法及装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109634975B CN109634975B CN201811501932.9A CN201811501932A CN109634975B CN 109634975 B CN109634975 B CN 109634975B CN 201811501932 A CN201811501932 A CN 201811501932A CN 109634975 B CN109634975 B CN 109634975B
- Authority
- CN
- China
- Prior art keywords
- data
- search
- data source
- synchronizing
- updated
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及数据库技术领域,公开了一种数据同步方法及装置、电子设备及计算机可读存储介质。其中,数据同步方法包括:预先建立用于数据同步服务的公共服务组件;基于公共服务组件同步数据源与至少两个搜索库之间的数据;其中,不同的搜索库对应不同的搜索入口。本发明通过搭建公共服务组件实现多个搜索入口的数据库与数据源之间的数据同步,从而大大简化了数据同步的工作。
Description
技术领域
本发明涉及数据库技术领域,特别涉及一种数据同步方法及装置、电子设备及计算机可读存储介质。
背景技术
近年来,餐饮等的在线外卖业务发展迅速,商家、美食以及活动等的数据量十分庞大,因此在线平台一般提供多个搜索入口便于用户快速搜索。
发明人发现相关技术至少存在以下问题:现有中针对不同的搜索入口会搭建独立的数据库以满足搜索应用的需要,而多个搜索入口对应的数据库往往是共用数据源的。由于各搜索入口对应的数据库均需与数据源进行数据同步,而数据源的结构本身可能不同,例如数据源可能是MySQL,Oracle,Mongo等不同类型的多个数据库,且每个搜索入口对应的数据库需要同步的数据可能来自数据源的不同数据库以及不同数据表,因此不同的搜索入口对应的数据库均需要单独实现与数据源之间的数据同步,存在一些重复性的工作,不仅工作繁琐而且增大了工作量。
发明内容
本发明实施方式的目的在于提供一种数据同步方法及装置、电子设备及计算机可读存储介质,通过搭建公共服务组件实现多个搜索入口的数据库与数据源之间的数据同步,从而大大简化了数据同步的工作。
为解决上述技术问题,本发明的实施方式提供了一种数据同步方法,包括:
预先建立用于数据同步服务的公共服务组件;
基于所述公共服务组件同步数据源与至少两个搜索库之间的数据;
其中,不同的搜索库对应不同的搜索入口。
本发明的实施方式还提供了一种数据同步装置,包括:
建立模块,用于预先建立用于数据同步服务的公共服务组件;
同步模块,用于基于所述公共服务组件同步数据源与至少两个搜索库之间的数据;
其中,不同的搜索库对应不同的搜索入口。
本发明的实施方式还提供了一种电子设备,包括:存储器和处理器,存储器存储计算机程序,处理器运行所述计算机程序以实现:
基于预先建立的用于数据同步服务的公共服务组件的同步数据源与至少两个搜索库之间的数据;
其中,不同的搜索库对应不同的搜索入口。
本发明的实施方式还提供了一种计算机可读存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行如前所述的数据同步方法。
本发明实施方式相对于现有技术而言,通过预先建立用于数据同步服务的公共服务组件,并基于所述公共服务组件实现数据源与至少两个搜索库之间的数据同步。从而避免了不同搜索入口的搜索库均采用独立的同步服务组件与数据源进行同步所必须的大量重复性工作,有利于降低成本。
作为一个实施例,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:获取预先配置的待更新字段;确定所述数据源中的所述待更新字段是否有更新,若所述待更新字段有更新,则对所述搜索库中与所述待更新字段对应的字段进行更新。通过预先配置待更新字段,可以实现字段级的更新,摈弃了现有技术中表级或者行级的更新方式,有利于大幅节约数据更新流量。
作为一个实施例,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:定时对所述搜索库中的数据进行全量扫描,若扫描到无效数据,则物理删除所述无效数据。从而可以在搜索库中的数据转换为无效数据时,及时对其进行清理,节省搜索库数据存储空间。
作为一个实施例,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:不将所述数据源的无效数据更新至所述搜索库。从而可避免数据源中大量的无效数据同步至搜索库,从而不仅可以节省搜索库的存储空间,而且有利于提高搜索库的数据响应性能。
作为一个实施例,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:监控所述搜索库中是否存在更新频率大于预设阈值的异常字段;若存在所述异常字段,则调小所述异常字段的更新线程数。通过监控得到更新频率很高的异常字段,并调小异常字段的更新线程数,从而有利于保证搜索库的稳定。
作为一个实施例,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:监控所述数据源与所述至少两个搜索库的有效数据总量是否一致。从而可以及时发现有效数据总量不一致的情况,便于采取适当措施保证搜索库数据的完整性。
作为一个实施例,所述数据同步包括增量更新;所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:监控所述增量更新过程中所述数据源与对应的搜索库之间的有效数据的增量是否一致;若不一致,则同步差异数据至对应的搜索库。从而可以及时发现增量更新的有效数据不一致的情况,便于采取适当措施保证搜索库数据的完整性。
作为一个实施例,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:在所述数据同步过程中,采用数据流式处理将所述数据源的数据更新至对应的搜索库。从而可以保证在处理亿级别等的大数据时的数据库的稳定性。
作为一个实施例,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:采用预设的增量补偿机制将所述数据源的增量数据更新至对应的搜索库。从而防止增量更新时漏同步数据。
作为一个实施例,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:对所述数据源的数据结构进行解析;根据所述数据源的数据结构对所述至少两个搜索库进行同步操作。从而可以节省大量手动指定数据结构的繁琐操作。
作为一个实施例,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:基于所述公共服务组件分别为所述至少两个搜索库建立同步任务;基于所述同步任务分别同步所述数据源与所述至少两个搜索库之间的数据。
附图说明
图1是根据本发明第一实施方式中的数据同步方法流程图;
图2是根据本发明第二实施方式中的数据同步方法流程图;
图3是根据本发明第三实施方式中的数据同步方法流程图;
图4是根据本发明第五实施方式中的数据同步方法流程图;
图5是根据本发明第六实施方式中的数据同步装置的结构示意图;
图6是根据本发明第七实施方式中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本发明所要求保护的技术方案。
本发明的第一实施方式涉及一种数据同步方法,应用于服务器侧。如图1所示,本实施方式的数据同步方法包括:
步骤101:预先建立用于数据同步服务的公共服务组件。
其中,公共服务组件用于提供数据源与多个搜索库之间数据同步服务相关的通用的数据操作,以实现数据源与多个搜索库之间的数据同步。
步骤102:基于公共服务组件同步数据源与至少两个搜索库之间的数据。其中,不同的搜索库对应不同的搜索入口。
举例而言,餐饮等的外卖服务平台,可以提供多个搜索入口,这些搜索入口包括但不限于搜索店铺、美食以及活动等。本实施方式中,可以分别针对不同的搜索入口搭建不同的搜索库,例如店铺搜索库、美食搜索库以及活动搜索库等,不同的搜索库的数据可以整合为一张大的数据表,然不限于此,也可以整合成多个数据表。本实施方式中,不同的搜索库均基于公共服务组件与数据源同步。其中,数据源与搜索库之间的数据同步方式可以为全量不同、增量同步,相应地,公共服务组件即可提供数据源与各搜索库之间的全量以及增量同步服务。然不限于此,公共服务组件可以提供数据源与各搜索库之间的各种通用的同步服务。
在实际应用中,步骤102中,可以通过以下方式基于公共服务组件同步数据源与各搜索库之间的数据:基于公共服务组件分别为各搜索库建立同步任务,基于同步任务分别同步数据源与各搜索库之间的数据。即各搜索库的同步任务均是基于公共服务组件建立,且相互独立。
在一个例子中,步骤102中,在数据同步过程中,采用数据流式处理将数据源的数据更新至对应的搜索库。举例而言,在对美食搜索库进行全量更新时,由于数据源的数据量十分庞大,达到数亿条,由于需要将数据源的数据写入内存并进行处理后再更新至美食搜索库。然而内存空间容量有限,无法一次写入庞大的数据,因此可以采用数据流式处理,即一次写入预设数量的数据并进行处理,处理完毕后释放内存,继续按照预设数量写入数据,直到所有的数据更新完毕。其中,预设数量例如为2000条。通过流式读取数据的方式进行处理,可以达到数据读取效率和搜索库高峰压力方面的平衡。
在实际应用中,步骤102中,在数据同步时,还可以判断数据源的数据是否为无效数据,若数据源的数据为无效数据,则不将无效数据更新至搜索库。其中,无效数据例如是指下线的店铺的相关数据,零库存的商品的相关数据以及下线的活动的相关数据等。其中,可以通过配置中心配置无效数据的筛选规则,例如通过编写SQL(Structured QueryLanguage,结构化查询语言)语句指定无效数据的标识位,例如“1”表示有效数据,“0”表示无效数据。在数据同步时,即可获取无效数据的筛选规则,并根据筛选规则对数据源的数据进行扫描,若扫描到无效数据,则不将无效数据同步至搜索库。值得一提的是,如果数据源中某条数据是无效数据,则即使该数据被更新,其也不会被同步至搜索库。由于数据源中往往存在大量的无效数据,即搜索不需要的数据,因此在同步时通过不同步无效数据可以大幅减少搜索库的数据量,有利于提高搜索库的响应性能。
值得一提的是,在步骤102中,还可以对数据源的数据结构进行解析,并根据数据源的数据结构对各搜索库进行同步操作。具体地,数据源可以是不同类型的数据库的集群。每个数据库中可以包括一个或者多个数据表,每个数据表包括多个字段,字段的数据类型包括但不限于:数值型、字符串型以及日期型等。本实施方式在数据同步时,可以对数据源中的数据结构,例如对数据表中的字段的数据类型等进行解析。从而在将数据源中的数据写入搜索库时,即可根据解析得到的字段的类型进行写入。例如,在同步100条数据时,其中20条数据有数值,而80条数据无数值,此时即可根据解析得到的80条数据的字段类型在搜索库的对应字段赋默认值,例如数值型默认赋值“0”,字符串型默认赋值“空”等。然不限于此,还可以根据解析得到的数据源的数据结构执行其他操作。本实施方式可以替代手动指定字段的数据类型的操作,因此可以节省开发人员的工作量。
本实施方式与现有技术相比,通过将各个搜索入口对应的搜索库进行整合,并基于预设建立的公共服务组件对数据源与各个搜索库之间进行数据同步。公共服务组件即数据源与不同搜索库之间通用的同步操作功能组件,因此,可以避免多搜索库分别开发其与数据源之间的同步更新组件,从而可以大幅大幅降低开发工作量。并且,通过公共服务组件实现数据流式处理,可以在节约内存、保证数据库稳定的情况下实现大量数据的同步;通过公共服务组件实现数据源数据结构的自动解析,可以减少开发人员手动指定数据类型等的工作量。通过公共服务组件过滤无效数据的同步,可以为搜索库瘦身,并提高搜索库的响应性能。另外,本实施方式简单易用,应用方接入成本低,只需要基本的SQL以及数据配置即可使用。
本发明的第二实施方式涉及一种数据同步方法。本实施方式在第一实施方式的基础上做出改进,在第二实施方式中,可以对搜索库中的无效数据进行自动归档,从而实现搜索库的进一步数据瘦身。
本实施方式的预先建立用于数据同步服务的公共服务组件的步骤与第一实施方式的步骤101相同此处不再赘述。本实施方式的基于公共服务组件同步数据源与至少两个搜索库之间的数据的步骤在第一实施方式的基础上还增加了自动归档步骤。如图2所示,自动归档步骤包括:
步骤201:对搜索库中的数据进行扫描。
其中,多个搜索库可以同时进行扫描,也可以在不同的时间段内进行扫描。
步骤202:是否扫描到无效数据,若扫描到无效数据,则执行步骤203,若未扫描到无效数据,则返回步骤201。
在之前的同步过程中,将某一条有效数据同步到了搜索库中。当数据源中将该数据更新为无效数据时,就意味着搜索库中落地了一条无效数据。无效数据的筛选规则可以在配置中心手动配置,此处不再赘述。
步骤203:物理删除无效数据。
物理删除无效数据后,还可以进行归档处理。从而达到搜索库进一步的数据瘦身目的。
步骤204:是否完成全量扫描,若完成全量扫描,则结束本次自动归档步骤。若未完成全量扫描,则返回步骤201。
其中,步骤201~步骤204完成了对搜索库中的数据的全量扫描,并在扫描到无效数据时,对其进行物理删除,达到数据瘦身的目的。具体地,步骤201~步骤204可以定时进行,例如可以在每天完成全量更新之后进行,当然也可以在进行全量更新之前进行。本实施方式对于自动归档的频率不做具体限制。
值得一提的是,在实际应用中,还可以将数据源与搜索库的数据进行双向对比,例如先拿数据源的源表与搜索库的目的表对比,再拿目标表与源表id进行对比,实现双向同步,以解决源表物理删除造成搜索库存在无效数据的问题。
本实施方式通过对搜索库中的无效数据进行物理删除,从而可以达到搜索库进一步瘦身的目的。通过自动归档以及不同步无效数据等的数据瘦身方式,确保搜索库只存储数据源中有效可用的数据,大幅降低搜索库的存储压力。通过测试数据可以发现,某些搜索库数据只有数据源的20%、甚至更少,或者只有数据源的50%等,大大提高数据存储以及数据查询效率。
本发明的第三实施方式涉及一种数据同步方法。本实施方式在前述实施方式的基础上做出改进,在第三实施方式中,提出了字段级的数据更新同步方式,从而实现了差异化同步,可以大幅减少同步数据流量。
本实施方式的预先建立用于数据同步服务的公共服务组件的步骤与第一实施方式的步骤101相同此处不再赘述。本实施方式的基于公共服务组件同步数据源与至少两个搜索库之间的数据的步骤在前述实施方式的基础上还增加了字段级别的校验步骤以及字段级别的同步方式。
如图3所示,本实施方式在数据同步时,还包括以下步骤:
步骤301:扫描预先配置的待更新字段。
其中,待更新字段可以动态配置,例如为全量更新和增量更新分别配置待更新字段。步骤301中,可以采用数据流式处理技术,每次扫描预设数量的待更新字段。
步骤302:判断是否扫描到更新的字段,若未扫描到更新的字段,则执行步骤304,若扫描到更新的字段,则执行步骤303。
其中,可以根据时间戳确定数据源中的字段是否被更新,此处不再赘述。
步骤303:对搜索库中与更新的字段对应的字段进行更新。
步骤304:判断是否扫描完成预先配置的待更新字段,若未扫描完成预先配置的待更新字段,则返回步骤301,若扫描完成预先配置的待更新字段,则结束。
通过步骤301~步骤304实现了获取预先配置的待更新字段,并确定数据源中的待更新字段是否有更新,若待更新字段有更新,则对搜索库中与待更新字段对应的字段进行更新。
因此,本实施方式通过对数据源中的数据进行字段级别的更新校验,并以字段为单位进行数据同步,例如一次可同步一个或者多个字段。这样相比于现有技术的表级别的数据同步而言,只要表中的某一行数据中的某些字段被更新,就需要进行数据同步,而本实施方式只有在期望更新的字段被更新时,才执行对应的同步操作,从而可以大幅降低同步数据流量,有利于数据库稳定的工作。
本发明的第四实施方式涉及一种数据同步方法。本实施方式在前述实施方式的基础上做出改进,在第四实施方式中,进一步对增量更新的延迟漏同步进行了补偿,保证了增量更新的数据完整性。
本实施方式的预先建立用于数据同步服务的公共服务组件的步骤与第一实施方式的步骤101相同此处不再赘述。本实施方式的基于公共服务组件实同步数据源与至少两个搜索库之间的数据的步骤在前述实施方式的基础上还增加增量更新补偿机制。
本实施方式的数据同步过程还包括以下步骤:采用预设的增量补偿机制将数据源的增量数据更新至对应的搜索库。
在实际应用中,增量更新可能存在增量更新延迟问题。一般而言,数据源可以是数据库集群。数据源包括主库以及多个从库,主库例如主要用于写入数据,各个从库均需与主库进行数据同步,但是各个从库与主库之间的同步可能出现延迟。各搜索库则与从库进行数据同步从而实现与数据源的同步,并且搜索库会与不同的从库进行同步,由于增强更新一般按照开始时间、结束时间不断向前推进,但是由于延迟导致的各个从库之间的数据的不一致性,在搜索库与不同的从库进行数据更新时,就可能存在漏同步的问题。本实施方式通过增量更新补偿机制,即在进行增量更新时,将增量更新的开始时间以及结束时间向前推进一定的时间,例如向前推进一个小时,从而可以解决增量更新漏同步的问题。
本实施方式通过采用增量更新同步机制,可以有效解决增量更新漏同步问题,保证增量更新数据的一致性,保证搜索数据稳定。
本发明的第五实施方式涉及一种数据同步方法。本实施方式在前述实施方式的基础上做出改进,在第五实施方式中,提出了多种监控方式,在此基础上可以确保数据库工作的稳定性以及数据同步的完整性。
本实施方式的预先建立用于数据同步服务的公共服务组件的步骤与第一实施方式的步骤101相同此处不再赘述。本实施方式的基于公共服务组件同步数据源与至少两个搜索库之间的数据的步骤在前述实施方式的基础上还增加了多种监控方式。
如图4所示,本实施方式在数据同步时,还包括以下步骤:
步骤401:监控搜索库中是否存在更新频率大于预设阈值的异常字段,若存在异常字段,则执行步骤402,反之,则返回步骤401。
其中,可以为不同的字段动态配置不同的更新频率阈值,其中,更新频率阈值可以基于搜索库的稳定性设置,但不限于此。举例而言,配送范围的更新频率阈值是每秒100次。由于在出现恶劣天气时,配送范围会被不断的调整,因此,配送范围字段的更新频率可能会过高影响数据的稳定性。因此,若监控到配送范围字段的更新频率超出预设阈值,则执行步骤402。
步骤402:调小异常字段的更新线程数。
其中,某个字段可能对应多个更新线程(即更新任务),当所有更新线程都频繁地更新该字段时,可能导致数据库异常。通过调小异常字段的更新线程数,可以减少异常字段的更新频率,从而保证数据库的稳定。在实际应用中,在异常字段的更新频率恢复正常时,还可以恢复该字段的更新线程数。
值得一提的是,在一些例子中,还可以监控数据源与至少两个搜索库的有效数据总量是否一致,以及监控增量更新过程中数据源与对应的搜索库之间的有效数据的增量是否一致,若不一致,则同步监控到的差异数据至对应的搜索库。从而可以及时发现搜索库与数据源之间的同步异常问题,并及时进行补偿,保证数据源与搜索库之间数据的一致性,保证搜索库访问的稳定性。
本实施方式与现有技术相比,通过自动监控数据源与搜索库的有效数据的一致性,可以保证数据访问的稳定性。通过监控具体字段的更新状态,从而可在某些字段出现更新异常时,及时调整数据更新方式,确保数据库稳定工作。
本发明的第六实施方式涉及一种数据同步装置,请参阅图5,该数据同步装置500包括:
建立模块501,用于预先建立用于数据同步服务的公共服务组件。
同步模块502,用于基于公共服务组件同步数据源与至少两个搜索库之间的数据。其中,不同的搜索库对应不同的搜索入口。
在实际应用中,同步模块502可基于公共服务组件分别为至少两个搜索库建立同步任务,基于同步任务分别同步数据源与至少两个搜索库之间的数据。
在一个例子中,同步模块502还可用于获取预先配置的待更新字段,确定数据源中的待更新字段是否有更新,若待更新字段有更新,则对搜索库中与待更新字段对应的字段进行更新。
在一个例子中,同步模块502还可用于定时对搜索库中的数据进行全量扫描,若扫描到无效数据,则物理删除无效数据。
在一个例子中,同步模块502还可用于若数据源的数据为无效数据,则不将无效数据更新至搜索库。
在一个例子中,同步模块502还可用于监控搜索库中是否存在更新频率大于预设阈值的异常字段;若存在异常字段,则调小异常字段的更新线程数。
在一个例子中,同步模块502还可用于监控数据源与所述至少两个搜索库的有效数据总量是否一致,和/或监控增量更新过程中数据源与对应的搜索库之间的有效数据的增量是否一致。
在一个例子中,同步模块502还可用于在数据同步过程中,采用数据流式处理将数据源的数据更新至对应的搜索库。
在一个例子中,同步模块502还可用于采用预设的增量补偿机制将数据源的增量数据更新至对应的搜索库。
在一个例子中,同步模块502还可用于对数据源的数据结构进行解析,根据数据源的数据结构对至少两个搜索库进行同步操作。
本实施方式与现有技术相比,通过将各个搜索入口对应的搜索库进行整合,并基于预设建立的公共服务组件对数据源与各个搜索库之间进行数据同步。公共服务组件即数据源与不同搜索库之间通用的同步操作功能组件,因此,可以避免多搜索库分别开发其与数据源之间的同步更新组件,从而可以大幅降低开发工作量。并且,通过公共服务组件实现数据流式处理,可以在节约内存、保证数据库稳定的情况下实现大量数据的同步;通过公共服务组件实现数据源数据结构的自动解析,可以减少开发人员手动指定数据类型等的工作量。通过公共服务组件过滤无效数据的同步,可以为搜索库瘦身,并提高搜索库的响应性能。
本发明的第六实施方式涉及一种电子设备,包括:存储器602和处理器601,存储器602存储计算机程序,处理器601运行所述计算机程序以实现:
基于预先建立的公共服务组件的同步数据源与至少两个搜索库之间的数据;
其中,不同的搜索库对应不同的搜索入口。
一个或多个处理器601以及存储器602,图6中以一个处理器601为例。处理器601、存储器602可以通过总线或者其他方式连接,图6中以通过总线连接为例。存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器601通过运行存储在存储器602中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述数据同步方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储过滤器等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器602中,当被一个或者多个处理器601执行时,执行上述任意方法实施方式中的数据同步方法。
本实施方式与现有技术相比,通过将各个搜索入口对应的搜索库进行整合,并基于预设建立的公共服务组件对数据源与各个搜索库之间进行数据同步。公共服务组件即数据源与不同搜索库之间通用的同步操作功能组件,因此,可以避免多搜索库分别开发其与数据源之间的同步更新组件,从而可以大幅降低开发工作量。并且,通过公共服务组件实现数据流式处理,可以在节约内存、保证数据库稳定的情况下实现大量数据的同步;通过公共服务组件实现数据源数据结构的自动解析,可以减少开发人员手动指定数据类型等的工作量。通过公共服务组件过滤无效数据的同步,可以为搜索库瘦身,并提高搜索库的响应性能。
上述设备可执行本发明实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的方法。
本发明的第七实施方式涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例公开了A1.一种数据同步方法,包括:
预先建立用于数据同步服务的公共服务组件;
基于所述公共服务组件同步数据源与至少两个搜索库之间的数据;
其中,不同的搜索库对应不同的搜索入口。
A2.如A1所述的数据同步方法,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
获取预先配置的待更新字段;
确定所述数据源中的所述待更新字段是否有更新,若所述待更新字段有更新,则对所述搜索库中与所述待更新字段对应的字段进行更新。
A3.如A1所述的数据同步方法,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
定时对所述搜索库中的数据进行全量扫描,若扫描到无效数据,则物理删除所述无效数据,和/或
不将所述数据源的无效数据更新至所述搜索库。
A4.如A1所述的数据同步方法,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
监控所述搜索库中是否存在更新频率大于预设阈值的异常字段;若存在所述异常字段,则调小所述异常字段的更新线程数。
A5.如A1所述的数据同步方法,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
监控所述数据源与所述至少两个搜索库的有效数据总量是否一致。
A6.如A1所述的数据同步方法,所述数据同步包括增量更新;所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
监控所述增量更新过程中所述数据源与对应的搜索库之间的有效数据的增量是否一致;若不一致,则同步差异数据至对应的搜索库。
A7.如A1所述的数据同步方法,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
在数据同步过程中,采用数据流式处理将所述数据源的数据更新至对应的搜索库。
A8.如A1所述的数据同步方法,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
采用预设的增量补偿机制将所述数据源的增量数据更新至对应的搜索库。
A9.如A1所述的数据同步方法,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
对所述数据源的数据结构进行解析;
根据所述数据源的数据结构对所述至少两个搜索库进行同步操作。
A10.如A1所述的数据同步方法,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
基于所述公共服务组件分别为所述至少两个搜索库建立同步任务;
基于所述同步任务分别同步所述数据源与所述至少两个搜索库之间的数据。
本申请实施例还公开了B1.一种数据同步装置,包括:
建立模块,用于预先建立用于数据同步服务的公共服务组件;
同步模块,用于基于所述公共服务组件同步数据源与至少两个搜索库之间的数据;
其中,不同的搜索库对应不同的搜索入口。
本申请实施例还公开了C1.一种电子设备,包括:存储器和处理器,存储器存储计算机程序,处理器运行所述计算机程序以实现:
基于预先建立的用于数据同步服务的公共服务组件同步数据源与至少两个搜索库之间的数据;
其中,不同的搜索库对应不同的搜索入口。
C2.如C1所述的电子设备,所述处理器具体用于:
获取预先配置的待更新字段;
确定所述数据源中的所述待更新字段是否有更新,若所述待更新字段有更新,则对所述搜索库中与所述待更新字段对应的字段进行更新。
C3.如C1所述的电子设备,所述处理器具体用于:定时对所述搜索库中的数据进行全量扫描,若扫描到无效数据,则物理删除所述无效数据,和/或
不将所述数据源的无效数据更新至所述搜索库。
C4.如C1所述的电子设备,所述处理器具体用于:监控所述搜索库中是否存在更新频率大于预设阈值的异常字段;若存在所述异常字段,则调小所述异常字段的更新线程数。
C5.如C1所述的电子设备,所述处理器具体用于:监控所述数据源与所述至少两个搜索库的有效数据总量是否一致。
C6.如C1所述的电子设备,所述处理器具体用于:监控所述增量更新过程中所述数据源与对应的搜索库之间的有效数据的增量是否一致;若不一致,则同步差异数据至对应的搜索库。
C7.如C1所述的电子设备,所述处理器具体用于:在数据同步过程中,采用数据流式处理将所述数据源的数据更新至对应的搜索库。
C8.如C1所述的电子设备,所述处理器具体用于:采用预设的增量补偿机制将所述数据源的增量数据更新至对应的搜索库。
C9.如C1所述的电子设备,所述处理器具体用于:对所述数据源的数据结构进行解析;
根据所述数据源的数据结构对所述至少两个搜索库进行同步操作。
C10.如C1所述的电子设备,所述处理器具体用于:基于所述公共服务组件分别为所述至少两个搜索库建立同步任务;
基于所述同步任务分别同步所述数据源与所述至少两个搜索库之间的数据。
本申请实施例还公开了D1.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行如A1至A10中任一项所述的数据同步方法。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (18)
1.一种数据同步方法,其特征在于,包括:
预先建立用于数据同步服务的公共服务组件;
基于所述公共服务组件同步数据源与至少两个搜索库之间的数据;
其中,不同的搜索库对应不同的搜索入口,
所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
监控所述搜索库中是否存在更新频率大于预设阈值的异常字段;若存在所述异常字段,则调小所述异常字段的更新线程数,
所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,还包括:
对所述数据源的数据结构进行解析;
根据所述数据源的数据结构对所述至少两个搜索库进行同步操作,
在将所述数据源中的数据写入所述搜索库时,根据解析得到的字段的类型进行写入。
2.根据权利要求1所述的数据同步方法,其特征在于,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
获取预先配置的待更新字段;
确定所述数据源中的所述待更新字段是否有更新,若所述待更新字段有更新,则对所述搜索库中与所述待更新字段对应的字段进行更新。
3.根据权利要求1所述的数据同步方法,其特征在于,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
定时对所述搜索库中的数据进行全量扫描,若扫描到无效数据,则物理删除所述无效数据,和/或
不将所述数据源的无效数据更新至所述搜索库。
4.根据权利要求1所述的数据同步方法,其特征在于,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
监控所述数据源与所述至少两个搜索库的有效数据总量是否一致。
5.根据权利要求1所述的数据同步方法,其特征在于,所述数据同步包括增量更新;所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
监控所述增量更新过程中所述数据源与对应的搜索库之间的有效数据的增量是否一致;若不一致,则同步差异数据至对应的搜索库。
6.根据权利要求1所述的数据同步方法,其特征在于,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
在数据同步过程中,采用数据流式处理将所述数据源的数据更新至对应的搜索库。
7.根据权利要求1所述的数据同步方法,其特征在于,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
采用预设的增量补偿机制将所述数据源的增量数据更新至对应的搜索库。
8.根据权利要求1所述的数据同步方法,其特征在于,所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
基于所述公共服务组件分别为所述至少两个搜索库建立同步任务;
基于所述同步任务分别同步所述数据源与所述至少两个搜索库之间的数据。
9.一种数据同步装置,其特征在于,包括:
建立模块,用于预先建立用于数据同步服务的公共服务组件;
同步模块,用于基于所述公共服务组件同步数据源与至少两个搜索库之间的数据;
其中,不同的搜索库对应不同的搜索入口,
所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
监控所述搜索库中是否存在更新频率大于预设阈值的异常字段;若存在所述异常字段,则调小所述异常字段的更新线程数;
所述同步模块还用于:对所述数据源的数据结构进行解析;
根据所述数据源的数据结构对所述至少两个搜索库进行同步操作,
在将所述数据源中的数据写入所述搜索库时,根据解析得到的字段的类型进行写入。
10.一种电子设备,其特征在于,包括:存储器和处理器,存储器存储计算机程序,处理器运行所述计算机程序以实现:
基于预先建立的用于数据同步服务的公共服务组件同步数据源与至少两个搜索库之间的数据;
其中,不同的搜索库对应不同的搜索入口,
所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,具体包括:
监控所述搜索库中是否存在更新频率大于预设阈值的异常字段;若存在所述异常字段,则调小所述异常字段的更新线程数,
所述基于所述公共服务组件同步数据源与至少两个搜索库之间的数据,还包括:
对所述数据源的数据结构进行解析;
根据所述数据源的数据结构对所述至少两个搜索库进行同步操作,
在将所述数据源中的数据写入所述搜索库时,根据解析得到的字段的类型进行写入。
11.根据权利要求10所述的电子设备,其特征在于,所述处理器具体用于:
获取预先配置的待更新字段;
确定所述数据源中的所述待更新字段是否有更新,若所述待更新字段有更新,则对所述搜索库中与所述待更新字段对应的字段进行更新。
12.根据权利要求10所述的电子设备,其特征在于,所述处理器具体用于:
定时对所述搜索库中的数据进行全量扫描,若扫描到无效数据,则物理删除所述无效数据,和/或
不将所述数据源的无效数据更新至所述搜索库。
13.根据权利要求10所述的电子设备,其特征在于,所述处理器具体用于:
监控所述数据源与所述至少两个搜索库的有效数据总量是否一致。
14.根据权利要求10所述的电子设备,其特征在于,所述处理器具体用于:
所述同步操作中的增量更新过程,
监控所述增量更新过程中所述数据源与对应的搜索库之间的有效数据的增量是否一致;若不一致,则同步差异数据至对应的搜索库。
15.根据权利要求10所述的电子设备,其特征在于,所述处理器具体用于:
在数据同步过程中,采用数据流式处理将所述数据源的数据更新至对应的搜索库。
16.根据权利要求10所述的电子设备,其特征在于,所述处理器具体用于:
采用预设的增量补偿机制将所述数据源的增量数据更新至对应的搜索库。
17.根据权利要求10所述的电子设备,其特征在于,所述处理器具体用于:
基于所述公共服务组件分别为所述至少两个搜索库建立同步任务;
基于所述同步任务分别同步所述数据源与所述至少两个搜索库之间的数据。
18.一种计算机可读存储介质,其特征在于,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行如权利要求1至8中任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811501932.9A CN109634975B (zh) | 2018-12-10 | 2018-12-10 | 数据同步方法及装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811501932.9A CN109634975B (zh) | 2018-12-10 | 2018-12-10 | 数据同步方法及装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109634975A CN109634975A (zh) | 2019-04-16 |
CN109634975B true CN109634975B (zh) | 2022-02-25 |
Family
ID=66072232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811501932.9A Active CN109634975B (zh) | 2018-12-10 | 2018-12-10 | 数据同步方法及装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634975B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457334A (zh) * | 2019-07-31 | 2019-11-15 | 北京三快在线科技有限公司 | 信息推送方法、装置、电子设备及可读存储介质 |
CN110727694B (zh) * | 2019-10-10 | 2024-01-09 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113553488A (zh) * | 2021-07-15 | 2021-10-26 | 挂号网(杭州)科技有限公司 | 搜索引擎中索引数据的更新方法、装置、电子设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129478A (zh) * | 2011-04-26 | 2011-07-20 | 广州从兴电子开发有限公司 | 数据库同步方法及系统 |
CN104125163A (zh) * | 2013-04-25 | 2014-10-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及终端 |
CN104462517A (zh) * | 2014-12-22 | 2015-03-25 | 北京奇虎科技有限公司 | 数据同步方法及装置 |
CN105447054A (zh) * | 2014-09-25 | 2016-03-30 | 中兴通讯股份有限公司 | 一种数据库的数据同步方法、装置及系统 |
CN105868384A (zh) * | 2016-04-12 | 2016-08-17 | 浪潮通信信息系统有限公司 | 一种更新共享数据的方法、装置及系统 |
CN108228814A (zh) * | 2017-12-29 | 2018-06-29 | 泰康保险集团股份有限公司 | 数据同步方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ITTO20020858A1 (it) * | 2002-10-04 | 2004-04-05 | Rai Radiotelevisione Italiana | Sistema di trasmissione di segnali digitali dvb/mpeg,particolarmente per comunicazioni via satellite |
US8503289B2 (en) * | 2010-03-19 | 2013-08-06 | Brocade Communications Systems, Inc. | Synchronizing multicast information for linecards |
CN102346775A (zh) * | 2011-09-26 | 2012-02-08 | 苏州博远容天信息科技有限公司 | 一种基于日志的异构多源数据库同步方法 |
CN105389380A (zh) * | 2015-11-23 | 2016-03-09 | 浪潮软件股份有限公司 | 一种异构数据源高效数据同步方法 |
-
2018
- 2018-12-10 CN CN201811501932.9A patent/CN109634975B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129478A (zh) * | 2011-04-26 | 2011-07-20 | 广州从兴电子开发有限公司 | 数据库同步方法及系统 |
CN104125163A (zh) * | 2013-04-25 | 2014-10-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及终端 |
CN105447054A (zh) * | 2014-09-25 | 2016-03-30 | 中兴通讯股份有限公司 | 一种数据库的数据同步方法、装置及系统 |
CN104462517A (zh) * | 2014-12-22 | 2015-03-25 | 北京奇虎科技有限公司 | 数据同步方法及装置 |
CN105868384A (zh) * | 2016-04-12 | 2016-08-17 | 浪潮通信信息系统有限公司 | 一种更新共享数据的方法、装置及系统 |
CN108228814A (zh) * | 2017-12-29 | 2018-06-29 | 泰康保险集团股份有限公司 | 数据同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109634975A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11556543B1 (en) | Streaming joins with synchronization via stream time estimations | |
CN109460349B (zh) | 一种基于日志的测试用例生成方法和装置 | |
EP3120261B1 (en) | Dependency-aware transaction batching for data replication | |
CN109634975B (zh) | 数据同步方法及装置、电子设备及计算机可读存储介质 | |
CN102129478B (zh) | 数据库同步方法及系统 | |
US8825601B2 (en) | Logical data backup and rollback using incremental capture in a distributed database | |
CN108121782B (zh) | 查询请求的分配方法、数据库中间件系统以及电子设备 | |
CN110362632B (zh) | 一种数据同步方法、装置、设备及计算机可读存储介质 | |
US9542468B2 (en) | Database management system and method for controlling synchronization between databases | |
CN108121827B (zh) | 一种全量数据的同步方法及装置 | |
CN108509462B (zh) | 一种同步活动事务表的方法及装置 | |
JP2004334858A (ja) | クライアント/サーバ環境における同期を容易にするシステムおよび方法 | |
CN110232093B (zh) | 数据库同步中基于闪回查询的初始化装载方法及设备 | |
CN110019469B (zh) | 分布式数据库数据处理方法、装置、存储介质及电子装置 | |
CN104050276A (zh) | 一种分布式数据库的缓存处理方法及系统 | |
US20160055197A1 (en) | Tracking change data in a database | |
CN109086382B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
US11176004B2 (en) | Test continuous log replay | |
EP3347815B1 (en) | Action-based routing of a transaction in an online transaction processing system | |
CN115145943B (zh) | 多数据源元数据快速比对方法、系统、设备和存储介质 | |
CN104954482A (zh) | 管理配置的系统及方法 | |
CN108090056B (zh) | 数据查询方法、装置及系统 | |
CN109446262B (zh) | 一种数据汇聚方法及装置 | |
CN110704442A (zh) | 一种大数据的实时获取方法及装置 | |
CN114138894A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |