CN118132562A - 数据关联方法、装置、存储介质以及终端 - Google Patents
数据关联方法、装置、存储介质以及终端 Download PDFInfo
- Publication number
- CN118132562A CN118132562A CN202410294683.XA CN202410294683A CN118132562A CN 118132562 A CN118132562 A CN 118132562A CN 202410294683 A CN202410294683 A CN 202410294683A CN 118132562 A CN118132562 A CN 118132562A
- Authority
- CN
- China
- Prior art keywords
- partition
- index
- data
- period
- bypass
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000005192 partition Methods 0.000 claims abstract description 335
- 230000000737 periodic effect Effects 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 10
- 239000012634 fragment Substances 0.000 claims description 9
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例公开了一种数据关联方法、装置、存储介质以及终端,获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应目标周期的索引分区为主表分片的目标索引分区;确定目标索引分区对应的关联任务,基于关联任务将目标索引分区对应的旁路表分区与主表分片进行关联,得到旁路周期调度表;基于旁路周期调度表,结合主表分片中的数据以及旁路周期调度表中的数据得到主表宽表。由于索引表中有各周期对应的索引分区,那么进行关联时,可以使用该周期对应的索引分区索引到对应的旁路表,然后关联主表和旁路表的数据从而得到本次需要的主表宽表,这样通过只记录多表之间的索引路径的索引表,可以减少数据关联时的计算量。
Description
技术领域
本说明书实施例涉及计算机技术领域,尤其涉及一种数据关联方法、装置、存储介质以及终端。
背景技术
在为用户提供服务的过程中,往往伴随着大量的数据产生,并且随着事务内容的发展以及时间的推移,数据量也会逐渐生长,导致数据处理任务所需的资源会逐步增加,同时处理时间也会越来越长。而在存储大体量的数据时往往使用多个数据库表来分别存储各类数据,并在各数据库表之间建立关联关系,以便于进行同时需要各表数据的计算时,能够通过关联关系成功获取到各表中的目标数据。因此需要一种数据关联方法来提高数据关联的效率。
发明内容
本说明书实施例提供一种数据关联方法、装置、存储介质以及终端,可以解决相关技术中数据关联的准确性差、耗费大量计算资源的技术问题。
第一方面,本说明书实施例提供一种数据关联方法,该方法包括:
获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应上述目标周期的索引分区为上述主表分片的目标索引分区;
确定上述目标索引分区对应的关联任务,基于上述关联任务将上述目标索引分区对应的旁路表分区与上述主表分片进行关联,得到旁路周期调度表;
基于上述旁路周期调度表,结合上述主表分片中的数据以及上述旁路周期调度表中的数据得到主表宽表。
在一种可能的实现方式中,上述索引表被设置为每隔预设周期生成当前周期对应的索引分区,每个周期的索引分区分别用于进行各自周期内的索引。
在一种可能的实现方式中,上述获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应上述目标周期的索引分区为上述主表分片的目标索引分区,包括:将上述目标周期划分为至少两个子周期,在每个子周期结束时,获取在前一个结束的目标子周期内存在增量更新数据的第一主表分片,确定索引表中对应上述目标周期的索引分区为上述第一主表分片的第一目标索引分区;在上述目标周期结束时,获取在该周期的最后一个目标子周期内存在增量更新数据的第二主表分片,确定索引表中对应上述目标周期的索引分区为上述第二主表分片的第二目标索引分区。
在一种可能的实现方式中,确定上述目标索引分区对应的关联任务,基于上述关联任务将上述目标索引分区对应的旁路表分区与上述主表分片进行关联,得到旁路周期调度表,包括:在每个子周期结束时,确定上述第一目标索引分区对应的第一关联任务,基于上述第一关联任务将上述第一目标索引分区对应的旁路表分区与上述第一主表分片进行关联,得到旁路第一调度表;在上述目标周期结束时,确定上述第二目标索引分区对应的第二关联任务,基于上述第二关联任务将上述第二目标索引分区对应的旁路表分区与上述第二主表分片进行关联,得到旁路第二调度表;基于上述旁路第一调度表对上述旁路第二调度表进行去重,得到旁路周期调度表。
在一种可能的实现方式中,上述方法还包括:基于预设关联需求设置各关联任务的运行数据的数据量阈值和/或上述运行数据所处的连续周期数量,以使得每个索引分区仅对应一个关联任务,且每个关联任务对应至少一个索引分区。
在一种可能的实现方式中,上述方法还包括:计算上述索引表中各索引分区对应的主表关联键的特征值,基于各特征值对各索引分区进行数据分桶和桶内排序。
第二方面,本说明书实施例提供一种数据关联装置,该装置包括:
索引分区确定模块,用于获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应上述目标周期的索引分区为上述主表分片的目标索引分区;
关联任务分发模块,用于确定上述目标索引分区对应的关联任务,基于上述关联任务将上述目标索引分区对应的旁路表分区与上述主表分片进行关联,得到旁路周期调度表;
数据关联模块,用于基于上述旁路周期调度表,结合上述主表分片中的数据以及上述旁路周期调度表中的数据得到主表宽表。
在一种可能的实现方式中,上述索引表被设置为每隔预设周期生成当前周期对应的索引分区,每个周期的索引分区分别用于进行各自周期内的索引。
在一种可能的实现方式中,上述索引分区确定模块,还用于将上述目标周期划分为至少两个子周期,在每个子周期结束时,获取在前一个结束的目标子周期内存在增量更新数据的第一主表分片,确定索引表中对应上述目标周期的索引分区为上述第一主表分片的第一目标索引分区;在上述目标周期结束时,获取在该周期的最后一个目标子周期内存在增量更新数据的第二主表分片,确定索引表中对应上述目标周期的索引分区为上述第二主表分片的第二目标索引分区。
在一种可能的实现方式中,上述关联任务分发模块,还用于在每个子周期结束时,确定上述第一目标索引分区对应的第一关联任务,基于上述第一关联任务将上述第一目标索引分区对应的旁路表分区与上述第一主表分片进行关联,得到旁路第一调度表;在上述目标周期结束时,确定上述第二目标索引分区对应的第二关联任务,基于上述第二关联任务将上述第二目标索引分区对应的旁路表分区与上述第二主表分片进行关联,得到旁路第二调度表;基于上述旁路第一调度表对上述旁路第二调度表进行去重,得到旁路周期调度表。
在一种可能的实现方式中,上述装置还包括:关联任务设置模块,用于基于预设关联需求设置各关联任务的运行数据的数据量阈值和/或上述运行数据所处的连续周期数量,以使得每个索引分区仅对应一个关联任务,且每个关联任务对应至少一个索引分区。
在一种可能的实现方式中,上述装置还包括:主表排序模块,用于计算上述索引表中各索引分区对应的主表关联键的特征值,基于各特征值对各索引分区进行数据分桶和桶内排序。
第三方面,本说明书实施例提供一种包含指令的计算机程序产品,当上述计算机程序产品在计算机或处理器上运行时,使得上述计算机或上述处理器执行上述的方法的步骤。
第四方面,本说明书实施例提供一种计算机存储介质,上述计算机存储介质存储有多条指令,上述指令适于由处理器加载并执行上述的方法的步骤。
第五方面,本说明书实施例提供一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序适于由处理器加载并执行上述的方法的步骤。
本说明书一些实施例提供的技术方案带来的有益效果至少包括:
本说明书实施例提供一种数据关联方法,获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应目标周期的索引分区为主表分片的目标索引分区;确定目标索引分区对应的关联任务,基于关联任务将目标索引分区对应的旁路表分区与主表分片进行关联,得到旁路周期调度表;基于旁路周期调度表,结合主表分片中的数据以及旁路周期调度表中的数据得到主表宽表。由于索引表中有各周期对应的索引分区,那么将周期内存在增量更新数据的主表分片与旁路表进行关联时,可以使用该周期对应的索引分区索引到对应的旁路表,然后基于索引分区对应的关联任务,关联主表和旁路表的数据从而得到本次需要的主表宽表,这样通过不记录关联数据、只记录多表之间的索引路径的索引表,可以减少不同数据表之间数据关联时的数据计算量,提升跨表、跨周期的数据的关联效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的一种数据关联方法的示例性系统架构图;
图2为本说明书实施例提供的一种数据关联方法的流程示意图;
图3为本说明书实施例提供的一种用于数据关联的索引表的逻辑示意图;
图4为本说明书另一实施例提供的一种数据关联方法的流程示意图;
图5为本说明书实施例提供的一种数据关联方法的逻辑流程图;
图6为本说明书实施例提供的一种数据关联装置的结构框图;
图7为本说明书实施例提供的一种终端的结构示意图。
具体实施方式
为使得本说明书实施例的特征和优点能够更加的明显和易懂,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而非全部实施例。基于本说明书中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书实施例保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书实施例相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本说明书实施例的一些方面相一致的装置和方法的例子。
随着互联网的发展,基于网络进行的线上活动都会产生大量数据,并且随着事务内容的发展以及时间的推移,数据量也会逐渐生长,导致数据处理任务所需的资源会逐步增加,同时处理时间也会越来越长。而若将所有数据存储在全量表中,会使得全量表中数据过多,引发数据库数据错误、处理任务卡顿、数据丢失等,这些故障可能会破坏数据的完整性和准确性,因此,在存储大体量的数据时往往使用多个数据库表来分别存储各类数据,并在各数据库表之间建立关联关系,以便于进行同时需要各表数据的计算时,能够通过跨表的关联关系成功获取到各表中的目标数据,来完成目标数据计算任务。例如,在商品销售系统中,主表用于存储商品的订单信息、交易用户信息,旁路表用于存储商品的商品信息、价格信息,而在计算该商品的交易流水账单时,则需要使用主表关联旁路表来获取账单中所需要的字段,从而得到同一商品的订单信息、交易用户信息、商品信息、价格信息,基于商品的完整信息来进行商品流水计算。
目前来说,为了更好的管理数据,数据会按照固定的周期来记录,例如一周、一天、12小时等等,那么数据关联操作也是按照周期进行,在进行一个周期的数据关联时,若主表和旁路表都存在增量更新的数据,那么这些存在更新的数据会直接被关联上,然而当旁路表在该周期没有存在增量更新的数据时,主表无法关联上没有更新的对应字段的旁路表数据,导致关联后得到的数据不准确。
因此本说明书实施例提供一种数据关联方法,获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应目标周期的索引分区为主表分片的目标索引分区;确定目标索引分区对应的关联任务,基于关联任务将目标索引分区对应的旁路表分区与主表分片进行关联,得到旁路周期调度表;基于旁路周期调度表,结合主表分片中的数据以及旁路周期调度表中的数据得到主表宽表,以解决上述数据关联的准确性差、耗费大量计算资源的技术问题。
请参阅图1,图1为本说明书实施例提供的一种数据关联方法的示例性系统架构图。
如图1所示,系统架构可以包括终端101、网络102和服务器103。网络102用于在终端101和服务器103之间提供通信链路的介质。网络102可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(Wireless-Fidelity,Wi-Fi)通信链路或微波通信链路等。
终端101可以通过网络102与服务器103交互,以接收来自服务器103的消息或向服务器103发送消息,或者终端101可以通过网络102与服务器103交互,进而接收其他用户向服务器103发送的消息或者数据。终端101可以是硬件,也可以是软件。当终端101为硬件时,可以是各种电子设备,包括但不限于智能手表、智能手机、平板电脑、膝上型便携式计算机和台式计算机等。当终端101为软件时,可以是安装在上述所列举的电子设备中,其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。
在本说明书实施例中,终端101首先获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应目标周期的索引分区为主表分片的目标索引分区;进一步地,终端101确定目标索引分区对应的关联任务,基于关联任务将目标索引分区对应的旁路表分区与主表分片进行关联,得到旁路周期调度表;进而,终端101基于旁路周期调度表,结合主表分片中的数据以及旁路周期调度表中的数据得到主表宽表。
服务器103可以是提供各种服务的业务服务器。需要说明的是,服务器103可以是硬件,也可以是软件。当服务器103为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器103为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。
或者,该系统架构还可以不包括服务器103,换言之,服务器103可以为本说明书实施例中可选的设备,即本说明书实施例提供的方法可以应用于仅包括终端101的系统结构中,本说明书实施例对此不做限定。
应理解,图1中的终端、网络以及服务器的数目仅是示意性的,根据实现需要,可以是任意数量的终端、网络以及服务器。
请参阅图2,图2为本说明书实施例提供的一种数据关联方法的流程示意图。本说明书实施例的执行主体可以是执行数据关联的终端,也可以是执行数据关联方法的终端中的处理器,还可以是执行数据关联方法的终端中的数据关联服务。为方便描述,下面以执行主体是终端中的处理器为例,介绍数据关联方法的具体执行过程。
如图2所示,数据关联方法至少可以包括:
S202、获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应目标周期的索引分区为主表分片的目标索引分区。
可选地,通常在进行离线计算任务时,需要进行主表关联各域的旁路表来获取离线计算任务需要的字段以及数据,最终得到离线计算任务所需的主表宽表。但是,数据关联后得到的主表宽表是在对应的各个在线表更新后,通过数据采集工具落下增量数据的,而当主表和关联的旁路表没有在同一天落下增量数据时,会导致主表的增量数据无法关联上旁路表中的对应数据,这种数据关联不上的情况就会导致主表宽表的数据出现准确性问题。例如主表宽表需要商品信息、商品价格、商品交易记录,在线主表用于存储商品交易记录,旁路表则存储商品价格以及商品信息,在当前周期内主表中A商品的商品交易记录数据出现了变化,那么本周期需要对A商品的主表数据和旁路表数据进行关联,然而本周期旁路表中A商品的商品信息数据、商品价格数据都没有变化,这就导致本周期的A商品的商品交易记录数据无法关联上商品信息数据、商品价格数据。
可选地,对在同一周期内并不同时存在增量的主表和旁路表进行数据关联时,就需要进行跨周期的数据关联,也即主表需要跨周期的关联之前周期中的旁路表数据。在多表关联的数据管理场景中,跨周期的数据关联有助于将不同时间点的数据整合在一起,保证数据的完整性,以便后续使用数据进行比较、分析和报告。
可选地,在大多数情况下,若需关联非同周期的数据,常规做法是通过读取相关表的全量离线表,并使用主键作为关联键来实现数据关联。然而,面对百亿甚至千亿级别的数据量,若每日都需读取并关联全量数据表,则此过程会变得时间消耗巨大且耗费资源。另一种方法是维护一张未完结全量数据表,在数据还存在可更新内容的情况下,相关表在首次记录明细数据时进行关联,并将未完结的数据明细都存储于一张未完结全量表中。如果主表发生了增量更新而旁路表没有变化,那么可以关联这张未完结全量表以获取所需信息,如数据项状态仍然处于未完成状态,则将其覆盖更新回为完结全量表,然而,随着时间的推移,未完成全量数据表的数据量也会逐渐增长,导致任务所需的资源会逐步增加,同时处理时间也将越来越长。
进一步地,在进行跨周期的数据关联时,为了快速查找到主表数据对应的跨周期旁路表数据项,可以在主表和旁路表之间使用索引表,索引表中记录主表与旁路表之间的关联关系的索引路径,通过索引表来查找主表与对应的旁路表,能够快速地将主表和旁路表的数据关联起来,减少数据关联过程中消耗的计算资源,提高数据关联效率和准确性。
具体地,索引表中并不直接存储原始数据,而是存储索引键和指向实际数据的指针或引用。这种结构使得索引表能够快速地定位到实际数据表中的数据,提高查询性能。索引表中的数据一般是根据特定的索引字段(或称为键)进行排序和组织的数据,通常包括:索引键,索引键是索引表的核心,用于标识表中的每一行数据;指针或引用,索引表中通常包含指向实际数据表中对应行的指针或引用,这些指针或引用用于在需要时快速访问实际数据。这些索引字段是根据需求和数据库查询性能考虑而选择的,通常是表中的某些列。而本说明书实施例中,索引字段则是主表中数据项的唯一标识键ID。
在本说明书实施例中,按周期进行每个周期的数据关联任务,那么相对的主表中数据项的唯一标识键ID也应该基于数据项对应的周期来生成,以使得索引字段是与周期相关的主表关联键ID,从而通过索引表来按照主表关联键ID中的周期信息完成数据关联任务。索引表在进行索引时,由每个周期对应的索引分区来进行该周期的主表旁路表之间的索引。在目标周期内若在线的主表数据没有出现增量更新的变化,则不需要重复关联,若在线的主表数据出现增量更新的变化,则需要将其与旁路表中的相关数据进行关联,以及时得到最新的在线数据。那么在每个周期内,首先获取目标周期内存在增量更新数据的主表分片,然后确定索引表中对应目标周期的索引分区为主表分片的目标索引分区。
需要说明的是,周期可以按照实际场景的需求来设定,若数据量较大或者数据在短时间内的变化较多,那么为了缓解大量数据同时关联的计算资源紧张问题,可以设置较短的数据关联周期,例如半天、一天;若数据量较小或者数据在短时间内的变化较少,那么可以设置较短的数据关联周期,例如一周、一月。本说明书实施例对周期的设定不进行具体限定。
S204、确定目标索引分区对应的关联任务,基于关联任务将目标索引分区对应的旁路表分区与主表分片进行关联,得到旁路周期调度表。
可选地,具体进行数据关联时,索引分区对应有预生成的关联任务,关联任务用于完成索引分区对应的主表和旁路表之间的各数据项的关联,也即确定目标周期对应的目标索引分区之后,确定目标索引分区对应的关联任务,基于关联任务将目标索引分区对应的旁路表分区与主表分片进行关联,从旁路表分区中得到主表分片需要关联的数据项所组成的旁路周期调度表。
其中,对于关联任务,可以基于预设关联需求设置各关联任务的运行数据的数据量阈值和/或运行数据所处的连续周期数量,通过对关联任务的数据量进行限制来防止出现长尾任务,从而使得每个索引分区仅对应一个关联任务,且每个关联任务对应至少一个索引分区。并且,对所有的关联任务还可以开放SQL调优接口,针对关联任务的运行情况做出精细化参数调优,这样使用多个并行的关联任务来进行数据关联时,当出现某个任务因资源问题或其他各种预期外问题导致失败时,只需要对失败任务进行单独重跑即可,避免对全部需要关联数据的全量任务进行重跑,提高关联任务执行时的时效和容错率。
S206、基于旁路周期调度表,结合主表分片中的数据以及旁路周期调度表中的数据得到主表宽表。
可选地,得到旁路周期调度表之后,旁路周期调度表中即为从旁路表中查找出的与主表分片进行关联的数据项,基于此,结合主表分片中的数据以及旁路周期调度表中的数据得到主表宽表,主表宽表中包含中每条数据都包含了该数据主键在主表分片和旁路表中对应的所有数据,这样就完成了主表和旁路表的数据关联,通过只记录多表之间的索引路径的索引表,可以减少不同数据表之间数据关联时的数据计算量,提升跨表、跨周期的数据的关联效率。
在本说明书实施例中,提供一种数据关联方法,获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应目标周期的索引分区为主表分片的目标索引分区;确定目标索引分区对应的关联任务,基于关联任务将目标索引分区对应的旁路表分区与主表分片进行关联,得到旁路周期调度表;基于旁路周期调度表,结合主表分片中的数据以及旁路周期调度表中的数据得到主表宽表。由于索引表中有各周期对应的索引分区,那么将周期内存在增量更新数据的主表分片与旁路表进行关联时,可以使用该周期对应的索引分区索引到对应的旁路表,然后基于索引分区对应的关联任务,关联主表和旁路表的数据从而得到本次需要的主表宽表,这样通过不记录关联数据、只记录多表之间的索引路径的索引表,可以减少不同数据表之间数据关联时的数据计算量,提升跨表、跨周期的数据的关联效率。
通过上述实施例的介绍可以知道,在进行不同表之间的跨周期数据关联时,通过记录主表和旁路表之间关联关系的索引表,来对每次主表分片索引对应的旁路表分区并进行数据关联,可以节约数据关联过程中耗费的计算资源。随着时间的推移,不断的出现新的周期,那么索引表也需要进行对应的更新,以使得每个周期产生的数据都能完成数据关联。
请参阅图3,图3为本说明书实施例提供的一种用于数据关联的索引表的逻辑示意图。
可选地,索引表从其创建时间开始,在每个周期都生成各周期对应的索引分区,用于完成该周期内的数据关联,也即索引表被设置为每隔预设周期生成当前周期对应的索引分区,每个周期的索引分区分别用于进行各自周期内的索引。生成索引分区时,从旁路表进行数据清洗,得到主表关联键ID,将主表关联键ID和最新的索引分区写入到索引表中,从而使得索引表中存有最新周期的索引分区。当存在多张旁路表时,多张旁路表的索引可以放到同一张索引表中,避免在数据关联过程中多次读取不同的索引表,减少数据读取压力。
举例来说,如图3所示,以一个周期的长度为一天进行举例,在主表中,5月1日新建的主表分片的主表关联键ID为0501a、5月3日新建的主表分片的主表关联键ID为0503b,索引表中,主表关联键ID与索引分区对应,数据项“0503b……”在5月3日新建并出现增量变化之后,应该对应5月3日周期对应的0503分区,在5月3日结束时进行数据关联;数据项“0501a……”在创建周期对应的索引分区为0501分区,但若在5月5日数据项“0501a……”又出现了增量变化,那么数据项“0501a……”对应的索引分区应该更新为5月5日周期对应的0505分区。不同索引分区可以使用相同或不同的关联任务,但同一索引分区只能使用同一个关联任务,关联任务能够将主表数据关联到有相同主表关联键ID的旁路表数据项中,从而完成主表和旁路表的数据关联。
可选地,在数据量较大的情况下,计算索引表中各索引分区对应的主表关联键的特征值,基于各特征值对各索引分区进行数据分桶和桶内排序,提高索引表的关联效率。需要说明的是,特征值可以是通过哈希算法计算得到的,也可以是通过其他特征值算法得到,本说明书实施例对此不作具体限定。
在本说明书实施例中,提供一种用于数据关联的索引表的设置方法,索引表被设置为每隔预设周期生成当前周期对应的索引分区,每个周期的索引分区分别用于进行各自周期内的索引,利用索引表记录旁路表的最新分区,而不记录具体的值,通过索引表索引到旁路表分区,不需要将所有数据放在同一张全量表中来进行数据关联,减少读取全量表的计算负载;在数据量较大的情况下,计算索引表中各索引分区对应的主表关联键的特征值,基于各特征值对各索引分区进行数据分桶和桶内排序,提高索引表的关联效率。
请参阅图4,图4为本说明书另一实施例提供的一种数据关联方法的流程示意图。
如图4所示,数据关联方法至少可以包括:
S402、将目标周期划分为至少两个子周期,在每个子周期结束时,获取在前一个结束的目标子周期内存在增量更新数据的第一主表分片,确定索引表中对应目标周期的索引分区为第一主表分片的第一目标索引分区。
可选地,当单个周期内出现的增量数据较多时,若在周期结束时统一进行数据关联,可能会导致任务资源消耗过大,影响数据的时效性,因此为解决分片并行关联任务的耗时长和并行任务资源消耗大的问题,可以将周期再细分为多个子周期,在每个子周期都提前进行该子周期内的数据关联,在完整周期结束后进行去重,以最新的增量数据为准,保留最准确的数据关联结果。可以根据实际场景中的需求和数据量来划分子周期,例如,当周期长度为24小时,那么可以将完整周期划分为3个等长的子周期,也即每个子周期长度为8小时,每隔8小时对前8小时内产生的增量数据进行关联。
具体地,请参阅图5,图5为本说明书实施例提供的一种数据关联方法的逻辑流程图。如图5所示,将目标周期划分为至少两个子周期,将以一个完整周期为单位的主表作为周期主表,以子周期为单位的部分主表作为子周期主表,在每个子周期结束时,获取子周期主表中在前一个结束的目标子周期内存在增量更新数据的第一主表分片,此时确定索引表中对应目标周期的索引分区为第一主表分片的第一目标索引分区,基于第一目标索引分区提前对第一主表分片进行数据关联,也就是说该周期的索引分区直接在子周期结束时提前为子周期中的主表增量数据进行了数据关联,减少完整周期结束时的计算资源消耗。
S404、在目标周期结束时,获取在该周期的最后一个目标子周期内存在增量更新数据的第二主表分片,确定索引表中对应目标周期的索引分区为第二主表分片的第二目标索引分区。
可选地,请继续参阅图5,在完整周期结束时,获取周期主表中在该周期的最后一个目标子周期内存在增量更新数据的第二主表分片,确定索引表中目标周期的索引分区为第二主表分片的第二目标索引分区,之后该周期的索引分区对最后一个子周期的主表分片数据进行数据关联即可。
S406、在每个子周期结束时,确定第一目标索引分区对应的第一关联任务,基于第一关联任务将第一目标索引分区对应的旁路表分区与第一主表分片进行关联,得到旁路第一调度表。
可选地,请继续参阅图5,在每个子周期结束时,索引分区提前创建子周期对应的并行关联任务,也即确定第一目标索引分区对应的第一关联任务,然后基于第一关联任务将第一目标索引分区对应的旁路表分区与第一主表分片进行关联,提前关联子周期内的主表分片数据以及旁路表分区数据,得到旁路第一调度表。
S408、在目标周期结束时,确定第二目标索引分区对应的第二关联任务,基于第二关联任务将第二目标索引分区对应的旁路表分区与第二主表分片进行关联,得到旁路第二调度表。
可选地,请继续参阅图5,在目标周期结束时,确定第二目标索引分区对应的第二关联任务,基于第二关联任务将第二目标索引分区对应的旁路表分区与第二主表分片进行关联,得到旁路第二调度表,此时旁路第二调度表就是目标周期中最后一个子周期的旁路调度表。
S410、基于旁路第一调度表对旁路第二调度表进行去重,得到旁路周期调度表。
可选地,请继续参阅图5,可能会存在一些数据项在一个周期的多个子周期内都出现了增量变化,那么最终的数据关联结果应该以最后一次变化为准,对前面重复关联的数据进行去重,也就是基于旁路第一调度表对旁路第二调度表进行去重,从而得到最终的旁路周期调度表。
S412、基于旁路周期调度表,结合主表分片中的数据以及旁路周期调度表中的数据得到主表宽表。
关于步骤S412,请参阅步骤S206中的详细记载,此处不再赘述。
在本说明书实施例中,提供一种数据关联方法,将周期再细分为多个子周期,在每个子周期都提前进行该子周期内的数据关联,在完整周期结束后进行去重,以最新的增量数据为准,保留最准确的数据关联结果,解决分片并行关联任务的耗时长和并行任务资源消耗大的问题,减少完整周期结束时的计算资源消耗。
请参阅图6,图6为本说明书实施例提供的一种数据关联装置的结构框图。如图6所示,数据关联装置600包括:
索引分区确定模块610,用于获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应目标周期的索引分区为主表分片的目标索引分区;
关联任务分发模块620,用于确定目标索引分区对应的关联任务,基于关联任务将目标索引分区对应的旁路表分区与主表分片进行关联,得到旁路周期调度表;
数据关联模块630,用于基于旁路周期调度表,结合主表分片中的数据以及旁路周期调度表中的数据得到主表宽表。
可选地,索引表被设置为每隔预设周期生成当前周期对应的索引分区,每个周期的索引分区分别用于进行各自周期内的索引。
可选地,索引分区确定模块610,还用于将目标周期划分为至少两个子周期,在每个子周期结束时,获取在前一个结束的目标子周期内存在增量更新数据的第一主表分片,确定索引表中对应目标周期的索引分区为第一主表分片的第一目标索引分区;在目标周期结束时,获取在该周期的最后一个目标子周期内存在增量更新数据的第二主表分片,确定索引表中对应目标周期的索引分区为第二主表分片的第二目标索引分区。
可选地,关联任务分发模块620,还用于在每个子周期结束时,确定第一目标索引分区对应的第一关联任务,基于第一关联任务将第一目标索引分区对应的旁路表分区与第一主表分片进行关联,得到旁路第一调度表;在目标周期结束时,确定第二目标索引分区对应的第二关联任务,基于第二关联任务将第二目标索引分区对应的旁路表分区与第二主表分片进行关联,得到旁路第二调度表;基于旁路第一调度表对旁路第二调度表进行去重,得到旁路周期调度表。
可选地,数据关联装置600还包括:关联任务设置模块,用于基于预设关联需求设置各关联任务的运行数据的数据量阈值和/或运行数据所处的连续周期数量,以使得每个索引分区仅对应一个关联任务,且每个关联任务对应至少一个索引分区。
可选地,数据关联装置600还包括:主表排序模块,用于计算索引表中各索引分区对应的主表关联键的特征值,基于各特征值对各索引分区进行数据分桶和桶内排序。
在本说明书实施例中,提供一种数据关联装置,其中,索引分区确定模块,用于获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应目标周期的索引分区为主表分片的目标索引分区;关联任务分发模块,用于确定目标索引分区对应的关联任务,基于关联任务将目标索引分区对应的旁路表分区与主表分片进行关联,得到旁路周期调度表;数据关联模块,用于基于旁路周期调度表,结合主表分片中的数据以及旁路周期调度表中的数据得到主表宽表。由于索引表中有各周期对应的索引分区,那么将周期内存在增量更新数据的主表分片与旁路表进行关联时,可以使用该周期对应的索引分区索引到对应的旁路表,然后基于索引分区对应的关联任务,关联主表和旁路表的数据从而得到本次需要的主表宽表,这样通过不记录关联数据、只记录多表之间的索引路径的索引表,可以减少不同数据表之间数据关联时的数据计算量,提升跨表、跨周期的数据的关联效率。
本说明书实施例提供一种包含指令的计算机程序产品,当计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述实施例中任一项的方法的步骤。
本说明书实施例还提供了一种计算机存储介质,计算机存储介质可以存储有多条指令,指令适于由处理器加载并执行如上述实施例中的任一项的方法的步骤。
请参见图7,图7为本说明书实施例提供的一种终端的结构示意图。如图7所示,终端700可以包括:至少一个终端处理器701,至少一个网络接口704,用户接口703,存储器705,至少一个通信总线702。
其中,通信总线702用于实现这些组件之间的连接通信。
其中,用户接口703可以包括显示屏(Display)、摄像头(Camera),可选用户接口703还可以包括标准的有线接口、无线接口。
其中,网络接口704可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,终端处理器701可以包括一个或者多个处理核心。终端处理器701利用各种接口和线路连接整个终端700内的各个部分,通过运行或执行存储在存储器705内的指令、程序、代码集或指令集,以及调用存储在存储器705内的数据,执行终端700的各种功能和处理数据。可选的,终端处理器701可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。终端处理器701可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到终端处理器701中,单独通过一块芯片进行实现。
其中,存储器705可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选的,该存储器705包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器705可用于存储指令、程序、代码、代码集或指令集。存储器705可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器705可选的还可以是至少一个位于远离前述终端处理器701的存储装置。如图7所示,作为一种计算机存储介质的存储器705中可以包括操作系统、网络通信模块、用户接口模块以及数据关联程序。
在图7所示的终端700中,用户接口703主要用于为用户提供输入的接口,获取用户输入的数据;而终端处理器701可以用于调用存储器705中存储的数据关联程序,并具体执行以下操作:
获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应目标周期的索引分区为主表分片的目标索引分区;
确定目标索引分区对应的关联任务,基于关联任务将目标索引分区对应的旁路表分区与主表分片进行关联,得到旁路周期调度表;
基于旁路周期调度表,结合主表分片中的数据以及旁路周期调度表中的数据得到主表宽表。
在一些实施例中,索引表被设置为每隔预设周期生成当前周期对应的索引分区,每个周期的索引分区分别用于进行各自周期内的索引。
在一些实施例中,终端处理器701在执行获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应目标周期的索引分区为主表分片的目标索引分区时,具体执行以下步骤:将目标周期划分为至少两个子周期,在每个子周期结束时,获取在前一个结束的目标子周期内存在增量更新数据的第一主表分片,确定索引表中对应目标周期的索引分区为第一主表分片的第一目标索引分区;在目标周期结束时,获取在该周期的最后一个目标子周期内存在增量更新数据的第二主表分片,确定索引表中对应目标周期的索引分区为第二主表分片的第二目标索引分区。
在一些实施例中,终端处理器701在执行确定目标索引分区对应的关联任务,基于关联任务将目标索引分区对应的旁路表分区与主表分片进行关联,得到旁路周期调度表时,具体执行以下步骤:在每个子周期结束时,确定第一目标索引分区对应的第一关联任务,基于第一关联任务将第一目标索引分区对应的旁路表分区与第一主表分片进行关联,得到旁路第一调度表;在目标周期结束时,确定第二目标索引分区对应的第二关联任务,基于第二关联任务将第二目标索引分区对应的旁路表分区与第二主表分片进行关联,得到旁路第二调度表;基于旁路第一调度表对旁路第二调度表进行去重,得到旁路周期调度表。
在一些实施例中,终端处理器701还具体执行以下步骤:基于预设关联需求设置各关联任务的运行数据的数据量阈值和/或运行数据所处的连续周期数量,以使得每个索引分区仅对应一个关联任务,且每个关联任务对应至少一个索引分区。
在一些实施例中,终端处理器701还具体执行以下步骤:计算索引表中各索引分区对应的主表关联键的特征值,基于各特征值对各索引分区进行数据分桶和桶内排序。
在本说明书所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本说明书实施例上述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者通过上述计算机可读存储介质进行传输。上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DigitalSubscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字多功能光盘(DigitalVersatile Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
另外,还需要说明的是,本说明书实施例所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本说明书实施例所提供的一种数据关联方法、装置、存储介质以及终端的描述,对于本领域的技术人员,依据本说明书实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本说明书实施例的限制。
Claims (10)
1.一种数据关联方法,所述方法包括:
获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应所述目标周期的索引分区为所述主表分片的目标索引分区;
确定所述目标索引分区对应的关联任务,基于所述关联任务将所述目标索引分区对应的旁路表分区与所述主表分片进行关联,得到旁路周期调度表;
基于所述旁路周期调度表,结合所述主表分片中的数据以及所述旁路周期调度表中的数据得到主表宽表。
2.根据权利要求1所述的方法,所述索引表被设置为每隔预设周期生成当前周期对应的索引分区,每个周期的索引分区分别用于进行各自周期内的索引。
3.根据权利要求2所述的方法,所述获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应所述目标周期的索引分区为所述主表分片的目标索引分区,包括:
将所述目标周期划分为至少两个子周期,在每个子周期结束时,获取在前一个结束的目标子周期内存在增量更新数据的第一主表分片,确定索引表中对应所述目标周期的索引分区为所述第一主表分片的第一目标索引分区;
在所述目标周期结束时,获取在该周期的最后一个目标子周期内存在增量更新数据的第二主表分片,确定索引表中对应所述目标周期的索引分区为所述第二主表分片的第二目标索引分区。
4.根据权利要求3所述的方法,所述确定所述目标索引分区对应的关联任务,基于所述关联任务将所述目标索引分区对应的旁路表分区与所述主表分片进行关联,得到旁路周期调度表,包括:
在每个子周期结束时,确定所述第一目标索引分区对应的第一关联任务,基于所述第一关联任务将所述第一目标索引分区对应的旁路表分区与所述第一主表分片进行关联,得到旁路第一调度表;
在所述目标周期结束时,确定所述第二目标索引分区对应的第二关联任务,基于所述第二关联任务将所述第二目标索引分区对应的旁路表分区与所述第二主表分片进行关联,得到旁路第二调度表;
基于所述旁路第一调度表对所述旁路第二调度表进行去重,得到旁路周期调度表。
5.根据权利要求1所述的方法,所述方法还包括:
基于预设关联需求设置各关联任务的运行数据的数据量阈值和/或所述运行数据所处的连续周期数量,以使得每个索引分区仅对应一个关联任务,且每个关联任务对应至少一个索引分区。
6.根据权利要求1所述的方法,所述方法还包括:
计算所述索引表中各索引分区对应的主表关联键的特征值,基于各特征值对各索引分区进行数据分桶和桶内排序。
7.一种数据关联装置,所述装置包括:
索引分区确定模块,用于获取在目标周期内存在增量更新数据的主表分片,确定索引表中对应所述目标周期的索引分区为所述主表分片的目标索引分区;
关联任务分发模块,用于确定所述目标索引分区对应的关联任务,基于所述关联任务将所述目标索引分区对应的旁路表分区与所述主表分片进行关联,得到旁路周期调度表;
数据关联模块,用于基于所述旁路周期调度表,结合所述主表分片中的数据以及所述旁路周期调度表中的数据得到主表宽表。
8.一种包含指令的计算机程序产品,当所述计算机程序产品在计算机或处理器上运行时,使得所述计算机或所述处理器执行如权利要求1~6任意一项所述方法的步骤。
9.一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~6任意一项的所述方法的步骤。
10.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410294683.XA CN118132562A (zh) | 2024-03-14 | 2024-03-14 | 数据关联方法、装置、存储介质以及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410294683.XA CN118132562A (zh) | 2024-03-14 | 2024-03-14 | 数据关联方法、装置、存储介质以及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118132562A true CN118132562A (zh) | 2024-06-04 |
Family
ID=91235078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410294683.XA Pending CN118132562A (zh) | 2024-03-14 | 2024-03-14 | 数据关联方法、装置、存储介质以及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118132562A (zh) |
-
2024
- 2024-03-14 CN CN202410294683.XA patent/CN118132562A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111339073A (zh) | 实时数据处理方法、装置、电子设备及可读存储介质 | |
CN111061758B (zh) | 数据存储方法、装置及存储介质 | |
CN110019367B (zh) | 一种统计数据特征的方法和装置 | |
EP2965492B1 (en) | Selection of data storage settings for an application | |
CN111784318A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110019111A (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN114416868B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN115422205A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110781235A (zh) | 基于大数据的采购数据处理方法、装置、终端及存储介质 | |
CN111611230A (zh) | 主数据系统的建立方法、装置、计算机设备及存储介质 | |
CN111522840A (zh) | 标签的配置方法、装置、设备及计算机可读存储介质 | |
CN111309712A (zh) | 基于数据仓库的优化任务调度方法、装置、设备及介质 | |
CN111523921A (zh) | 漏斗分析方法、分析设备、电子设备及可读存储介质 | |
CN118132562A (zh) | 数据关联方法、装置、存储介质以及终端 | |
CN114564501A (zh) | 一种数据库数据存储、查询方法、装置、设备及介质 | |
CN114860819A (zh) | 商业智能系统的构建方法、装置、设备和存储介质 | |
CN111309749B (zh) | 一种保单信息的处理方法及装置、设备、介质 | |
CN113742322A (zh) | 一种数据质量检测方法和装置 | |
CN113780950A (zh) | 数据处理方法、装置、服务器和可读存储介质 | |
CN112287027A (zh) | 数据库同步方法、装置、设备及存储介质 | |
CN109669668B (zh) | 一种系统性能测试中实现模拟交易执行的方法和装置 | |
CN115544096B (zh) | 数据查询方法、装置、计算机设备及存储介质 | |
CN112579605B (zh) | 一种数据存储方法、装置、存储介质及服务器 | |
CN117312283A (zh) | 分库分表的数据校验方法、装置、计算机设备和存储介质 | |
CN116820326A (zh) | 数据处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |