CN116561171B - 一种倾斜数据双时序分布处理方法、装置、设备及介质 - Google Patents

一种倾斜数据双时序分布处理方法、装置、设备及介质 Download PDF

Info

Publication number
CN116561171B
CN116561171B CN202310834180.2A CN202310834180A CN116561171B CN 116561171 B CN116561171 B CN 116561171B CN 202310834180 A CN202310834180 A CN 202310834180A CN 116561171 B CN116561171 B CN 116561171B
Authority
CN
China
Prior art keywords
data
processed
piece
partition
time information
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.)
Active
Application number
CN202310834180.2A
Other languages
English (en)
Other versions
CN116561171A (zh
Inventor
周岚亭
王刚
彭聪
王新根
王新宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Bangsheng Technology Co ltd
Original Assignee
Zhejiang Bangsheng Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Bangsheng Technology Co ltd filed Critical Zhejiang Bangsheng Technology Co ltd
Priority to CN202310834180.2A priority Critical patent/CN116561171B/zh
Publication of CN116561171A publication Critical patent/CN116561171A/zh
Application granted granted Critical
Publication of CN116561171B publication Critical patent/CN116561171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请公开了一种倾斜数据双时序分布处理方法、装置、设备及介质,涉及数据批式计算领域,包括:根据预设线程数量将读取的若干条待处理倾斜数据乱序保存至对应数量个的分区中;在通过各线程对各分区中保存的每条待处理倾斜数据并行进行数据标记的过程中,基于每条待处理倾斜数据的时间信息以循环累计的方式确定分区号信息,以基于对应的时间信息以及分区号信息执行数据标记操作;利用与每条待处理倾斜数据分别对应的分区号信息进行重分区操作,以便待处理倾斜数据均匀分布在各分区中;在重分区操作完成后,基于时间信息分别对各分区中的每条待处理倾斜数据进行排序,以完成双时序分布处理操作。这样一来,本申请能够有效解决数据倾斜问题。

Description

一种倾斜数据双时序分布处理方法、装置、设备及介质
技术领域
本发明涉及数据批式计算领域,特别涉及一种倾斜数据双时序分布处理方法、装置、设备及介质。
背景技术
目前,往往需要根据数据的主键进行partition by(spark中的一种重分区算子)或者repartition(spark中的一种重分区算子)操作,把相同维度的数据放在同一个节点进行计算,这也是大数据批式计算场景最常见、最严重的数据倾斜场景。在这种场景下,计算会面临着内存不足、效率大幅度下降等问题,给数据计算带来严峻的挑战。
假设当前有9条数据,且均来自于同一个银行卡的交易,如果有3个节点可以做并行计算,那么按照传统的分布方式,会导致这9条数据全部分布在节点1上,剩下两个节点没有一条数据。因此根据这种数据分布情况,虽然有三个节点的资源可以做并行计算,但是其实只有一个节点在工作,其他两个节点没有任何工作,造成了资源浪费。假设一个节点处理一条数据的时间是固定的,那么整个任务的耗时会是均匀分布情况下的3倍。并且,如果节点的内存只够处理3条数据,那么9条数据会直接导致节点内存溢出,无法执行任务。由此可见,传统的数据分布方式给任务的稳定性带来了极大的风险,任务运行受数据分布情况影响极大,效率很低。
发明内容
有鉴于此,本发明的目的在于提供一种倾斜数据双时序分布处理方法、装置、设备及介质,能够有效解决数据倾斜问题,确保了数据的均匀分布。其具体方案如下:
第一方面,本申请提供了一种倾斜数据双时序分布处理方法,应用于预设计算引擎,包括:
读取若干条待处理倾斜数据,并根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中;
在通过各线程对各所述分区中保存的每条所述待处理倾斜数据并行进行数据标记的过程中,基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,以基于对应的所述时间信息以及所述分区号信息执行相应的数据标记操作;
通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,以便所述待处理倾斜数据均匀分布在各所述分区中;
在所述重分区操作完成后,基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,以完成相应的双时序分布处理操作。
可选的,所述基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,包括:
基于与每条所述待处理倾斜数据对应的满足预设数据格式的时间信息以循环累计的方式确定相应的分区号信息。
可选的,在根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中的过程中,针对每条所述待处理倾斜数据仅执行一次乱序分区保存操作。
可选的,所述基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,包括:
基于所述预设线程数量以及与每条所述待处理倾斜数据对应的时间信息,以循环累计的方式依次确定与每条所述待处理倾斜数据对应的分区号信息。
可选的,所述基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,包括:
在各所述分区内基于已标记的所述时间信息对对应的所述待处理倾斜数据执行相应的数据纵向排序操作,以便排序后的每条所述待处理倾斜数据在横轴和纵轴上都具备时序性。
可选的,所述读取若干条待处理倾斜数据,包括:
基于本地spark读取若干条待处理倾斜数据;
相应的,所述通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,包括:
基于所述本地spark并利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作。
第二方面,本申请提供了一种倾斜数据双时序分布处理装置,应用于预设计算引擎,包括:
乱序分区保存模块,用于读取若干条待处理倾斜数据,并根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中;
并行数据标记模块,用于在通过各线程对各所述分区中保存的每条所述待处理倾斜数据并行进行数据标记的过程中,基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,以基于对应的所述时间信息以及所述分区号信息执行相应的数据标记操作;
重分区模块,用于通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,以便所述待处理倾斜数据均匀分布在各所述分区中;
区内数据排序模块,用于在所述重分区操作完成后,基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,以完成相应的双时序分布处理操作。
可选的,所述并行数据标记模块,包括:
分区号信息确定单元,用于基于所述预设线程数量以及与每条所述待处理倾斜数据对应的时间信息,以循环累计的方式依次确定与每条所述待处理倾斜数据对应的分区号信息。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的倾斜数据双时序分布处理方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的倾斜数据双时序分布处理方法的步骤。
可见,本申请中,预设计算引擎首先读取若干条待处理倾斜数据,并根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中。然后在通过各线程对各所述分区中保存的每条所述待处理倾斜数据并行进行数据标记的过程中,基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,以基于对应的所述时间信息以及所述分区号信息执行相应的数据标记操作。然后通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,以便所述待处理倾斜数据均匀分布在各所述分区中。然后在所述重分区操作完成后,基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,以完成相应的双时序分布处理操作。本申请在将数据乱序保存后,基于相应的时间信息确定各待处理倾斜数据的分区号信息,以将各所述待处理倾斜数据均匀保存至各分区,然后对每个所述分区内的数据进行排序、这样一来,不仅能够确保数据的均匀分布,还能够在解决数据倾斜问题的同时,为分布式时序中间态计算提供支持。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种倾斜数据双时序分布处理方法流程图;
图2为本申请提供的一种倾斜数据双时序分布示意图;
图3为本申请提供的一种具体的倾斜数据双时序分布处理方法流程图;
图4为本申请提供的一种倾斜数据双时序分布处理装置结构示意图;
图5为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,往往需要根据数据的主键进行partition by或者repartition操作,把相同维度的数据放在同一个节点进行计算,这也是大数据批式计算场景最常见、最严重的数据倾斜场景。在这种场景下,计算会面临着内存不足、效率大幅度下降等问题,给数据计算带来严峻的挑战。然而传统的数据分布方式给任务的稳定性带来了极大的风险,任务运行受数据分布情况影响极大,效率很低。为此,本申请提供了一种倾斜数据双时序分布处理方案,能够有效解决数据倾斜问题,确保了数据的均匀分布。
参见图1所示,本发明实施例公开了一种倾斜数据双时序分布处理方法,应用于预设计算引擎,包括:
步骤S11、读取若干条待处理倾斜数据,并根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中。
具体的,本实施例中,所述预设计算引擎具体为一个基于spark开发的能同时处理批式场景下各个分区数据的计算引擎。所述读取若干条待处理倾斜数据,具体可以包括:基于本地spark读取若干条待处理倾斜数据。同时针对读取到的各所述待处理倾斜数据,将基于预设线程数量进行分区,也即将各所述待处理倾斜数据乱序保存至对应数量个的分区中,这样一来,可以并行进行数据处理和计算。可以理解的是,每个所述分区分别对应一个线程。
进一步的,需要理解的是,本实施例中,在标记阶段前对于数据的分布和顺序没有要求。不需要进行多次分区和排序操作,仅仅一次即可完成。也就是说,在根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中的过程中,针对每条所述待处理倾斜数据仅执行一次乱序分区保存操作,也即,不会出现重复保存的操作,避免由于数据的重复保存所导致的不良影响。
步骤S12、在通过各线程对各所述分区中保存的每条所述待处理倾斜数据并行进行数据标记的过程中,基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,以基于对应的所述时间信息以及所述分区号信息执行相应的数据标记操作。
本实施例中,在乱序保存数据之后,需要对数据进行标记。也即,需要通过各所述线程对相应的各所述分区中保存的所述待处理倾斜数据进行标记,并且,需要标记的是与各所述待处理倾斜数据对应的事件信息以及分区号信息,其中,所述分区号信息需要基于所述时间信息进行进一步确定得到。
需要理解的是,本实施例中,所述基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,具体可以包括:基于与每条所述待处理倾斜数据对应的满足预设数据格式的时间信息以循环累计的方式确定相应的分区号信息。其中,所述预设数据格式可以为yyyyMMdd HH格式(一种时间戳格式),所述满足所述预设数据格式的时间信息可以具体为所述时间戳格式的时间字符串。
步骤S13、通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,以便所述待处理倾斜数据均匀分布在各所述分区中。
具体的,本实施例中,由于先前保存各所述待处理倾斜数据时是乱序保存的,无法保证数据均匀分布在各所述分区中,因此在确定了与各所述待处理倾斜数据对应的所述分区号信息之后,需要再次进行依次分区保存操作,也即所述重分区操作,使得各所述分区中保存的数据量一致。
步骤S14、在所述重分区操作完成后,基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,以完成相应的双时序分布处理操作。
具体的,本实施例中,在完成所述重分区操作之后,各所述待处理倾斜数据在横轴上具备了时序性,而为了使得数据更加有序,可以针对各所述分区中的数据根据相应的时间信息进行纵向排序。也即,所述基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,具体可以包括:在各所述分区内基于已标记的所述时间信息对对应的所述待处理倾斜数据执行相应的数据纵向排序操作,以便排序后的每条所述待处理倾斜数据在横轴和纵轴上都具备时序性。这样一来,当各所述线程并行开始计算时,在同一个时间段,每个所述线程所能计算的数据量都是完全一致的,假设各所述线程的计算性能一致,那么各所述线程之间就不会相互阻塞,可以平滑地并行计算下去。
在一种具体实施方式中,假设当前有一天4个小时的数据乱序分布在P1、P2两个分区上,每个小时有4笔数据,需要对数据进行双向时序性分布,则最终的结果展现形式如图2所示。
由此可见,本申请实施例中,预设计算引擎首先读取若干条待处理倾斜数据,并根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中。然后在通过各线程对各所述分区中保存的每条所述待处理倾斜数据并行进行数据标记的过程中,基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,以基于对应的所述时间信息以及所述分区号信息执行相应的数据标记操作。然后通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,以便所述待处理倾斜数据均匀分布在各所述分区中。然后在所述重分区操作完成后,基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,以完成相应的双时序分布处理操作。本申请在将数据乱序保存后,基于相应的时间信息确定各待处理倾斜数据的分区号信息,以将各所述待处理倾斜数据均匀保存至各分区,然后对每个所述分区内的数据进行排序、这样一来,不仅能够确保数据的均匀分布,还能够在解决数据倾斜问题的同时,为分布式时序中间态计算提供支持,使得数据双向时序性分布。
参见图3所示,本发明实施例公开了一种倾斜数据双时序分布处理方法,应用于预设计算引擎,包括:
步骤S21、读取若干条待处理倾斜数据,并根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中。
步骤S12、在通过各线程对各所述分区中保存的每条所述待处理倾斜数据并行进行数据标记的过程中,基于所述预设线程数量以及与每条所述待处理倾斜数据对应的时间信息,以循环累计的方式依次确定与每条所述待处理倾斜数据对应的分区号信息,以基于对应的所述时间信息以及所述分区号信息执行相应的数据标记操作。
本实施例中,在确定分区号信息的过程中,具体是基于所述预设线程数量以及与每条所述待处理倾斜数据对应的时间信息,以循环累计的方式依次确定与每条所述待处理倾斜数据对应的分区号信息。例如,若当前读取到一百条数据,数据顺序为{t1,t2, …t100},且数据被乱序放在十个分区上P1,P2,P3,…,P10。因此在累计确定分区号信息的过程中,当累积到P10时,下一个确定的分区号为P1,并从P1再开始累计,以此类推。
步骤S23、通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,以便所述待处理倾斜数据均匀分布在各所述分区中。
步骤S24、在所述重分区操作完成后,基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,以完成相应的双时序分布处理操作。
其中,关于上述步骤S21、步骤S23、步骤S24的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
由此可见,本申请实施例中,在通过各线程对各所述分区中保存的每条所述待处理倾斜数据并行进行数据标记的过程中,基于所述预设线程数量以及与每条所述待处理倾斜数据对应的时间信息,以循环累计的方式依次确定与每条所述待处理倾斜数据对应的分区号信息,以基于对应的所述时间信息以及所述分区号信息执行相应的数据标记操作。这样一来,可以快速并准确的确定与各所述待处理倾斜数据对应的所述分区号信息,并完成标记,为后续的重分区操作打下坚实的基础。
参见图4所示,本申请实施例还相应公开了一种倾斜数据双时序分布处理装置,应用于预设计算引擎,包括:
乱序分区保存模块11,用于读取若干条待处理倾斜数据,并根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中;
并行数据标记模块12,用于在通过各线程对各所述分区中保存的每条所述待处理倾斜数据并行进行数据标记的过程中,基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,以基于对应的所述时间信息以及所述分区号信息执行相应的数据标记操作;
重分区模块13,用于通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,以便所述待处理倾斜数据均匀分布在各所述分区中;
区内数据排序模块14,用于在所述重分区操作完成后,基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,以完成相应的双时序分布处理操作。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,本申请实施例,预设计算引擎首先读取若干条待处理倾斜数据,并根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中。然后在通过各线程对各所述分区中保存的每条所述待处理倾斜数据并行进行数据标记的过程中,基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,以基于对应的所述时间信息以及所述分区号信息执行相应的数据标记操作。然后通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,以便所述待处理倾斜数据均匀分布在各所述分区中。然后在所述重分区操作完成后,基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,以完成相应的双时序分布处理操作。本申请在将数据乱序保存后,基于相应的时间信息确定各待处理倾斜数据的分区号信息,以将各所述待处理倾斜数据均匀保存至各分区,然后对每个所述分区内的数据进行排序、这样一来,不仅能够确保数据的均匀分布,还能够在解决数据倾斜问题的同时,为分布式时序中间态计算提供支持。
在一些具体实施例中,所述并行数据标记模块12,具体可以包括:
分区耗信息确定单元,用于基于与每条所述待处理倾斜数据对应的满足预设数据格式的时间信息以循环累计的方式确定相应的分区号信息。
在一些具体实施例中,所述并行数据标记模块12,具体可以包括:
累计确定单元,用于基于所述预设线程数量以及与每条所述待处理倾斜数据对应的时间信息,以循环累计的方式依次确定与每条所述待处理倾斜数据对应的分区号信息。
在一些具体实施例中,所述区内数据排序模块14,具体可以包括:
纵向排序单元,用于在各所述分区内基于已标记的所述时间信息对对应的所述待处理倾斜数据执行相应的数据纵向排序操作,以便排序后的每条所述待处理倾斜数据在横轴和纵轴上都具备时序性。
在一些具体实施例中,所述乱序分区保存模块11,具体可以包括:
数据读取单元,用于基于本地spark读取若干条待处理倾斜数据;
相应的,所述重分区模块13,具体可以包括:
重分区操作执行单元,用于基于所述本地spark并利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作。
进一步的,本申请实施例还公开了一种电子设备,图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备 20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的倾斜数据双时序分布处理方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的倾斜数据双时序分布处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的倾斜数据双时序分布处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (9)

1.一种倾斜数据双时序分布处理方法,其特征在于,应用于预设计算引擎,包括:
读取若干条待处理倾斜数据,并根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中;
在通过各线程对各所述分区中保存的每条所述待处理倾斜数据并行进行数据标记的过程中,基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,以基于对应的所述时间信息以及所述分区号信息执行相应的数据标记操作;
通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,以便所述待处理倾斜数据均匀分布在各所述分区中;
在所述重分区操作完成后,基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,以完成相应的双时序分布处理操作;
其中,所述基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,包括:
基于所述预设线程数量以及与每条所述待处理倾斜数据对应的时间信息,以循环累计的方式依次确定与每条所述待处理倾斜数据对应的分区号信息。
2.根据权利要求1所述的倾斜数据双时序分布处理方法,其特征在于,所述基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,包括:
基于与每条所述待处理倾斜数据对应的满足预设数据格式的时间信息以循环累计的方式确定相应的分区号信息。
3.根据权利要求1所述的倾斜数据双时序分布处理方法,其特征在于,在根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中的过程中,针对每条所述待处理倾斜数据仅执行一次乱序分区保存操作。
4.根据权利要求1所述的倾斜数据双时序分布处理方法,其特征在于,所述基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,包括:
在各所述分区内基于已标记的所述时间信息对对应的所述待处理倾斜数据执行相应的数据纵向排序操作,以便排序后的每条所述待处理倾斜数据在横轴和纵轴上都具备时序性。
5.根据权利要求1至4任一项所述的倾斜数据双时序分布处理方法,其特征在于,所述读取若干条待处理倾斜数据,包括:
基于本地spark读取若干条待处理倾斜数据;
相应的,所述通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,包括:
基于所述本地spark并利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作。
6.一种倾斜数据双时序分布处理装置,其特征在于,应用于预设计算引擎,包括:
乱序分区保存模块,用于读取若干条待处理倾斜数据,并根据预设线程数量将若干条所述待处理倾斜数据乱序保存至对应数量个的分区中;
并行数据标记模块,用于在通过各线程对各所述分区中保存的每条所述待处理倾斜数据并行进行数据标记的过程中,基于与每条所述待处理倾斜数据对应的时间信息以循环累计的方式确定相应的分区号信息,以基于对应的所述时间信息以及所述分区号信息执行相应的数据标记操作;
重分区模块,用于通过利用已标记的与每条所述待处理倾斜数据分别对应的所述分区号信息进行重分区操作,以便所述待处理倾斜数据均匀分布在各所述分区中;
区内数据排序模块,用于在所述重分区操作完成后,基于已标记的所述时间信息分别对各所述分区中的每条所述待处理倾斜数据进行排序,以完成相应的双时序分布处理操作;
其中,所述并行数据标记模块,包括:
累计确定单元,用于基于所述预设线程数量以及与每条所述待处理倾斜数据对应的时间信息,以循环累计的方式依次确定与每条所述待处理倾斜数据对应的分区号信息。
7.根据权利要求6所述的倾斜数据双时序分布处理装置,其特征在于,所述并行数据标记模块,包括:
分区号信息确定单元,用于基于所述预设线程数量以及与每条所述待处理倾斜数据对应的时间信息,以循环累计的方式依次确定与每条所述待处理倾斜数据对应的分区号信息。
8.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至5任一项所述的倾斜数据双时序分布处理方法。
9.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的倾斜数据双时序分布处理方法。
CN202310834180.2A 2023-07-10 2023-07-10 一种倾斜数据双时序分布处理方法、装置、设备及介质 Active CN116561171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310834180.2A CN116561171B (zh) 2023-07-10 2023-07-10 一种倾斜数据双时序分布处理方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310834180.2A CN116561171B (zh) 2023-07-10 2023-07-10 一种倾斜数据双时序分布处理方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN116561171A CN116561171A (zh) 2023-08-08
CN116561171B true CN116561171B (zh) 2023-09-15

Family

ID=87491915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310834180.2A Active CN116561171B (zh) 2023-07-10 2023-07-10 一种倾斜数据双时序分布处理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116561171B (zh)

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101086732A (zh) * 2006-06-11 2007-12-12 上海全成通信技术有限公司 一种海量数据管理方法
CN107861811A (zh) * 2017-10-24 2018-03-30 平安科技(深圳)有限公司 工作流系统中的任务信息传输方法、装置和计算机设备
CN109921895A (zh) * 2019-02-26 2019-06-21 成都国科微电子有限公司 一种数据Hash值的计算方法及系统
CN110069502A (zh) * 2019-04-24 2019-07-30 东南大学 基于Spark架构的数据均衡分区方法及计算机存储介质
CN110287038A (zh) * 2019-06-10 2019-09-27 天翼电子商务有限公司 提升Spark Streaming框架的数据处理效率的方法及系统
CN111046045A (zh) * 2019-12-13 2020-04-21 中国平安财产保险股份有限公司 处理数据倾斜的方法、装置、设备及存储介质
CN111930720A (zh) * 2020-08-25 2020-11-13 携程计算机技术(上海)有限公司 数据倾斜的处理方法、系统、电子设备和介质
WO2021052169A1 (zh) * 2019-09-18 2021-03-25 中兴通讯股份有限公司 分布式数据的均衡处理方法、装置、计算终端和存储介质
CN112580114A (zh) * 2020-12-21 2021-03-30 歌尔光学科技有限公司 一种信息处理方法、装置、设备及存储介质
CN112711470A (zh) * 2020-12-30 2021-04-27 浙江邦盛科技有限公司 一种集群并行处理多任务的方法
CN113806353A (zh) * 2020-06-12 2021-12-17 第四范式(北京)技术有限公司 实现时序特征抽取的方法及装置
WO2021258360A1 (zh) * 2020-06-24 2021-12-30 智协慧同(北京)科技有限公司 一种车载数据存储方法及系统
CN113868230A (zh) * 2021-10-20 2021-12-31 重庆邮电大学 一种基于Spark计算框架的大表连接优化方法
WO2022105531A1 (zh) * 2020-11-17 2022-05-27 深圳壹账通智能科技有限公司 分布式多任务管理方法、装置、计算机设备及存储介质
CN115617469A (zh) * 2021-07-15 2023-01-17 浙江宇视科技有限公司 一种集群中的数据处理方法、电子设备和存储介质
CN116048422A (zh) * 2023-02-27 2023-05-02 成都赛力斯科技有限公司 数据处理方法、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10263893B2 (en) * 2016-12-07 2019-04-16 Oracle International Corporation Application-level dynamic scheduling of network communication for efficient re-partitioning of skewed data

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101086732A (zh) * 2006-06-11 2007-12-12 上海全成通信技术有限公司 一种海量数据管理方法
CN107861811A (zh) * 2017-10-24 2018-03-30 平安科技(深圳)有限公司 工作流系统中的任务信息传输方法、装置和计算机设备
CN109921895A (zh) * 2019-02-26 2019-06-21 成都国科微电子有限公司 一种数据Hash值的计算方法及系统
CN110069502A (zh) * 2019-04-24 2019-07-30 东南大学 基于Spark架构的数据均衡分区方法及计算机存储介质
CN110287038A (zh) * 2019-06-10 2019-09-27 天翼电子商务有限公司 提升Spark Streaming框架的数据处理效率的方法及系统
WO2021052169A1 (zh) * 2019-09-18 2021-03-25 中兴通讯股份有限公司 分布式数据的均衡处理方法、装置、计算终端和存储介质
CN111046045A (zh) * 2019-12-13 2020-04-21 中国平安财产保险股份有限公司 处理数据倾斜的方法、装置、设备及存储介质
CN113806353A (zh) * 2020-06-12 2021-12-17 第四范式(北京)技术有限公司 实现时序特征抽取的方法及装置
WO2021258360A1 (zh) * 2020-06-24 2021-12-30 智协慧同(北京)科技有限公司 一种车载数据存储方法及系统
CN111930720A (zh) * 2020-08-25 2020-11-13 携程计算机技术(上海)有限公司 数据倾斜的处理方法、系统、电子设备和介质
WO2022105531A1 (zh) * 2020-11-17 2022-05-27 深圳壹账通智能科技有限公司 分布式多任务管理方法、装置、计算机设备及存储介质
CN112580114A (zh) * 2020-12-21 2021-03-30 歌尔光学科技有限公司 一种信息处理方法、装置、设备及存储介质
CN112711470A (zh) * 2020-12-30 2021-04-27 浙江邦盛科技有限公司 一种集群并行处理多任务的方法
CN115617469A (zh) * 2021-07-15 2023-01-17 浙江宇视科技有限公司 一种集群中的数据处理方法、电子设备和存储介质
CN113868230A (zh) * 2021-10-20 2021-12-31 重庆邮电大学 一种基于Spark计算框架的大表连接优化方法
CN116048422A (zh) * 2023-02-27 2023-05-02 成都赛力斯科技有限公司 数据处理方法、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DREAMS: Dynamic Resource Allocation for MapReduce with Data Skew;Liu, ZH (Liu, Zhihong);IEEE;第18-26页 *
一种基于负载代价的MapReduce等值连接优化算法;郑钤;向军;;湖北民族学院学报(自然科学版);第36卷(第03期);第342-347页 *

Also Published As

Publication number Publication date
CN116561171A (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
CN113535367B (zh) 任务调度方法及相关装置
CN106776395B (zh) 一种共享集群的任务调度方法及装置
CN109067841B (zh) 基于ZooKeeper的服务限流方法、系统、服务器及存储介质
US8869148B2 (en) Concurrency identification for processing of multistage workflows
CN107704310B (zh) 一种实现容器集群管理的方法、装置和设备
CN109240607B (zh) 一种文件读取方法和装置
CN104111936A (zh) 数据查询方法和系统
CN111813517B (zh) 任务队列的分配方法、装置、计算机设备及介质
CN109634989B (zh) 一种hive任务执行引擎选择方法和系统
KR20200141208A (ko) 그래프 데이터 처리 방법 및 그래프 데이터 처리 장치
CN110941602A (zh) 数据库的配置方法、装置、电子设备及存储介质
CN111158800A (zh) 基于映射关系构建任务dag的方法及装置
CN116561171B (zh) 一种倾斜数据双时序分布处理方法、装置、设备及介质
Naik et al. A review of adaptive approaches to MapReduce scheduling in heterogeneous environments
CN106933882B (zh) 一种大数据增量计算方法和装置
CN111931009A (zh) 批量作业的作业最大路径确定方法及装置
CN111158875A (zh) 基于多模块的多任务处理方法、装置及系统
CN109032779A (zh) 任务处理方法、装置、计算机设备及可读存储介质
Wang et al. OPTAS: Optimal data placement in MapReduce
CN114168594A (zh) 一种水平分区表的二级索引创建方法、装置、设备及存储介质
CN113407489A (zh) 一种数据导入方法、装置、设备及计算机可读存储介质
CN110928672A (zh) 一种任务编排方法、装置、设备及存储介质
CN110442433A (zh) 一种执行sql任务的方法、设备以及存储介质
CN111431951A (zh) 一种数据处理方法、节点设备、系统及存储介质
CN110798491B (zh) 一种网络访问方法及装置、代理服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant