宽表的同步处理方法、装置、电子设备及计算机可读介质与流程

未命名 10-08 阅读:110 评论:0
1.本公开涉及计算机
技术领域
:,具体而言,涉及一种宽表的同步处理方法、宽表的同步处理装置、电子设备及计算机可读介质。
背景技术
::2.在现有主流技术中,例如apacheflink(流式数据分布式处理引擎),可以通过sql(structuredquerylanguage,结构化查询语言)和api(applicationprogramminginterface,应用程序接口)实现多张单表关联计算合成宽表的实时增量同步。3.然而在进行多张单表的关联计算时,由于检查点的数据存储有可能会达到gb甚至tb级别,如果没有存储介质资源或存储空间不足,则无法进行同步。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.图1示出了本公开示例实施方式的宽表的同步处理方法的流程示意图;40.图2示出了根据本公开的一个具体实施方式的宽表关联树形结构的示意图;41.图3示出了本公开示例实施方式的宽表数据插入操作的流程示意图;42.图4示出了根据本公开的一个具体实施方式中插入a表数据时的流程示意图;43.图5示出了根据本公开的一个具体实施方式中插入b表数据时的流程示意图;44.图6示出了根据本公开的一个具体实施方式中插入c表数据时的流程示意图;45.图7示出了根据本公开的一个具体实施方式中插入d表数据时的流程示意图;46.图8示出了本公开示例实施方式的宽表数据删除操作的流程示意图;47.图9示出了根据本公开的一个具体实施方式中删除关键表数据时的流程示意图;48.图10示出了根据本公开的一个具体实施方式中删除普通表数据时的流程示意图;49.图11示出了本公开示例实施方式的宽表数据更新操作的流程示意图;50.图12示出了根据本公开的一个具体实施方式中更新宽表数据时的流程示意图;51.图13示出了本公开示例实施方式的宽表的同步处理装置的框图;52.图14示出了适于用来实现本公开实施方式的电子设备的计算机系统的结构示意图。具体实施方式53.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。54.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。55.在现有主流技术中,例如apacheflink(流式数据分布式处理引擎),可以通过sql(structuredquerylanguage,结构化查询语言)和api(applicationprogramminginterface,应用程序接口)实现多张单表关联计算合成宽表的实时增量同步。以flink为例,flink的核心是依赖于检查点(checkpoint)机制实现现有状态的流式处理,检查点通过全局快照(abs)算法产生全局快照存储在分布式文件系统或rocksdb(存储引擎)中,每个检查点完成checkpoint后会产生sstable(sortedstringtable,bigtable底层的数据存储格式)文件,后面的检查点进行checkpoint后会使用之前计算产生的sstable合并成新的sstable,然后在所有检查点完成后输出最终宽表。56.然而在进行多张单表的关联计算时,现有主流技术中大部分会将中间计算结果保存在存储介质中,例如flink默认采用rocksdb状态后端方式,每个checkpoint周期都会记录rocksdb快照,并持久化到文件系统中,状态保存在taskmanage(集群slave节点)中,检查点存储在jobmanager(集群master节点)中。实际操作时可能存在以下两个方面的问题:57.1、检查点的数据存储有可能会达到gb甚至tb级别,如果在没有存储介质资源或存储空间不足等条件下,可能无法采用现有技术进行同步。58.2、由于检查点是存储在jobmanager中,而各个jobmanager可能运行在不同主机上面,检查点checkpoint后产生的文件在节点间传输过程中有可能受网络限制,造成同步作业失败或延迟。59.基于上述问题,本示例实施方式首先提供了一种宽表的同步处理方法。参考图1所示,上述宽表的同步处理方法可以包括以下步骤:60.步骤s110.响应针对于宽表的同步操作指令,获取同步操作指令对应的目标单表以及操作类型。61.步骤s120.获取宽表的关联树形结构,并确定目标单表在关联树形结构中对应的目标节点。62.步骤s130.根据同步操作指令更新目标节点中的缓存对象,并根据操作类型以及关联树形结构中各个节点的关联条件对象对目标单表进行处理。63.本公开示例实施方式的宽表的同步处理方法中,通过获取同步操作指令对应的目标单表以及操作类型,以及宽表的关联树形结构,然后根据同步操作指令扫描关联树形结构并更新缓存数据,从而在缓存中进行宽表的关联计算。本公开示例实施方式中的宽表的同步处理方法,一方面,由于表之间的关联计算都是在缓存中进行的,因此不需要额外的存储介质,在没有存储介质资源或存储空间不足等条件下,也能够进行宽表的同步处理;另一方面,各个节点均可运行在相同主机中,不存在网络传输问题,因此能够解决由于网络限制造成的同步作业失败或延迟的问题,保证宽表的实时同步效率,实现宽表增量实时同步的延迟时间达到秒级以下。64.下面,结合图2至图12对本示例实施方式的上述步骤进行更加详细的说明。65.在步骤s110中,响应针对于宽表的同步操作指令,获取同步操作指令对应的目标单表以及操作类型。66.宽表指的是业务主题相关的指标、维度、属性关联在一起的数据库表,通过宽表的使用,既能解决多维分析时多表的关联问题,又能提高数据查询的速度和分析操作的便捷性。67.本示例实施方式中,宽表可以由多个单表之间的关联关系计算出来,宽表的计算就是不断更新缓存的过程,针对于宽表的操作类型可以包括插入操作、删除操作和更新操作等。68.在步骤s120中,获取宽表的关联树形结构,并确定目标单表在关联树形结构中对应的目标节点。69.本示例实施方式中,关联树形结构中的每个节点分别对应一个单表,每个节点包括一个缓存对象(buffer)和多个关联条件对象(index),其中,缓存对象满足lru(leastrecentlyused,最近最少使用,一种缓存淘汰算法)的kv结构,key为记录主键值,value为记录,每个关联条件对象对应一个关联条件。70.图2为根据本公开的一个具体实施方式的宽表关联树形结构的示意图,该宽表中包含a、b、c、d四个单表,每个单表中包含多个字段,如a1、a2、b1、b2等等。假设a表和b表为关键表,关键字段分别为a2、b2。a表与b表和c表关联,a表与b表之间的关联条件为a.a1=b.b1,a表与c表之间的关联条件为a.a2=c.c2;c表与d表关联,c表与d表之间的关联条件为c.c1=d.d1。其中,关键字段是可以唯一确定宽表一条数据的字段集合,类似于mysql(关系型数据库管理系统)中的联合索引,关键表为关键字段所在的单表。71.在步骤s130中,根据同步操作指令更新目标节点中的缓存对象,并根据操作类型以及关联树形结构中各个节点的关联条件对象对目标单表进行处理。72.本示例实施方式中,首先根据同步操作指令更新目标节点中的缓存对象,然后根据不同的操作类型以及关联树形结构中各个节点的关联条件对象对目标单表进行同步处理。73.本示例实施方式中,如图3所示,在操作类型为插入操作时,根据操作类型以及关联树形结构中各个节点的关联条件对象对目标单表进行处理,具体可以包括以下几个步骤:74.步骤s310.根据目标节点中的单表类型以及关联树形结构中各个节点的关联条件对象,确定目标节点对应的目标检索节点。75.本示例实施方式中,目标节点中的单表类型可以包括关键表和普通表,目标节点对应的目标检索节点可以包括关联树形结构中与目标节点具有关联关系的其他节点以及关键节点,因此,可以根据目标单表本身的单表类型,以及各个节点的关联条件对象来确定一个或多个目标检索节点。76.步骤s320.判断目标检索节点对应的单表中是否包含对应的单表数据。77.确定目标检索节点之后,扫描各个目标检索节点对应的单表中的数据,判断各个目标检索节点对应的单表中是否包含对应的单表数据,即判断缓存中的key都有对应的关联字段。78.步骤s330.若包含,则获取宽表中的关键表,并根据关联树形结构中各个节点的关联条件对象,判断关键表中的关键数据是否齐全。79.如果各个目标检索节点对应的单表中都包含对应的单表数据,则根据关联条件对象判断关键表中的关键数据是否齐全。如果未扫描出目标检索节点对应的单表中的数据,则终止扫描,并结束流程。80.步骤s340.若关键表中的关键数据齐全,则将目标单表中的单表数据插入宽表。81.若关键表中的关键数据齐全,则将目标单表中的单表数据插入宽表。如果关键数据不齐全,则不进行操作。82.图4至图7为根据本公开的一个具体实施方式中的插入操作对应的宽表的同步处理方法,以图2所示的宽表的关联树形结构中的各个节点为例,是对本示例实施方式中的上述步骤的举例说明。83.如图4所示是本公开的一个具体实施方式中插入a表数据时的完整流程图,该流程图的具体步骤如下:84.步骤s410.a表数据来,更新a表缓存对象。85.步骤s420.扫描宽表的关联树形结构。86.步骤s430.判断b表是否有数据。87.根据a表和b表关联字段检索index-kv,若未扫描出b表数据,即未命中,则进入步骤s440;若扫描出b表数据,则进入步骤s450。88.步骤s440.终止扫描。89.步骤s450.判断关键数据是否齐全。90.根据index判断宽表关键数据是否齐全。若不齐全,则进入步骤s460;若齐全,则进入步骤s470。91.步骤s460.不进行操作。92.步骤s470.插入宽表。93.若关键数据齐全,将a表中的数据插入宽表。94.如图5所示是本公开的一个具体实施方式中插入b表数据时的完整流程图,该流程图的具体步骤如下:95.步骤s510.b表数据来,更新b表缓存对象。96.步骤s520.扫描宽表的关联树形结构。97.步骤s530.判断a表是否有数据。98.根据a表和b表关联字段检索index-kv,若未扫描出a表数据,即未命中,则进入步骤s540;若扫描出a表数据,则进入步骤s550。99.步骤s540.终止扫描。100.步骤s550.判断c表是否有数据。101.扫描c表并判断是否有数据,若未扫描出c表数据,则进入步骤s560;若扫描出c表数据,则进入步骤s57。102.步骤s560.终止扫描。103.步骤s570.判断关键数据是否齐全。104.根据index判断宽表关键数据是否齐全。若不齐全,则进入步骤s580;若齐全,则进入步骤s590。105.步骤s580.不进行操作。106.步骤s590.插入宽表。107.若关键数据齐全,将b表中的数据插入宽表。108.如图6所示是本公开的一个具体实施方式中插入c表数据时的完整流程图,该流程图的具体步骤如下:109.步骤s610.c表数据来,更新c表缓存对象。110.步骤s620.扫描宽表的关联树形结构。111.步骤s630.更新a、b、d三张表的缓存数据。112.步骤s640.插入宽表。113.将缓存中计算完成的数据填充到宽表中。114.如图7所示是本公开的一个具体实施方式中插入d表数据时的完整流程图,该流程图的具体步骤如下:115.步骤s710.d表数据来,更新d表缓存对象。116.步骤s720.扫描宽表的关联树形结构。117.步骤s730.判断c表是否有数据。118.若未扫描出c表数据,即未命中,则进入步骤s740;若扫描出c表数据,则进入步骤s750。119.步骤s740.终止扫描。120.步骤s750.判断关键数据是否齐全。121.根据index判断宽表关键数据是否齐全。若不齐全,则进入步骤s760;若齐全,则进入步骤s770。122.步骤s760.不进行操作。123.步骤s770.插入宽表。124.若关键数据齐全,将d表中的数据插入宽表。125.本示例实施方式中,如图8所示,在操作类型为删除操作时,根据操作类型以及关联树形结构中各个节点的关联条件对象对目标单表进行处理,具体可以包括以下几个步骤:126.步骤s810.获取宽表中的关键表,并根据关联树形结构中各个节点的关联条件对象,判断关键表中的关键数据是否齐全。127.与此同时,将目标节点中的缓存对象和关联条件对象从缓存中移除。128.步骤s820.若关键表中的关键数据齐全,则根据目标节点中的单表类型执行删除操作。129.具体的,若目标节点中的单表类型为关键表,则删除宽表。若目标节点中的单表类型为普通表,则删除目标节点对应的单表数据,并更新宽表中的数据。若关键表中的关键数据不齐全,则不进行操作。130.图9和图10为根据本公开的一个具体实施方式中的删除操作对应的宽表的同步处理方法,以图2所示的宽表的关联树形结构中的各个节点为例,是对本示例实施方式中的上述步骤的举例说明。131.如图9所示是本公开的一个具体实施方式中删除关键表数据时的完整流程图,该流程图的具体步骤如下:132.步骤s910.a表或b表删除事件来,更新对应单表缓存对象。133.步骤s920.扫描宽表的关联树形结构。134.根据ab表关联字段检索index-kv,如果检索到,即命中,则将缓存数据从对应value中移除,同时从buffer中移除,若未命中,不做任何操作。135.步骤s930.判断关键数据是否齐全。136.若不齐全,则进入步骤s940;若齐全,则进入步骤s950。137.步骤s940.不进行操作。138.步骤s950.删除宽表。139.如图10所示是本公开的一个具体实施方式中删除普通表数据时的完整流程图,该流程图的具体步骤如下:140.步骤s1010.c表或d表删除事件来,更新对应单表缓存对象。141.步骤s1020.扫描宽表的关联树形结构。142.根据cd表关联字段检索index-kv,如果检索到,即命中,则将缓存数据从对应value中移除,同时从buffer中移除,若未命中,不做任何操作。143.步骤s1030.判断关键数据是否齐全。144.若不齐全,则进入步骤s1040;若齐全,则进入步骤s1050。145.步骤s1040.不进行操作。146.步骤s1050.删除c表或d表及其对应的子节点数据。147.步骤s1060.更新宽表数据。148.本示例实施方式中,如图11所示,在操作类型为更新操作时,根据操作类型以及关联树形结构中各个节点的关联条件对象对目标单表进行处理,具体可以包括以下几个步骤:149.步骤s1110.判断更新操作对应的目标单表中的目标字段是否为关键字段。150.更新事件来时,需要根据更新数据是否为关键字段来选择不同的处理流程。151.步骤s1120.若目标字段不是关键字段,则将目标字段中的原始字段数据删除并插入更新字段数据。152.若目标字段不是关键字段,则对更新前的原始字段数据进行删除操作,然后对更新后数据进行插入操作。153.步骤s1130.若目标字段是关键字段,则将更新字段数据插入目标单表对应的缓存对象中。154.若目标字段是关键字段,则只更新buffer数据,将更新字段数据插入目标单表对应的缓存对象中。155.图12为根据本公开的一个具体实施方式中的更新操作对应的宽表的同步处理方法,以图2所示的宽表的关联树形结构中的各个节点为例,是对本示例实施方式中的上述步骤的举例说明,该流程图的具体步骤如下:156.步骤s1210.获取更新的目标字段。157.步骤s1220.判断是否为关键字段。158.若是,则进入步骤s1230;若否,则进入步骤s1240。159.步骤s1230.仅更新缓存对象中的数据。160.步骤s1240.删除更新前的原始字段数据。161.步骤s1250.插入更新后的字段数据。162.应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。163.进一步的,本公开还提供了一种宽表的同步处理装置。参考图13所示,该宽表的同步处理装置可以包括操作指令获取模块1310、宽表结构获取模块1320以及目标单表处理模块1330。其中:164.操作指令获取模块1310可以用于响应针对于宽表的同步操作指令,获取同步操作指令对应的目标单表以及操作类型;165.宽表结构获取模块1320可以用于获取宽表的关联树形结构,并确定目标单表在关联树形结构中对应的目标节点,其中,关联树形结构中的每个节点包括一个缓存对象和多个关联条件对象,每个节点分别对应一个单表;166.目标单表处理模块1330可以用于根据同步操作指令更新目标节点中的缓存对象,并根据操作类型以及关联树形结构中各个节点的关联条件对象对目标单表进行处理。167.在本公开的一些示例性实施例中,目标单表处理模块1330可以包括目标检索节点确定单元、目标检索数据判断单元、关键数据判断单元以及单表数据插入单元。其中:168.目标检索节点确定单元可以用于根据目标节点中的单表类型以及关联树形结构中各个节点的关联条件对象,确定目标节点对应的目标检索节点;169.目标检索数据判断单元可以用于判断目标检索节点对应的单表中是否包含对应的单表数据;170.关键数据判断单元可以用于若包含,则获取宽表中的关键表,并根据关联树形结构中各个节点的关联条件对象,判断关键表中的关键数据是否齐全;171.单表数据插入单元可以用于若关键表中的关键数据齐全,则将目标单表中的单表数据插入宽表。172.在本公开的一些示例性实施例中,目标单表处理模块1330还可以包括关键数据判断单元以及删除操作执行单元。其中:173.关键数据判断单元可以用于获取宽表中的关键表,并根据关联树形结构中各个节点的关联条件对象,判断关键表中的关键数据是否齐全;174.删除操作执行单元可以用于若关键表中的关键数据齐全,则根据目标节点中的单表类型执行删除操作。175.在本公开的一些示例性实施例中,删除操作执行单元可以包括关键表删除单元,可以用于若目标节点中的单表类型为关键表,则删除宽表。176.在本公开的一些示例性实施例中,删除操作执行单元还可以包括普通表删除单元,可以用于若目标节点中的单表类型为普通表,则删除目标节点对应的单表数据,并更新宽表中的数据。177.在本公开的一些示例性实施例中,目标单表处理模块1330还可以包括缓存对象移除单元,可以用于将目标节点中的缓存对象和关联条件对象从缓存中移除。178.在本公开的一些示例性实施例中,目标单表处理模块1330还可以包括关键字段判定单元、普通字段更新单元以及关键字段更新单元。其中:179.关键字段判定单元可以用于判断更新操作对应的目标单表中的目标字段是否为关键字段;180.普通字段更新单元可以用于若目标字段不是关键字段,则将目标字段中的原始字段数据删除并插入更新字段数据;181.关键字段更新单元可以用于若目标字段是关键字段,则将更新字段数据插入目标单表对应的缓存对象中。182.上述宽表的同步处理装置中各模块/单元的具体细节在相应的方法实施例部分已有详细的说明,此处不再赘述。183.图14示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。184.需要说明的是,图14示出的电子设备的计算机系统1400仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。185.如图14所示,计算机系统1400包括中央处理单元(cpu)1401,其可以根据存储在只读存储器(rom)1402中的程序或者从存储部分1408加载到随机访问存储器(ram)1403中的程序而执行各种适当的动作和处理。在ram1403中,还存储有系统操作所需的各种程序和数据。cpu1401、rom1402以及ram1403通过总线1404彼此相连。输入/输出(i/o)接口1405也连接至总线1404。186.以下部件连接至i/o接口1405:包括键盘、鼠标等的输入部分1406;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1407;包括硬盘等的存储部分1408;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1409。通信部分1409经由诸如因特网的网络执行通信处理。驱动器1410也根据需要连接至i/o接口1405。可拆卸介质1411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1410上,以便于从其上读出的计算机程序根据需要被安装入存储部分1408。187.特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1409从网络上被下载和安装,和/或从可拆卸介质1411被安装。在该计算机程序被中央处理单元(cpu)1401执行时,执行本技术的系统中限定的各种功能。188.需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。189.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。190.作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的方法。191.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。192.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。193.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。当前第1页12当前第1页12
技术特征:
1.一种宽表的同步处理方法,其特征在于,包括:响应针对于宽表的同步操作指令,获取所述同步操作指令对应的目标单表以及操作类型;获取所述宽表的关联树形结构,并确定所述目标单表在所述关联树形结构中对应的目标节点,其中,所述关联树形结构中的每个节点包括一个缓存对象和多个关联条件对象,每个所述节点分别对应一个单表;根据所述同步操作指令更新所述目标节点中的缓存对象,并根据所述操作类型以及所述关联树形结构中各个所述节点的关联条件对象对所述目标单表进行处理。2.根据权利要求1所述的宽表的同步处理方法,其特征在于,所述操作类型包括插入操作,所述根据所述操作类型以及所述关联树形结构中各个所述节点的关联条件对象对所述目标单表进行处理,包括:根据所述目标节点中的单表类型以及所述关联树形结构中各个所述节点的关联条件对象,确定所述目标节点对应的目标检索节点;判断所述目标检索节点对应的单表中是否包含对应的单表数据;若包含,则获取所述宽表中的关键表,并根据所述关联树形结构中各个所述节点的关联条件对象,判断所述关键表中的关键数据是否齐全;若所述关键表中的关键数据齐全,则将所述目标单表中的单表数据插入所述宽表。3.根据权利要求1所述的宽表的同步处理方法,其特征在于,所述操作类型包括删除操作,所述根据所述操作类型以及所述关联树形结构中各个所述节点的关联条件对象对所述目标单表进行处理,包括:获取所述宽表中的关键表,并根据所述关联树形结构中各个所述节点的关联条件对象,判断所述关键表中的关键数据是否齐全;若所述关键表中的关键数据齐全,则根据所述目标节点中的单表类型执行所述删除操作。4.根据权利要求3所述的宽表的同步处理方法,其特征在于,所述根据所述目标节点中的单表类型执行所述删除操作,包括:若所述目标节点中的单表类型为关键表,则删除所述宽表。5.根据权利要求3所述的宽表的同步处理方法,其特征在于,所述根据所述目标节点中的单表类型执行所述删除操作,包括:若所述目标节点中的单表类型为普通表,则删除所述目标节点对应的单表数据,并更新所述宽表中的数据。6.根据权利要求3所述的宽表的同步处理方法,其特征在于,所述方法还包括:将所述目标节点中的缓存对象和关联条件对象从缓存中移除。7.根据权利要求1所述的宽表的同步处理方法,其特征在于,所述操作类型包括更新操作,所述根据所述操作类型以及所述关联树形结构中各个所述节点的关联条件对象对所述目标单表进行处理,包括:判断所述更新操作对应的目标单表中的目标字段是否为关键字段;若所述目标字段不是所述关键字段,则将所述目标字段中的原始字段数据删除并插入更新字段数据;
若所述目标字段是所述关键字段,则将所述更新字段数据插入所述目标单表对应的缓存对象中。8.一种宽表的同步处理装置,其特征在于,包括:操作指令获取模块,用于响应针对于宽表的同步操作指令,获取所述同步操作指令对应的目标单表以及操作类型;宽表结构获取模块,用于获取所述宽表的关联树形结构,并确定所述目标单表在所述关联树形结构中对应的目标节点,其中,所述关联树形结构中的每个节点包括一个缓存对象和多个关联条件对象,每个所述节点分别对应一个单表;目标单表处理模块,用于根据所述同步操作指令更新所述目标节点中的缓存对象,并根据所述操作类型以及所述关联树形结构中各个所述节点的关联条件对象对所述目标单表进行处理。9.一种电子设备,其特征在于,包括:处理器;以及存储器,用于存储一个或多个程序,当所述一个或多个程序被所述处理器执行时,使得所述处理器实现如权利要求1至7中任一项所述的宽表的同步处理方法。10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的宽表的同步处理方法。

技术总结
本公开涉及一种宽表的同步处理方法、装置、电子设备及计算机可读介质,属于计算机技术领域。该方法包括:响应针对于宽表的同步操作指令,获取所述同步操作指令对应的目标单表以及操作类型;获取所述宽表的关联树形结构,并确定所述目标单表在所述关联树形结构中对应的目标节点,其中,所述关联树形结构中的每个节点包括一个缓存对象和多个关联条件对象,每个所述节点分别对应一个单表;根据所述同步操作指令更新所述目标节点中的缓存对象,并根据所述操作类型以及所述关联树形结构中各个所述节点的关联条件对象对所述目标单表进行处理。本公开通过在缓存中进行宽表的关联计算,可以在存储资源有限或网络传输受限等条件下保证宽表的实时同步效率。下保证宽表的实时同步效率。下保证宽表的实时同步效率。


技术研发人员:罗晓宇 贺思远 刘涛
受保护的技术使用者:北京京东振世信息技术有限公司
技术研发日:2022.03.24
技术公布日:2023/10/6
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