本发明涉及数据处理,特别是涉及一种数据的同步方法、一种数据的同步装置、一种电子设备以及一种计算机可读存储介质。
背景技术:
1、软件即服务(software as a service,saas)是随着互联网技术的发展和应用软件的成熟,而开始兴起的一种完全创新的软件应用模式。saas服务商将应用软件统一部署在服务器上,通过internet为用户提供软件服务的模式。客户可以根据实际需求,通过互联网向saas服务商定购所需的软件服务,按定购的服务多少和时间长短向服务商支付费用,并通过互联网获得服务商提供的软件服务。在saas服务模式中,客户不用再购买软件,而改为向服务商租用基于web的软件,并且无需对软件进行维护,这样,便使得客户不必在硬件和软件维护方面耗费大量的人力物力,从而大大节省了企业经营成本。其中,随着数据量的增加,在saas项目初期会因为数据质量的原因频繁地进行全量数据的刷新,由于数据量较大,每一次数据的变化都需要耗费较长的时间进行数据同步,一方面给系统增加了较大的负担,提高了系统崩溃的风险,另一方面庞大的数据量还容易降低数据同步的准确性。
技术实现思路
1、本发明实施例是提供一种数据的同步方法、装置、电子设备以及计算机可读存储介质,以解决或部分解决数据同步过程中存在系统负担高以及数据同步的准确性低的问题。
2、本发明实施例公开了一种数据的同步方法,包括:
3、获取针对企业用户数据的数据更新指令,所述更新指令包括增量更新指令或全量更新指令;
4、拉取与所述数据更新指令对应的目标数据,所述目标数据包括所述增量更新指令对应的增量数据或所述全量更新指令对应的全量数据;
5、根据所述增量数据或全量数据进行索引构建,获得与所述数据更新指令对应的索引实体,将所述索引实体存储至数据库中实现数据同步。
6、可选的,所述增量数据至少包括企业用户标识以及与所述企业标识关联的企业经营信息,所述根据所述增量数据进行索引构建,获得与所述数据更新指令对应的索引实体,包括:
7、以各个所述企业用户标识为键,将关联同一个企业用户标识的企业经营信息进行聚合,构建各个所述企业用户标识对应的索引实体。
8、可选的,所述全量数据至少包括企业用户标识以及与所述企业用户标识关联的企业经营信息,所述根据所述增量数据或全量数据进行索引构建,获得与所述数据更新指令对应的索引实体,将所述索引实体存储至数据库中实现数据同步,包括:
9、新建与所述全量更新指令对应的初始离线索引;
10、以各个所述企业用户标识为键,将关联同一个企业用户标识的企业经营信息进行聚合,构建各个所述企业用户标识对应的索引实体;
11、将各个所述企业用户标识对应的索引实体同步至所述离线索引中,获得目标离线索引;
12、将数据库中的当前离线索引替换为所述目标离线索引实现数据同步。
13、可选的,所述新建与所述全量更新指令对应的初始离线索引之后,所述方法还包括:
14、从hive数据表中读取与所述全量数据对应的目标标签表,所述目标标签表包括用于表征数据来源的标签信息;
15、将与所述全量数据对应的标签信息同步至所述初始离线索引中。
16、可选的,所述新建与所述全量更新指令对应的初始离线索引之后,所述方法还包括:
17、获取用户权限信息,所述用户权限信息表征用户是否对企业用户数据具有访问权限,以及访问权限的权限内容;
18、将所述用户权限信息同步至所述初始离线索引中。
19、可选的,所述拉取与所述数据更新指令对应的目标数据,包括:
20、若所述数据更新指令为增量更新指令,则从hive数据表中提取增量标识,并向数据仓库发送所述增量标识,以及接收所述数据仓库返回的与所述增量标识对应的增量数据;
21、若所述数据更新指令为全量更新指令,则从所述hive数据表读取目标标签表,并向所述数据仓库发送所述目标标签表中记录的标签信息,以及接收所述数据仓库返回的与所述标签信息对应的全量数据。
22、可选的,所述拉取与所述数据更新指令对应的目标数据之后,所述方法包括:
23、获取所述目标数据对应的数据头以及数据尾;
24、其中,所述根据所述增量数据或全量数据进行索引构建,获得与所述数据更新指令对应的索引实体,将所述索引实体存储至数据库中实现数据同步,包括:
25、响应于检测到所述数据尾,触发根据所述增量数据或全量数据进行索引构建,获得与所述数据更新指令对应的索引实体,将所述索引实体存储至数据库中实现数据同步。
26、可选的,所述获取针对所述企业用户数据的数据更新指令之前,所述方法还包括:
27、获取各个企业用户对应的企业用户数据;
28、按照预设标识对各个所述企业用户数据进行整合,生成用户数据表;
29、获取所述企业用户数据对应的数据源,按照所述数据源对所述用户数据表进行打标,获得所述用户数据表对应的标签信息;
30、将各个所述用户数据表对应的标签信息进行整合,构建与所述企业用户数据对应的标签表。
31、可选的,所述获取针对企业用户数据的数据更新指令,包括:
32、响应于当前时间点满足预设间隔时长,生成针对企业用户数据的增量更新指令,或,响应于用户输入针对企业用户数据的全量获取操作,生成针对所述企业用户数据的全量更新指令。
33、本发明实施例还公开了一种数据的同步装置,包括:
34、更新指令获取模块,用于获取针对企业用户数据的数据更新指令,所述更新指令包括增量更新指令或全量更新指令;
35、数据拉取模块,用于拉取与所述数据更新指令对应的目标数据,所述目标数据包括所述增量更新指令对应的增量数据或所述全量更新指令对应的全量数据;
36、数据同步模块,用于根据所述增量数据或全量数据进行索引构建,获得与所述数据更新指令对应的索引实体,将所述索引实体存储至数据库中实现数据同步。
37、可选的,所述增量数据至少包括企业用户标识以及与所述企业标识关联的企业经营信息,所述数据同步模块具体用于:
38、以各个所述企业用户标识为键,将关联同一个企业用户标识的企业经营信息进行聚合,构建各个所述企业用户标识对应的索引实体。
39、可选的,所述全量数据至少包括企业用户标识以及与所述企业用户标识关联的企业经营信息,所述数据同步模块具体用于:
40、新建与所述全量更新指令对应的初始离线索引;
41、以各个所述企业用户标识为键,将关联同一个企业用户标识的企业经营信息进行聚合,构建各个所述企业用户标识对应的索引实体;
42、将各个所述企业用户标识对应的索引实体同步至所述离线索引中,获得目标离线索引;
43、将数据库中的当前离线索引替换为所述目标离线索引实现数据同步。
44、可选的,所述装置还包括:
45、标签信息获取模块,用于从hive数据表中读取与所述全量数据对应的目标标签表,所述目标标签表包括用于表征数据来源的标签信息;
46、标签信息同步模块,用于将与所述全量数据对应的标签信息同步至所述初始离线索引中。
47、可选的,所述装置还包括:
48、权限信息获取模块,用于获取用户权限信息,所述用户权限信息表征用户是否对企业用户数据具有访问权限,以及访问权限的权限内容;
49、权项信息同步模块,用于将所述用户权限信息同步至所述初始离线索引中。
50、可选的,所述数据拉取模块具体用于:
51、若所述数据更新指令为增量更新指令,则从hive数据表中提取增量标识,并向数据仓库发送所述增量标识,以及接收所述数据仓库返回的与所述增量标识对应的增量数据;
52、若所述数据更新指令为全量更新指令,则从所述hive数据表读取目标标签表,并向所述数据仓库发送所述目标标签表中记录的标签信息,以及接收所述数据仓库返回的与所述标签信息对应的全量数据。
53、可选的,所述装置包括:
54、消息体获取模块,用于获取所述目标数据对应的数据头以及数据尾;
55、其中,所述数据同步模块具体用于:
56、响应于检测到所述数据尾,触发根据所述增量数据或全量数据进行索引构建,获得与所述数据更新指令对应的索引实体,将所述索引实体存储至数据库中实现数据同步。
57、可选的,所述装置还包括:
58、数据获取模块,用于获取各个企业用户对应的企业用户数据;
59、数据表生成模块,用于按照预设标识对各个所述企业用户数据进行整合,生成用户数据表;
60、打标模块,用于获取所述企业用户数据对应的数据源,按照所述数据源对所述用户数据表进行打标,获得所述用户数据表对应的标签信息;
61、标签处理模块,用于将各个所述用户数据表对应的标签信息进行整合,构建与所述企业用户数据对应的标签表。
62、可选的,所述更新指令获取模块具体用于:
63、响应于当前时间点满足预设间隔时长,生成针对企业用户数据的增量更新指令,或,响应于用户输入针对企业用户数据的全量获取操作,生成针对所述企业用户数据的全量更新指令。
64、本发明实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
65、所述存储器,用于存放计算机程序;
66、所述处理器,用于执行存储器上所存放的程序时,实现如本发明实施例所述的方法。
67、本发明实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的方法。
68、本发明实施例包括以下优点:
69、在本发明实施例中,在对企业用户数据进行同步的过程中,通过获取针对企业用户数据的数据更新指令,更新指令包括增量更新指令或全量更新指令,接着拉取与数据更新指令对应的目标数据,目标数据包括增量更新指令对应的增量数据或全量更新指令对应的全量数据,然后根据增量数据或全量数据进行索引构建,获得与数据更新指令对应的索引实体,将索引实体存储至数据库中实现数据同步,通过对增量数据同步流程和全量数据同步流程进行解耦,不仅实现了多类型同步流程的独立性,降低了数据同步的干扰,而且可以实现多类型同步流程的并行处理,提高了数据同步的效率,以及基于索引实体进行数据同步,能够降低数据同步的时间,提高了单个同步流程的同步效率。