一种数据湖的数据同步方法、装置、系统、设备及介质制造方法及图纸

技术编号:39187358 阅读:12 留言:0更新日期:2023-10-27 08:34
本申请提供一种数据湖的数据同步方法、装置、系统、设备及介质,该方法包括:当增量同步服务获取到第一数据同步请求时,开启存量同步服务,将第一目标数据湖表中的存量数据同步至第一目标数仓;并将第一目标数据湖表对应的增量数据滞留在数据湖消息队列中;当存量同步任务已全部完成时,开启滞留同步服务,将数据湖消息队列中滞留的第一目标数据湖表对应的增量数据发送至第一目标数据湖表且同步至第一目标数仓;并暂停增量同步服务;当滞留同步任务已全部完成时,重新开启增量同步服务,由增量同步服务将数据湖消息队列中新增的第一目标数据湖表对应的增量数据发送至第一目标数据湖表且同步至第一目标数仓。该方案能降低复杂度,提高同步效率。提高同步效率。提高同步效率。

【技术实现步骤摘要】
一种数据湖的数据同步方法、装置、系统、设备及介质


[0001]本申请涉及数据同步处理
,特别涉及一种数据湖的数据同步方法、装置、系统、设备及介质。

技术介绍

[0002]在传统的数据中台架构中,数据湖作为原始业务数据源和数仓的缓冲地带,提供了对不同原始业务数据的采集和汇聚能力,同时为上层数仓建模提供了基础数据源。随着数据同步技术的发展,特别是基于数据库日志的变化数据捕获技术,实时数据采集和同步方案逐渐成为业界主流。
[0003]基于此,在中台建设中,不同的原始业务数据先被实时采集到数据湖,上层数仓根据数仓模型的需求,从数据湖选择需要同步的基础数据表,进行数据的实时同步处理。为了保证数据的完整性,上层数仓对数据湖数据的同步处理,至少包含:1.同步已在目标数据湖表中的存量数据;2.同步实时采集到的数据湖消息队列中目标数据湖表对应的增量数据。
[0004]而在现有技术方案中,当目标数仓新增对数据湖表的数据同步需求时,为同步目标数据湖表中的存量数据,一种通常的做法是暂停整个数据湖消息队列的数据消费,以达到暂停目标数据湖表对应的增量数据暂停入湖的目的,然而,由于数据湖消息队列中实时采集的原始业务数据,不仅仅是目标数据湖表对应的增量数据,还涉及其他数据湖表对应的增量数据,因此,直接暂停整个数据湖消息队列的数据消费,会对数据湖中其它表的数据同步造成影响,从而降低整体的数据同步效率;另一种通常的做法是将采集到的目标数据湖表对应的增量数据消费后暂存入临时存储介质,如Hive(一种基于分布式系统基础架构的数据仓库工具),待目标数据湖表中的存量数据同步完成,再将临时存储介质中的增量数据进行入湖和同步处理,该方案虽然做到了在同步目标数据湖表中的存量数据时,只针对数据湖消息队列中目标数据湖表对应的增量数据入湖作暂停,但由于要将目标数据湖表对应的增量数据暂存入临时存储介质,增加了临时暂存数据管理的复杂度,以及后续暂存数据处理和实时增量数据处理的衔接难度,容易产生衔接不顺畅的问题,进而降低单位时间内数据湖消息队列的数据处理量,从而降低整体的数据同步效率。

技术实现思路

