云边双向数据同步方法、装置、介质、设备和程序产品与流程

摘要: 本技术涉及分布式数据同步领域,特别涉及一种云边双向数据同步方法、装置、介质、设备和程序产品。背景技术:1、在边缘计算场景中,同一张业务表可能同时承载中心侧管理字...
云边双向数据同步方法、装置、介质、设备和程序产品与流程

本技术涉及分布式数据同步领域,特别涉及一种云边双向数据同步方法、装置、介质、设备和程序产品。

背景技术:

1、在边缘计算场景中,同一张业务表可能同时承载中心侧管理字段和边缘侧运行字段。例如,中心侧负责维护资源分组、调度策略、计费策略、管理状态等字段,边缘侧负责维护本地运行状态、采集时间、实时用量、执行结果等字段。为了保证中心与边缘均可获得完整业务视图,同一条记录往往需要在云端与边缘端之间进行双向同步。

2、传统双向同步通常以整条记录为同步单位,该方式实现简单,但在双端分别维护不同字段的场景下容易产生覆盖问题:边缘端将本地运行字段推送到中心时,如果同步包中携带了中心侧维护字段的旧值或空值,可能覆盖中心侧刚更新的策略字段;中心端将管理配置下发到边缘时,如果同步包中携带了边缘侧维护字段的旧值或空值,可能覆盖边缘侧刚采集的运行状态。即使采用时间戳或版本号判断,也只能判断整条记录的新旧,难以表达同一条记录中不同字段由不同方向负责维护的事实。

3、现有方案中,也可以通过为不同方向拆分多张表来降低覆盖风险,但会引入数据模型膨胀、查询拼接复杂、业务代码改造大等问题;也可以在业务代码中逐表手写字段合并逻辑,但会造成同步规则分散、后续新增字段容易遗漏。

4、因此,如何在不拆表、不大量侵入业务代码的前提下,使同步框架按同步方向识别字段所有权并在目标端只更新本方向允许覆盖的字段,为本领域技术人员亟需解决的技术问题。

技术实现思路

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、本技术还提供一种云边双向数据同步装置、计算机可读存储介质、电子设备和计算机程序产品,具有上述有益效果,此处不再赘述。