一种数据同步方法、装置、电子设备及存储介质与流程

文档序号:30963013发布日期:2022-07-30 14:48阅读:68来源:国知局
一种数据同步方法、装置、电子设备及存储介质与流程

1.本技术涉及云计算技术领域,特别是涉及一种数据同步方法、装置、电子设备及存储介质。


背景技术:

2.随着互联网行业的发展,业务系统越来越复杂,不同端间交互的数据也越来越复杂。为便于业务处理,全量数据的同步是主要的解决思路。然而,全量数据的数据量是十分巨大的,这使得数据同步的错误率较大。


技术实现要素:

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.图1为本技术实施例提供的一种数据同步方法的第一种流程示意图。
72.图2为本技术实施例提供的一种数据同步方法的第二种流程示意图。
73.图3为本技术实施例提供的一种数据监控方法的第一种流程示意图。
74.图4为本技术实施例提供的一种数据同步方法的第三种流程示意图。
75.图5为本技术实施例提供的一种数据删除方法的第一种流程示意图。
76.图6为本技术实施例提供的一种数据同步系统框图。
77.图7为本技术实施例提供的数据同步装置的一种结构示意图。
78.图8为本技术实施例提供的电子设备的一种结构示意图。
具体实施方式
79.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本技术保护的范围。
80.随着互联网行业的发展,业务系统越来越复杂,不同端间交互的数据也越来越复杂。为便于业务处理,全量数据的同步是主要的解决思路。然而,全量数据的数据量是十分巨大的,在这一前提下,很大概率会出现在同步业务数据的过程业务数据被修改的问题,而一旦在同步业务数据的过程业务数据被修改,将会出现本次同步数据出错的问题,因此,相关技术中数据同步的错误率较大。
81.为了解决数据同步的错误率较大的问题,本技术实施例提供了一种数据同步方法,如图1所示,该方法包括如下步骤:
82.步骤s11,获取多条业务数据,将多条业务数据存储至第一宽表。
83.步骤s12,在将每条业务数据存储至第一宽表完成之后,将第一宽表中存储完成的每条业务数据同步至第二宽表。
84.步骤s13,在将第一宽表中存储完成的每条业务数据同步至第二宽表的过程中,对第一宽表中该业务数据进行加锁。
85.步骤s14,在将第一宽表中存储完成的每条业务数据同步至第二宽表完成之后,对第一宽表中该业务数据进行解锁,并将第二宽表中的该业务数据同步至对端。
86.本技术实施例提供的技术方案中,设置了第一宽表和第二宽表,将多条业务数据直接存储在第一宽表中,第一宽表中包括存储完成的业务数据,还包括正在存储的业务数据;将第一宽表中存储完成的每条业务数据存储至第二宽表,在将一条业务数据同步至第二宽表的过程中,对第一宽表中该业务数据进行加锁,这样,就可以避免同步过程中该业务数据被修改,导致本次向对端同步的数据出错的问题。在将一条业务数据同步至第二宽表完成之后,将第二宽表中的该业务数据同步至对端,完成本次的数据同步,另外,对第一宽表中该业务数据进行解锁,这样,在保证本次同步的数据为所需数据的情况下,也可以实现后续对该业务数据的修改。可见,本技术实施例中,通过设置第一宽表和第二宽表,以及对第一宽表中正在向第二宽表中同步的业务数据加锁的操作,有效降低了数据同步错误率。
87.此外,同步队列的容量是有限的,只能缓存少量的业务数据。本技术实施例提供的技术方案中,将第二宽表作为第一宽表与同步队列之间的过渡,即对于第一宽表中存储完成的业务数据,将该业务数据同步至第二宽表后,在将第二宽表中的该业务数据同步至对端,避免了大量业务数据全部添加至同步队列的问题,进而降低了因受同步队列的容量限制,导致待同步的业务数据丢失的问题,进一步提高了数据同步的正确率,降低了数据同步错误率,进而提高了数据同步的效率。
88.在海量业务数据同步的场景中,本技术实施例提供的技术方案降低数据同步的错误率的效果更为显著。
89.上述数据同步方法可以应用于服务器、个人计算机或其他具有数据处理功能的电子设备。为便于理解,下面以电子设备为执行主体进行说明,并不起限定作用。本技术实施例中,电子设备可以为b(business,企业)端,电子设备可以使用数据库引擎,以rdms(relational database management system,关系型数据库系统)数据库等关系型数据库存储数据。电子设备的对端为接收同步数据的一个设备,对端可以为c(consumer,客户)端,对端可以使用内存层面的倒排索引,以扁平的大宽表存储数据。
90.当然,电子设备也可以使用内存层面的倒排索引,以扁平的大宽表存储数据,对端也可以使用数据库引擎,以关系型数据库存储数据,或者,电子设备和对端均使用内存层面的倒排索引,以扁平的大宽表存储数据,或电子设备和对端均使用数据库引擎,以关系型数据库存储数据,对此不进行限定。
91.上述步骤s11中,电子设备中设置了第一宽表,该第一宽表可以称为creative表(即大宽表)可以用于存储扁平化的数据。电子设备可以从数据源获取多条业务数据,并将获取的多条业务数据存储至第一宽表中。
92.业务数据可以为广告业务数据或检索业务数据等,对此不进行限定。业务数据不同,数据源不同。例如,业务数据为广告业务数据时,数据源可以为广告业务端。业务数据可
以包括多个数据维度的数据,对于不同类型的业务数据,数据维度的数量和种类可以相同,也可以不同。此外,对于不同类型的业务数据,用户访问的数据维度不同。为便于描述和理解,下面将用户访问的数据维度称为目标数据维度。
93.以广告业务数据为例。广告业务数据可以包括广告主数据(广告系列的上级数据结构,涉及到账户的基本信息、行业,从属关系,开户情况等系列信息),广告系列数据(主要描述投放策略),广告计划数据(主要描述投放目标数据),广告创意数据(主要描述投放的素材,也是用户直接触达的数据)等多个数据维度的数据。对于广告业务数据,目标数据维度为广告创意数据维度,即用户访问的数据是广告创意数据上的素材信息,广告创意数据上关联广告计划数据,广告计划数据关联广告系列数据,广告系列数据关联广告主数据。可见,广告创意数据为电子设备和对端的基础数据,电子设备和对端可以以广告创意数据为基础进行数据对齐,也就是,电子设备可以向对端同步广告创意数据。
94.一个可选的实施例中,用户关注的数据维度为目标数据维度,这种情况下,步骤s11中,将多条业务数据存储至第一宽表的步骤,可以为:从每条业务数据中,提取目标数据维度的数据;将从每条业务数据中提取的数据对应存储至第一宽表。
95.另一个可选的实施例中,用户关注的数据维度除目标数据维度外,还包括其他数据维度,这里的其他数据维度可以称为目标数据维度的关联维度,其他数据维度的数量可以为1个或多个。这种情况下,步骤s11中,将多条业务数据存储至第一宽表的步骤,可以为:从每条业务数据中,提取目标数据维度和目标数据维度的关联维度的数据;将从每条业务数据中提取的数据对应存储至第一宽表。这里,目标数据维度和目标数据维度的关联维度的数据均被存储至第一宽表,可以理解为,第一宽表中存储了目标数据维度的数据,这条目标数据维度的数据包括原目标数据维度的数据,以及关联维度的数据。
96.以广告业务数据为例,广告业务数据1包括广告创意数据1、广告创意数据1关联的广告计划数据1。电子设备可以将广告创意数据1和广告计划数据1对应存储至第一宽表,在第一宽表中实际仅存储了一条广告创意数据1',广告创意数据1'包括广告创意数据1和广告计划数据1。
97.上述步骤s12中,电子设备中设置了第二宽表,该第二宽表可以称为creative_result表(即结果表),第一宽表与第二宽表的结构相同,即creative表与creative_result表的结构相同,该第二宽表中的数据可以作为最终的倒排基础数据。电子设备将第一宽表中存储完成的每条业务数据同步至第二宽表中。
98.本技术实施例中,第二宽表为电子设备查询业务数据的基础。具体可以为,电子设备可以利用哈希的存储引擎,以o(1)的方式,从第二宽表中查询并获取业务数据。例如,仍以广告业务数据为例,电子设备可以利用哈希的存储引擎,以o(1)的方式,从第二宽表中查询并获取一个或多个广告创意数据。
99.本技术实施例中,电子设备可以设置多种数据变更协议,如数据插入协议、数据更新协议、数据删除协议、数据监控协议和数据触发更新协议等。所有数据变更协议具有适配功能,从而可以应用于底层存储不一致的两端。另外,为便于对业务数据的处理,上述每个数据变更协议可以分别抽象成一个接口,通过接口实现上述各个数据变更协议。
100.一个可选的实施例中,电子设备可以设置数据查询协议。电子设备可以运行数据查询协议,以从第二宽表中查询并获取业务数据。
101.上述步骤s13中,针对第一宽表中每条存储完成的业务数据,电子设备将该业务数据同步至第二宽表。电子设备是逐步将该业务数据的全部内容同步至第二宽表的,在将该业务数据同步至第二宽表的过程中,电子设备可以对第一宽表中的该业务数据进行加锁。
102.在第一宽表中业务数据加锁的情况下,电子设备无法修改或删除该业务数据,避免了因同步过程中该业务数据被修改,导致本次向对端同步的数据出错的问题。
103.上述步骤s14中,针对第一宽表中每条存储完成的业务数据,电子设备在将该业务数据同步至第二宽表完成之后,对第一宽表中该业务数据进行解锁,这样,电子设备可以继续对该业务数据的修改,实现业务数据的实时更新。
104.另外,针对第一宽表中每条存储完成的业务数据,电子设备在将该业务数据同步至第二宽表完成之后,将第二宽表中的该业务数据同步至对端,完成电子设备与对端之间的数据同步。
105.一个可选的实施例中,为了便于业务数据的存储和管理,对端可以预先设置一个与第二宽表的结构相同的第三宽表,该第三宽表也可以称为creative_result表。对端接收到电子设备同步的业务数据后,将该业务数据存储至第三宽表中。
106.一个可选的实施例中,以广告业务数据为例,电子设备可以通过binlog信息同步的方式,将第二宽表中的广告业务数据同步给对端的广告引擎,由广告引擎将业务数据转化为对端的内存存储介质的数据,供对端的用户使用。其中,binlog为一种数据库的数据变更日志,采用binlog信息同步的方式,可以实现电子设备与对端的主从同步。
107.一个可选的实施例中,电子设备可以利用mq(message queue,消息队列),从数据源获取到业务数据,以及利用mq,将第二宽表中的业务数据同步至对端。应用该实施例,可以解决电子设备与数据源之间以及电子设备与对端之间的解耦、异步消息和流量削峰等问题,实现了高性能、高可用、可伸缩和最终一致性架构。
108.在本技术的一个实施例中,本技术实施例还提供了一种数据同步方法,如图2所示,该方法可以包括步骤s21-步骤s26,步骤s24为步骤s12的一种实现方式,步骤s21、s25、s26与步骤s11、s13、s14相同,此处不再赘述。
109.步骤s22,在将每条业务数据存储至第一宽表的过程中,将每条业务数据对应的更新标识字段置为第一标识,第一标识指示业务数据存储未完成。
110.步骤s23,在将每条业务数据存储至第一宽表完成之后,将每条业务数据对应的更新标识字段置为第二标识,第二标识指示业务数据存储完成。
111.步骤s24,针对第一宽表中每条业务数据,在检测到第一宽表中该业务数据对应的更新标识字段为第二标识时,将第一宽表中该业务数据同步至第二宽表。
112.本技术实施例提供的技术方案中,电子设备通过更新标识,对第一宽表中的业务数据进行标识,以确定业务数据是否存储完成,可以有效确保及时地将第一宽表中存储完成的业务数据同步至第二宽表中,保证同步至第二宽表中的业务数据是存储完成的业务数据,进一步避免了因数据未存储完成导致同步数据错误的问题,降低了数据同步的错误率。
113.上述步骤s22中,针对每条业务数据,电子设备将获取的该业务数据存储至第一宽表。电子设备是逐步获取到该业务数据的内容的,因此,电子设备是逐步将该业务数据的内容存储至第一宽表的。在将获取的该业务数据存储至第一宽表的过程中,电子设备可以将该业务数据对应的更新标识字段置为第一标识。第一标识可以用0或1表示,对此不进行限
定。
114.在业务数据对应的更新标识字段为第一标识的情况下,电子设备不会对第一宽表中的该业务数据进行其他处理,即不会将第一宽表中的该业务数据同步至第二宽表。
115.本技术实施例中,更新标识字段可以表示为update_flag字段。该update_flag字段可以设置在第一宽表中每条业务数据记录的尾部或头部,也可以通过独立的寄存器来管理,对此不进行限定。
116.上述步骤s23中,针对每条业务数据,电子设备将该业务数据存储至第一宽表完成之后,可以将该业务数据对应的更新标识字段置为第二标识。第二标识可以用0或1表示,对此不进行限定,只要保证与第一标识不同即可。
117.针对第一宽表中每条业务数据,在该业务数据对应的更新标识字段为第二标识的情况下,电子设备对第一宽表中的该业务数据进行处理,即执行步骤s24,将第一宽表中的该业务数据同步至第二宽表。
118.本技术实施例中,电子设备可以设置数据触发更新协议。电子设备运行数据触发更新协议,以检测每条业务数据对应的更新标识字段是否为第二标识,并在检测到一条业务数据对应的更新标识字段为第二标识的情况下,执行步骤s24。
119.上述步骤s24中,第二标识对应的业务数据为存储完成的业务数据。电子设备可以实时的从第一宽表中获取第二标识对应的业务数据,并将获取的业务数据存储至第二宽表。
120.本技术实施例中,电子设备可以设置数据更新协议。在检测到业务数据对应的更新标识字段为第二标识的情况下,电子设备可以运行数据更新协议,以执行步骤s24,将第一宽表中第二标识对应的业务数据同步至第二宽表。
121.为了保证两端设备中的数据同步,本技术实施例还提供了一种数据监控方法,该方法中,每条业务数据具有业务id(identity,标识),为保证数据同步以及监控等处理的准确性,每条业务数据的业务id具有唯一性。如图3所示,该数据监控方法可以包括如下步骤:
122.步骤s31,从多条业务数据的业务标识中,确定目标业务标识。
123.步骤s32,从第二宽表中抽取目标业务标识对应的第一业务数据,并从对端抽取目标业务标识对应的第二业务数据。
124.步骤s33,若第一业务数据中的预设关键字段的数据与第二业务数据的预设关键字段的数据不匹配,则执行数据不一致对应的操作。
125.本技术实施例提供的技术方案中,电子设备对第二宽表中的业务数据和同步到对端的业务数据进行抽样,当检测到第一业务数据中的预设关键字段的数据与第二业务数据的预设关键字段的数据不匹配时,则执行数据不一致对应的操作,降低了因数据同步的错误所引起的数据处理错误的概率。
126.上述步骤s31中,每条业务数据均具有业务id,这便于业务数据的管理。在对业务数据进行监控时,电子设备可以周期性的从多条业务数据的业务id中,随机选择业务id,作为目标业务id。目标业务id的数量可以为一个或多个,具体的目标业务id的数量可以根据实际需求进行设定。一个示例中,目标业务id的数量可以为第二宽表中的业务数据的总数量的预设百分比。预设百分比可以为5%、6%或7%等。
127.上述步骤s32中,电子设备可以从第二宽表中,抽取每个目标业务id对应的业务数
据,作为第一业务数据;从对端的业务数据(如上述第三宽表)中,抽取每个目标业务id对应的业务数据,作为第二业务数据。
128.对于每个目标业务id,电子设备可以对比该目标业务id对应的第一业务数据和第二业务数据中的预设关键字段的数据,确定第一业务数据和第二业务数据是否匹配。
129.本技术实施例中,电子设备可以利用哈希的存储引擎,以o(1)的方式,从第二宽表中抽取目标业务id对应的第一业务数据,以及利用哈希的存储引擎,以o(1)的方式,从对端抽取目标业务id对应的第二业务数据;电子设备还可以利用其它方式从第二宽表和对端抽取目标业务id对应的第一业务数据,对此不进行限定。
130.上述步骤s33中,电子设备可以预先设置关键字段,即预设关键字段。预设关键字段可以根据实际需求进行设定。例如,仍以广告业务数据为例,关键字段可以是广告创意数据中的价格字段、位置字段和时长字段等。
131.电子设备在获得每个目标业务id对应的第一业务数据和第二业务数据后,针对每个目标业务id,对比该目标业务id对应的第一业务数据和第二业务数据中的预设关键字段的数据,以判断第一业务数据和第二业务数据的预设关键字段的数据是否匹配,若第一业务数据和第二业务数据的预设关键字段的数据不一致,即第一业务数据和第二业务数据的预设关键字段的数据不匹配,则电子设备执行数据不一致对应的操作。
132.本技术实施例中,数据不一致对应的操作可以包括以下至少一种:
133.1)输出告警信息。该告警信息用于提示用户当前数据同步出错,便于用户及时解决数据同步出错的问题,提高数据同步效率。
134.2)将第二宽表中的第一业务数据重新同步至对端。
135.本技术实施例中,目标业务id可以为一个或多个。当目标业务id为多个时,通过上述步骤s31-s33所确定预设关键字段的数据不匹配的业务数据就可能为一个或多个。为便于描述,下面将预设关键字段的数据不匹配的业务数据简称为不匹配的业务数据。针对每条与对端的第二业务数据不匹配的第一业务数据,电子设备可以将第二宽表中的该第一业务数据重新同步至对端,保证电子设备与对端的数据同步。
136.上述各种数据不一致对应的操作可以进行任意组合,如针对每条与对端的第二业务数据不匹配的第一业务数据,电子设备可以将第二宽表中的该第一业务数据重新同步至对端,若重新同步了预设次数后,电子设备中的第一业务数据与对端的第二业务数据还是不匹配,则输出告警信息。
137.本技术实施例中,数据不一致对应的操作可以包括其他各种可实现的操作,对此不进行限定。
138.若第一业务数据和第二业务数据的预设关键字段的数据一致,即第一业务数据和第二业务数据的预设关键字段的数据匹配,则说明电子设备与对端的数据一致,电子设备可以不做任何处理。
139.本技术实施例中,电子设备可以设置数据监控协议和数据查询协议。电子设备和对端分别将数据查询协议抽象成接口,电子设备可以运行数据监控协议,执行上述步骤s31-s33,以通过数据查询协议抽象成的接口,从第二宽表中抽取目标业务id对应的第一业务数据,并从对端抽取目标业务id对应的第二业务数据,进而以第一业务数据和第二业务数据的对比结果作为数据同步的基准,确定是否需要执行数据不一致对应的操作。本技术
实施例中,电子设备将第一业务数据和第二业务数据均读取到了实现数据监控协议的接口上,并在该接口上完成业务数据的对比,完成了数据的适配,即屏蔽了底层存储不同的问题,解决了由于电子设备与对端底层存储不一致而导致的数据对比无法实现的问题。
140.在第一业务数据和第二业务数据的对比结果为数据不一致的情况下,电子设备可以运行数据更新协议、数据插入协议和数据删除协议等,以使第一业务数据和第二业务数据的预设关键字段的数据匹配。对于数据更新协议的运行,可以参见步骤s24部分的相关描述;对于数据插入协议和数据删除协议的运行,在下面进行详细说明,此处不作展开介绍。
141.上述步骤s31-s33还可以由对端执行,本技术实施例仅以电子设备为执行主体进行说明,并不起限定作用。
142.在本技术的一个实施例中,本技术实施例还提供了一种数据同步方法,该方法中,每条业务数据具有业务标识,如图4所示,步骤s41-步骤s43为步骤s11的一种实现方式,步骤s44-步骤s46与上述步骤s12-步骤s14相同,此处不再赘述。
143.步骤s41,获取数据更新指令,数据更新指令包括待更新业务数据和待更新标识。
144.步骤s42,若第一宽表中存储有待更新标识对应的第三业务数据,则将待更新业务数据更新至第三业务数据中。
145.步骤s43,若第一宽表中未存储第三业务数据,则将待更新标识和待更新业务数据对应存储至第一宽表。
146.本技术实施例提供的技术方案中,在对端需要进行业务数据更新时,电子设备利用数据更新指令,在第一宽表中写入待更新业务数据,并通过第二宽表将该待更新业务数据同步至对端,以实现更新对端的业务数据,保证了同步至对端的数据的正确率,降低了数据同步的错误率。
147.上述步骤s41中,用户可以向电子设备输入数据更新指令,电子设备接收用户输入的数据更新指令。该数据更新指令可以包括待更新业务数据以及待更新id。待更新id所对应的业务数据即为第三业务数据,该第三业务数据为需要写入第一宽表的业务数据。
148.电子设备获取到数据更新指令之后,可以从数据更新指令中获取待更新业务数据和待更新id,进而从第一宽表中查找待更新id对应的第三业务数据。
149.若查找到,即第一宽表中存储有待更新id对应的第三业务数据,则将待更新业务数据更新至第三业务数据中,并在待更新业务数据更新至第三业务数据完成之后,将第三业务数据同步至第二宽表。在将第三业务数据同步至第二宽表的过程中,对第三业务数据进行加锁。在将第三业务数据同步至第二宽表完成之后,对第三业务数据进行解锁,并将第三业务数据同步至对端。这样,对端就会更新待更新id对应的第三业务数据,即将原始的第三业务数据更新为插入了待更新业务数据的第三业务数据。
150.若未查找到,即第一宽表中未存储有待更新id对应的第三业务数据,则将待更新id和待更新业务数据对应存储至第一宽表中,并在待更新id和待更新业务数据对应存储至第一宽表完成之后,将待更新id和待更新业务数据同步至第二宽表。在将待更新id和待插入业务数据同步至第二宽表的过程中,对待更新id和待更新业务数据进行加锁。在将待更新id和待更新业务数据同步至第二宽表完成之后,对待更新id和待更新业务数据进行解锁,并将待更新id和待更新业务数据同步至对端。
151.本技术实施例中,电子设备可以设置数据插入协议和数据更新协议。电子设备可
以运行数据插入协议和数据更新协议,获取数据更新指令,进而执行上述步骤s41-s42,实现电子设备和对端的业务数据的同步。
152.在本技术的一个实施例中,本技术实施例还提供了一种数据删除方法,该方法中,如图5所示,该数据删除方法可以包括如下步骤:
153.步骤s51,获取数据删除指令,数据删除指令包括待删除业务标识,待删除业务标识与第四业务数据对应。
154.用户可以向电子设备输入数据删除指令,电子设备接收用户输入的数据删除指令。该数据删除指令可以包括待删除业务id。待删除业务id所对应的业务数据即为第四业务数据,该第四业务数据即为需要删除的业务数据。
155.步骤s52,将第一宽表中的第四业务数据置为删除状态。
156.电子设备获取到数据删除指令之后,可以从数据删除指令中获取待删除业务id,进而从第一宽表中确定待删除业务id对应的第四业务数据,并将第四业务数据置为删除状态。
157.步骤s53,将第一宽表中的第四业务数据的删除状态同步至第二宽表,在将第一宽表中第四业务数据的删除状态同步至第二宽表的过程中,对第一宽表中第四业务数据进行加锁。
158.步骤s54,在将第一宽表中第四业务数据的删除状态同步至第二宽表完成之后,对第一宽表中第四业务数据进行解锁,并将第二宽表中的第四业务数据的删除状态同步至对端,以使对端删除第四业务数据。
159.步骤s53和步骤s54与上述步骤s13和步骤s14详细,具体实现过程可参见上述步骤s13和步骤s14部分的相关描述。
160.本技术实施例中,电子设备可以设置数据删除协议。电子设备可以运行数据删除协议,执行上述步骤s51-s54,实现电子设备和对端的业务数据的同步。
161.本技术实施例提供的技术方案中,电子设备利用数据删除指令,在电子设备和对端之间同步第四业务数据的删除状态,在将第四业务数据的删除状态同步至第二宽表的过程中,对第一宽表中第四业务数据进行加锁,这样,就可以避免同步过程中第四业务数据被修改,有效降低了数据同步错误率。
162.此外,本技术实施例提供的技术方案中,仅仅删除了对端的第四业务数据,对于电子设备中第四业务数据,仅为该第四业务数据设置了删除状态,并未删除该第四业务数据,后续对第四业务数据进行调整,提高数据同步效率。
163.下面结合图6所示的数据同步系统框图,对本技术实施例提供的数据同步方法进行详细说明。图6中以广告业务数据为例,整个数据同步系统的数据源为广告业务数据存储系统(即广告业务端),b端设置了creative表和creative_result表,c端也设置了creative_result表,b端的creative表和creative_result表与c端的creative_result表的结构相同。creative表和creative_result表中字段的设置参考上述图1-图5中关于第一宽表和第二宽表的设置,此处不再赘述。监控报警系统可以设置在b端,也可以设置在c端,还可以为独立位于一台设备上,对此不进行限定。
164.广告业务数据存储系统存储有广告业务数据。广告业务数据存储系统采用mq,将广告业务数据同步给b端。
165.b端接收到广告业务数据后,将广告业务数据中的广告创意数据存储至creative表,并将creative表中该广告创意数据的记录对应的更新标识设置为第一标识。当creative表中该广告创意数据存储完成后,b端将creative表中该广告创意数据的记录对应的更新标识设置为第二标识。b端根据该第二标识,将该广告创意数据从creative表同步至creative_result表。b端采用mq,将creative_result表中的该广告创意数据同步至c端。
166.c端接收b端同步的广告创意数据,并将该广告创意数据存储至c端的creative_result表。
167.监控报警系统调用b端和c端的数据查询协议抽象成的接口,随意抽取5%(该值可以根据需求进行设定)的业务id对应的广告创意数据,对比抽取的广告创意数据中的预设关键字段,确定b端和c端的广告创意数据是否匹配,并在二者不匹配时执行数据不一致对应的操作。
168.与上述数据同步方法对应,本技术实施例还提供了一种数据同步装置,如图7所示,该装置包括:
169.存储单元71,用于获取多条业务数据,将多条业务数据存储至第一宽表;
170.第一同步单元72,用于在将每条业务数据存储至第一宽表完成之后,将第一宽表中存储完成的每条业务数据同步至第二宽表;
171.加锁单元73,用于在将第一宽表中存储完成的每条业务数据同步至第二宽表的过程中,对第一宽表中该业务数据进行加锁;
172.第二同步单元74,用于在将第一宽表中存储完成的每条业务数据同步至第二宽表完成之后,对第一宽表中该业务数据进行解锁,并将第二宽表中的该业务数据同步至对端。
173.本技术实施例提供的技术方案中,设置了第一宽表和第二宽表,将多条业务数据直接存储在第一宽表中,第一宽表中包括存储完成的业务数据,还包括正在存储的业务数据;将第一宽表中存储完成的每条业务数据同步至第二宽表,在将一条业务数据同步至第二宽表的过程中,对第一宽表中该业务数据进行加锁,这样,就可以避免同步过程中该业务数据被修改,导致本次向对端同步的数据出错的问题。在将一条业务数据同步至第二宽表完成之后,将第二宽表中的该业务数据同步至对端,完成本次的数据同步,另外,对第一宽表中该业务数据进行解锁,这样,在保证本次同步的数据为所需数据的情况下,也可以实现后续对该业务数据的修改。可见,本技术实施例中,通过设置第一宽表和第二宽表,以及对第一宽表中正在向第二宽表中同步的业务数据加锁的操作,有效降低了数据同步错误率。
174.可选的,上述数据同步装置还可以包括:
175.更新单元,用于在将每条业务数据存储至第一宽表的过程中,将每条业务数据对应的更新标识字段置为第一标识,第一标识指示业务数据存储未完成;在将每条业务数据存储至第一宽表完成之后,将每条业务数据对应的更新标识字段置为第二标识,第二标识指示业务数据存储完成;
176.第一同步单元,具体用于:
177.针对第一宽表中每条业务数据,在检测到第一宽表中该业务数据对应的更新标识字段为第二标识时,将第一宽表中该业务数据同步至第二宽表。
178.可选的,业务数据包括多维数据;
179.存储单元,具体用于:
180.从每条业务数据中,提取目标数据维度的数据;将从每条业务数据中提取的数据对应存储至第一宽表;或者
181.从每条业务数据中,提取目标数据维度和目标数据维度的关联维度的数据;将从每条业务数据中提取的数据对应存储至第一宽表。
182.可选的,每条业务数据具有业务标识,上述数据同步装置还可以包括:
183.确定单元,用于从多条业务数据的业务标识中,确定目标业务标识;
184.抽取单元,用于从第二宽表中抽取目标业务标识对应的第一业务数据,并从对端抽取目标业务标识对应的第二业务数据;
185.执行单元,用于若第一业务数据中的预设关键字段的数据与第二业务数据的预设关键字段的数据不匹配,则执行数据不一致对应的操作。
186.可选的,数据不一致对应的操作包括以下至少一种:
187.输出告警信息;
188.将第二宽表中的第一业务数据重新同步至对端。
189.可选的,每条业务数据具有业务标识,存储单元,具体用于:
190.获取数据更新指令,数据更新指令包括待插入业务数据和待插入标识;
191.若第一宽表中存储有待插入标识对应的第三业务数据,则将待插入业务数据更新至第三业务数据中;
192.若第一宽表中未存储第三业务数据,则将待插入标识和待插入业务数据对应存储至第一宽表。
193.可选的,上述数据同步装置还可以包括:
194.获取单元,用于获取数据删除指令,数据删除指令包括待删除业务标识,待删除业务标识与第四业务数据对应;
195.设置单元,用于将第一宽表中的第四业务数据置为删除状态;
196.加锁单元,还可以用于将第一宽表中的第四业务数据的删除状态同步至第二宽表,在将第一宽表中第四业务数据的删除状态同步至第二宽表的过程中,对第一宽表中第四业务数据进行加锁;
197.第二同步单元,还可以用于在将第一宽表中第四业务数据的删除状态同步至第二宽表完成之后,对第一宽表中第四业务数据进行解锁,并将第二宽表中的第四业务数据的删除状态同步至对端,以使对端删除第四业务数据。
198.本技术实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
199.存储器803,用于存放计算机程序;
200.处理器801,用于执行存储器803上所存放的程序时,实现上述任一所述的数据同步方法。
201.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
202.通信接口用于上述电子设备与其他设备之间的通信。
203.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
204.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
205.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的数据同步方法。
206.在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据同步方法。
207.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
208.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
209.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
210.以上所述仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1