[0005]本申请为克服上述现有技术存在的缺陷而提供一种数据湖的数据同步方法、装置、系统、设备及介质,能够在降低数据管理复杂度和数据处理衔接难度的基础上,提高数据同步效率。
[0006]为解决上述技术问题,本申请提供以下技术方案:
[0007]根据本申请实施例的第一方面,提供一种数据湖的数据同步方法,包括:
[0008]外部数仓将第一数据同步请求发送至数据湖消息队列;所述第一数据同步请求中携带第一数据同步关系信息;
[0009]增量同步服务从所述数据湖消息队列中获取所述第一数据同步请求;
[0010]所述增量同步服务基于所述第一数据同步请求,发送所述第一数据同步关系信息至全局同步状态缓存,以更新所述全局同步状态缓存中的同步关系,得到第一目标同步关系;以及所述增量同步服务基于所述第一数据同步请求,发送存量同步请求至存量同步服务,以使得所述存量同步服务将第一目标数据湖表中的存量数据同步至与所述第一目标数据湖表对应的第一目标数仓;所述存量同步请求中携带存量同步关系信息,所述存量同步关系信息基于所述第一数据同步关系信息确定得到;以及所述增量同步服务基于所述存量同步请求,暂停对所述数据湖消息队列中所述第一目标数据湖表对应的增量数据的增量同步,以使得所述第一目标数据湖表对应的增量数据滞留在所述数据湖消息队列中;
[0011]在所述增量同步服务查询到所述全局同步状态缓存中的同步进度信息指示所述第一目标数据湖表对应的存量同步任务已全部完成的情况下,发送滞留同步请求至滞留同步服务,以使得所述滞留同步服务将所述数据湖消息队列中滞留的所述第一目标数据湖表对应的增量数据发送至所述第一目标数据湖表且进一步同步至所述第一目标数仓;所述滞留同步请求中携带滞留同步关系信息,所述滞留同步关系信息基于所述第一数据同步关系信息确定得到;以及暂停所述增量同步服务;
[0012]在所述同步进度信息指示所述第一目标数据湖表对应的滞留同步任务已全部完成的情况下,重新开启所述增量同步服务,由所述增量同步服务将所述数据湖消息队列中新增的所述第一目标数据湖表对应的增量数据发送至所述第一目标数据湖表且进一步同步至所述第一目标数仓。
[0013]进一步地,所述方法包括两种数据同步场景,具体包括稳定态的增量同步场景和非稳定态的初始化同步场景,所述外部数仓将第一数据同步请求发送至数据湖消息队列,至由所述增量同步服务将所述数据湖消息队列中新增的所述第一目标数据湖表对应的增量数据发送至所述第一目标数据湖表且进一步同步至所述第一目标数仓的步骤基于非稳定态的初始化同步场景确定得到,所述稳定态的增量同步场景的数据同步步骤包括:
[0014]所述外部数仓将第二数据同步请求发送至数据湖消息队列;所述第二数据同步请求中携带第二数据同步关系信息;
[0015]所述增量同步服务从所述数据湖消息队列中获取所述第二数据同步请求;
[0016]所述增量同步服务基于所述第二数据同步请求,发送所述第二数据同步关系信息至全局同步状态缓存,以更新所述全局同步状态缓存中的同步关系,得到第二目标同步关系;
[0017]所述增量同步服务基于所述第二目标同步关系,将所述数据湖消息队列中新增的所述第二目标数据湖表对应的增量数据发送至所述第二目标数据湖表,或在所述第二目标数据湖表与第二目标数仓存在对应的同步关系的情况下,进一步同步至第二目标数仓。
[0018]进一步地,所述方法还包括确定所述滞留的所述第一目标数据湖表对应的增量数据的步骤,所述确定所述滞留的所述第一目标数据湖表对应的增量数据,包括:
[0019]在所述增量同步服务查询到所述同步进度信息中的所述第一目标数据湖表对应的第一存量同步任务数为零的情况下,所述增量同步服务获取所述数据湖消息队列中所述第一目标数据湖表对应的增量数据的第一偏移量位置,并将所述第一偏移量位置记录在所述全局同步状态缓存中;所述第一存量同步任务数为所述增量同步服务在获取到所述第一数据同步请求之前,所述全局同步状态缓存中已记录的所述第一目标数据湖表对应的存量
同步任务数;
[0020]在所述增量同步服务查询到所述同步进度信息中的所述第一目标数据湖表对应的第二存量同步任务数为零的情况下,所述增量同步服务获取所述数据湖消息队列中所述第一目标数据湖表对应的增量数据的第二偏移量位置,并将所述第二偏移量位置记录在所述全局同步状态缓存中;所述第二存量同步任务数为所述增量同步服务在获取到所述第一数据同步请求之后,所述全局同步状态缓存中记录的所述第一目标数据湖表对应的存量同步任务数;
[0021]所述滞留同步服务基于所述全局同步状态缓存中的所述第一偏移量位置和所述第二偏移量位置,确定所述滞留的所述第一目标数据湖表对应的增量数据。
[0022]进一步地,所述滞留同步服务基于所述全局同步状态缓存中的所述第一偏移量位置和所述第二偏移量本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据湖的数据同步方法,其特征在于,包括:外部数仓将第一数据同步请求发送至数据湖消息队列;所述第一数据同步请求中携带第一数据同步关系信息;增量同步服务从所述数据湖消息队列中获取所述第一数据同步请求;所述增量同步服务基于所述第一数据同步请求,发送所述第一数据同步关系信息至全局同步状态缓存,以更新所述全局同步状态缓存中的同步关系,得到第一目标同步关系;以及所述增量同步服务基于所述第一数据同步请求,发送存量同步请求至存量同步服务,以使得所述存量同步服务将第一目标数据湖表中的存量数据同步至与所述第一目标数据湖表对应的第一目标数仓;所述存量同步请求中携带存量同步关系信息,所述存量同步关系信息基于所述第一数据同步关系信息确定得到;以及所述增量同步服务基于所述存量同步请求,暂停对所述数据湖消息队列中所述第一目标数据湖表对应的增量数据的增量同步,以使得所述第一目标数据湖表对应的增量数据滞留在所述数据湖消息队列中;在所述增量同步服务查询到所述全局同步状态缓存中的同步进度信息指示所述第一目标数据湖表对应的存量同步任务已全部完成的情况下,发送滞留同步请求至滞留同步服务,以使得所述滞留同步服务将所述数据湖消息队列中滞留的所述第一目标数据湖表对应的增量数据发送至所述第一目标数据湖表且进一步同步至所述第一目标数仓;所述滞留同步请求中携带滞留同步关系信息,所述滞留同步关系信息基于所述第一数据同步关系信息确定得到;以及暂停所述增量同步服务;在所述同步进度信息指示所述第一目标数据湖表对应的滞留同步任务已全部完成的情况下,重新开启所述增量同步服务,由所述增量同步服务将所述数据湖消息队列中新增的所述第一目标数据湖表对应的增量数据发送至所述第一目标数据湖表且进一步同步至所述第一目标数仓;其中,所述同步进度信息基于所述存量同步服务、所述滞留同步服务和所述增量同步服务确定得到。2.根据权利要求1所述的数据湖的数据同步方法,其特征在于,所述方法包括两种数据同步场景,具体包括稳定态的增量同步场景和非稳定态的初始化同步场景,所述外部数仓将第一数据同步请求发送至数据湖消息队列,至由所述增量同步服务将所述数据湖消息队列中新增的所述第一目标数据湖表对应的增量数据发送至所述第一目标数据湖表且进一步同步至所述第一目标数仓的步骤基于非稳定态的初始化同步场景确定得到,所述稳定态的增量同步场景的数据同步步骤包括:所述外部数仓将第二数据同步请求发送至数据湖消息队列;所述第二数据同步请求中携带第二数据同步关系信息;所述增量同步服务从所述数据湖消息队列中获取所述第二数据同步请求;所述增量同步服务基于所述第二数据同步请求,发送所述第二数据同步关系信息至全局同步状态缓存,以更新所述全局同步状态缓存中的同步关系,得到第二目标同步关系;所述增量同步服务基于所述第二目标同步关系,将所述数据湖消息队列中新增的所述第二目标数据湖表对应的增量数据发送至所述第二目标数据湖表,或在所述第二目标数据湖表与第二目标数仓存在对应的同步关系的情况下,进一步同步至第二目标数仓。3.根据权利要求1所述的数据湖的数据同步方法,其特征在于,所述方法还包括确定所
述滞留的所述第一目标数据湖表对应的增量数据的步骤,所述确定所述滞留的所述第一目标数据湖表对应的增量数据,包括:在所述增量同步服务查询到所述同步进度信息中的所述第一目标数据湖表对应的第一存量同步任务数为零的情况下,所述增量同步服务获取所述数据湖消息队列中所述第一目标数据湖表对应的增量数据的第一偏移量位置,并将所述第一偏移量位置记录在所述全局同步状态缓存中;所述第一存量同步任务数为所述增量同步服务在获取到所述第一数据同步请求之前,所述全局同步状态缓存中已记录的所述第一目标数据湖表对应的存量同步任务数;在所述增量同步服务查询到所述同步进度信息中的所述第一目标数据湖表对应的第二存量同步任务数为零的情况下,所述增量同步服务获取所述数据湖消息队列中所述第一目标数据湖表对应的增量数据的第二偏移量位置,并将所述第二偏移量位置记录在所述全局同步状态缓存中;所述第二存量同步任务数为所述增量同步服务在获取到所述第一数据同步请求之后,所述全局同步状态缓存中记录的所述第一目标数据湖表对应的存量同步任务数;所述滞留同步服务基于所述全局同步状态缓存中的所述第一偏移量位置和所述第二偏移量位置,确定所述滞留的所述第...

【专利技术属性】
技术研发人员:谭彰李红波杨彦钢郑晓
申请(专利权)人:蓝卓数字科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1