CN116170508A - 数据处理方法、终端、系统、设备、介质及产品 - Google Patents

数据处理方法、终端、系统、设备、介质及产品 Download PDF

Info

Publication number
CN116170508A
CN116170508A CN202111386619.7A CN202111386619A CN116170508A CN 116170508 A CN116170508 A CN 116170508A CN 202111386619 A CN202111386619 A CN 202111386619A CN 116170508 A CN116170508 A CN 116170508A
Authority
CN
China
Prior art keywords
data
cache
sub
terminal
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.)
Pending
Application number
CN202111386619.7A
Other languages
English (en)
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.)
Beijing Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development 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 Beijing Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Priority to CN202111386619.7A priority Critical patent/CN116170508A/zh
Publication of CN116170508A publication Critical patent/CN116170508A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种数据处理方法、终端、系统、设备、介质及计算机程序产品,分布式数据处理系统包括服务器、多个第一终端、多个第二终端和数据传输数据库,第一终端可以基于第二终端的数据使用信息,对当前待传输的目标数据集进行分区处理,将得到的多份子数据缓存至对应的缓存区中,并发送至数据传输数据库,数据库可以接收第一终端发送的子数据,并存储至对应的数据存储位置,第二终端可以基于服务器处存储的数据存储信息和自身的数据使用信息,从对应的目标数据存储位置获取存储的子数据。这样,通过增加数据传输数据库,可以使计算存储阶段分离,提升读取性能,减少连接数,提高容错率,增加数据处理的灵活性,提高数据处理的稳定性。

Description

数据处理方法、终端、系统、设备、介质及产品
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据处理方法、终端、系统、设备、介质及计算机程序产品。
背景技术
随着云原生、大数据时代的到来,对数据进行处理的要求也随之提高。通用计算引擎(Spark)作为分布式处理框架,广泛应用于云原生、大数据的场景。在Spark任务中,最重要的就是数据转换(Map)阶段和数据整合(Reduce)阶段,Map阶段中的Map任务会读取和处理数据,并将处理后的数据输出,Reduce阶段中的Reduce任务会和所有Map任务进行连接通信,以获取自身需要拉取的数据。数据传输(Shuffle)阶段是连接Map阶段和Reduce阶段的桥梁,Reduce任务想要读取到Map任务的输出数据必须要经过Shuffle阶段,而Map任务和Reduce任务通常并不在同一设备上,这意味着Shuffle阶段通常需要跨网络以及进行对磁盘的读写操作,因此Shuffle阶段的性能高低直接影响整个Spark任务的性能和吞吐量。
在现有的Shuffle阶段中,每个Map任务和每个Reduce任务需要进行连接,连接数较多,消耗大量内存,并且计算存储节点耦合,磁盘负载高,数据读取缓慢,难以实现动态扩缩容,灵活性较低且错误率较高。
发明内容
本公开实施例至少提供一种数据处理方法、终端、系统、设备、介质及计算机程序产品。
本公开实施例提供了一种数据处理方法,所述方法应用于分布式数据处理系统中的第一终端,所述分布式数据处理系统包括服务器、多个所述第一终端、多个第二终端和数据传输数据库,所述方法包括:
确定当前待传输的目标数据集,以及所述第二终端的数据使用信息;
基于所述数据使用信息,对所述目标数据集进行分区处理,得到多份子数据;
将多份所述子数据分别缓存至所述第一终端中对应的缓存区中,所述第一终端中预先生成有多个所述缓存区;
针对每个所述缓存区,在所述缓存区中写入所述子数据的情况下,若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,以便所述第二终端从所述数据存储位置获取存储的所述缓存数据,所述缓存数据包括从至少一个目标数据集中每个目标数据集中划分得到的、对应的所述子数据。
一种可选的实施方式中,所述基于所述数据使用信息,对所述目标数据集进行分区处理,得到多份子数据,包括:
针对每个所述第二终端的所述数据使用信息,基于所述数据使用信息,确定所述第二终端需要使用的至少一种业务数据;
从所述目标数据集中提取出所述至少一种业务数据,并将提取出的所述至少一种业务数据作为一份子数据。
一种可选的实施方式中,在所述若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置之前,所述方法包括:
获取所述数据传输数据库中预先生成的分区节点映射,所述分区节点映射包括多个所述数据存储位置与多个数据处理节点之间的一一对应关系;
基于所述分区节点映射指示的所述多个数据处理节点,分别建立与每个所述数据处理节点之间的通信通道。
一种可选的实施方式中,所述若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,包括:
若所述缓存区中存储的缓存数据满足预设条件,通过与所述缓存区对应的所述通信通道将所述缓存数据发送至所述目标数据处理节点,以通过所述目标数据处理节点将所述缓存数据写入所述数据传输数据库中对应的数据存储位置。
一种可选的实施方式中,通过以下步骤确定所述缓存区中存储的缓存数据满足预设条件:
在将至少一个目标数据中对应的所述子数据依次存储至所述缓存区的情况下,若所述缓存区中存储的至少一份子数据的数据量大于或者等于预设数据缓存量,确定所述缓存区中存储的缓存数据满足预设条件;或者
在将至少一个目标数据中对应的所述子数据依次存储至所述缓存区的情况下,若所述缓存区中存储至少一份子数据的缓存时间到达缓存周期,确定所述缓存区中存储的缓存数据满足预设条件。
一种可选的实施方式中,所述将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,包括:
基于所述数据传输数据库中与所述子数据对应的数据存储位置的位置信息和数据块信息,将所述缓存数据封装成目标数据块;
对所述目标数据块进行压缩和序列化处理;
将处理后的所述数据块发送至所述数据传输数据库中对应的数据存储位置。
一种可选的实施方式中,在所述若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置之后,所述方法包括:
在每组所述缓存数据均成功发送至所述数据传输数据库中后,向所述服务器发送汇报信息,所述汇报信息包括所述缓存数据的传输次数信息和每次传输是否成功的信息。
本公开实施例提供了一种数据处理方法,所述方法应用于分布式数据处理系统中的数据传输数据库,所述分布式数据处理系统包括服务器、多个第一终端、多个第二终端和数据传输数据库,所述方法包括:
接收所述第一终端发送的多组缓存数据,每组所述缓存数据包括至少一份子数据;
针对每组所述缓存数据,将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置,以便所述第二终端能够从所述数据存储位置获取所述子数据。
一种可选的实施方式中,在所述接收所述第一终端发送的多组缓存数据,每组所述缓存数据包括至少一份子数据之前,所述方法包括:
获取所述数据传输数据库的节点列表,所述节点列表包括当前时刻能够使用的多个数据传输节点;
基于所述服务器发送的数据传输注册信息,从所述节点列表中的多个数据传输节点中确定出能够供第一终端使用的多个数据处理节点;
生成所述多个数据处理节点与多个数据存储位置之间的分区节点映射,所述分区节点映射包括多个所述数据存储位置与多个所述数据处理节点之间的一一对应关系,每个所述数据存储位置用于存储对应的所述缓存数据。
一种可选的实施方式中,在所述生成所述多个数据处理节点与多个数据存储位置之间的分区节点映射之后,所述方法还包括:
将所述分区节点映射发送至所述服务器和/或所述第一终端。
一种可选的实施方式中,所述将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置,包括:
通过与所述缓存数据对应的所述数据处理节点接收所述缓存数据;
通过与所述缓存数据对应的所述数据处理节点,将所述缓存数据写入消息缓存队列中;
从所述消息缓存队列中取出所述缓存数据,并对所述缓存数据进行解析处理,得到所述至少一份子数据;
将所述至少一份子数据写入对应的目标数据存储位置。
一种可选的实施方式中,在所述接收所述第一终端发送的多组缓存数据之后,所述方法还包括:
针对每组所述缓存数据,在接收所述缓存数据成功的情况下,向第一终端发送确认信息。
一种可选的实施方式中,在所述将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置之后,所述方法还包括:
确定数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息;
将所述数据存储信息发送至所述服务器。
本公开实施例提供了一种数据处理方法,所述方法应用于分布式数据处理系统中的第二终端,所述分布式数据处理系统包括服务器、多个第一终端、多个所述第二终端和数据传输数据库,所述方法包括:
获取所述服务器处存储的数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息;
基于所述数据信息、所述位置信息和所述第二终端的数据使用信息,确定所述第二终端需要使用的目标数据和所述目标数据所在的目标数据存储位置,所述目标数据包括所述目标数据存储位置存储的所述至少一份子数据;
从所述目标数据存储位置获取存储的所述至少一份子数据。
一种可选的实施方式中,在所述从所述目标数据存储位置获取存储的所述至少一份子数据之后,所述方法包括:
获取在所述目标数据传输过程中的传输确认信息,所述传输确认信息包括传输所述目标数据集中每份子数据是否传输成功的信息;
基于所述传输确认信息,对所述目标数据存储位置存储的所述至少一份子数据进行过滤和去重处理,得到处理后的所述目标数据。
本公开实施例还提供一种第一终端,所述第一终端包括:
第一确定模块,用于确定当前待传输的目标数据集,以及所述第二终端的数据使用信息;
分区模块,用于基于所述数据使用信息,对所述目标数据集进行分区处理,得到多份子数据;
缓存模块,用于将多份所述子数据分别缓存至所述第一终端中对应的缓存区中,所述第一终端中预先生成有多个所述缓存区;
第一发送模块,用于针对每个所述缓存区,在所述缓存区中写入所述子数据的情况下,若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,以便所述第二终端从所述数据存储位置获取存储的所述缓存数据,所述缓存数据包括从至少一个目标数据集中每个目标数据集中划分得到的、对应的所述子数据。
一种可选的实施方式中,所述分区模块具体用于:
针对每个所述第二终端的所述数据使用信息,基于所述数据使用信息,确定所述第二终端需要使用的至少一种业务数据;
从所述目标数据集中提取出所述至少一种业务数据,并将提取出的所述至少一种业务数据作为一份子数据。
一种可选的实施方式中,所述第一终端还包括连接模块,所述连接模块用于:
获取所述数据传输数据库中预先生成的分区节点映射,所述分区节点映射包括多个所述数据存储位置与多个数据处理节点之间的一一对应关系;
基于所述分区节点映射指示的所述多个数据处理节点,分别建立与每个所述数据处理节点之间的通信通道。
一种可选的实施方式中,所述第一发送模块具体用于:
若所述缓存区中存储的缓存数据满足预设条件,通过与所述缓存区对应的所述通信通道将所述缓存数据发送至所述目标数据处理节点,以通过所述目标数据处理节点将所述缓存数据写入所述数据传输数据库中对应的数据存储位置。
一种可选的实施方式中,所述第一发送模块通过以下步骤确定所述缓存区中存储的缓存数据满足预设条件:
在将至少一个目标数据中对应的所述子数据依次存储至所述缓存区的情况下,若所述缓存区中存储的至少一份子数据的数据量大于或者等于预设数据缓存量,确定所述缓存区中存储的缓存数据满足预设条件;或者
在将至少一个目标数据中对应的所述子数据依次存储至所述缓存区的情况下,若所述缓存区中存储至少一份子数据的缓存时间到达缓存周期,确定所述缓存区中存储的缓存数据满足预设条件。
一种可选的实施方式中,所述第一发送模块在用于将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置时,具体用于:
基于所述数据传输数据库中与所述子数据对应的数据存储位置的位置信息和数据块信息,将所述缓存数据封装成目标数据块;
对所述目标数据块进行压缩和序列化处理;
将处理后的所述数据块发送至所述数据传输数据库中对应的数据存储位置。
一种可选的实施方式中,所述第一终端还包括汇报模块,所述汇报模块用于:
在每组所述缓存数据均成功发送至所述数据传输数据库中后,向所述服务器发送汇报信息,所述汇报信息包括所述缓存数据的传输次数信息和每次传输是否成功的信息。
本公开实施例还提供一种数据传输数据库,所述数据传输数据库包括:
接收模块,用于接收所述第一终端发送的多组缓存数据,每组所述缓存数据包括至少一份子数据;
存储模块,用于针对每组所述缓存数据,将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置,以便所述第二终端能够从所述数据存储位置获取所述子数据。
一种可选的实施方式中,所述数据传输数据库还包括映射模块,所述映射模块用于:
获取所述数据传输数据库的节点列表,所述节点列表包括当前时刻能够使用的多个数据传输节点;
基于所述服务器发送的数据传输注册信息,从所述节点列表中的多个数据传输节点中确定出能够供第一终端使用的多个数据处理节点;
生成所述多个数据处理节点与多个数据存储位置之间的分区节点映射,所述分区节点映射包括多个所述数据存储位置与多个所述数据处理节点之间的一一对应关系,每个所述数据存储位置用于存储对应的所述缓存数据。
一种可选的实施方式中,所述映射模块还用于:
将所述分区节点映射发送至所述服务器和/或所述第一终端。
一种可选的实施方式中,所述接收模块在用于将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置时,具体用于:
通过与所述缓存数据对应的所述数据处理节点接收所述缓存数据;
通过与所述缓存数据对应的所述数据处理节点,将所述缓存数据写入消息缓存队列中;
从所述消息缓存队列中取出所述缓存数据,并对所述缓存数据进行解析处理,得到所述至少一份子数据;
将所述至少一份子数据写入对应的目标数据存储位置。
一种可选的实施方式中,所述数据传输数据库还包括确认模块,所述确认模块用于:
针对每组所述缓存数据,在接收所述缓存数据成功的情况下,向第一终端发送确认信息。
一种可选的实施方式中,所述数据传输数据库还包括第二发送模块,所述第二发送模块用于:
确定数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息;
将所述数据存储信息发送至所述服务器。
本公开实施例还提供一种第二终端,所述第二终端包括:
第一获取模块,用于获取所述服务器处存储的数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息;
第二确定模块,基于所述数据信息、所述位置信息和所述第二终端的数据使用信息,确定所述第二终端需要使用的目标数据和所述目标数据所在的目标数据存储位置,所述目标数据包括所述目标数据存储位置存储的所述至少一份子数据;
第二获取模块,用于从所述目标数据存储位置获取存储的所述至少一份子数据。
一种可选的实施方式中,所述第二终端还包括处理模块,所述处理模块用于:
获取在所述目标数据传输过程中的传输确认信息,所述传输确认信息包括传输所述目标数据集中每份子数据是否传输成功的信息;
基于所述传输确认信息,对所述目标数据存储位置存储的所述至少一份子数据进行过滤和去重处理,得到处理后的所述目标数据。
本公开实施例还提供一种分布式数据处理系统,所述分布式数据处理系统包括服务器、多个如上述的第一终端、多个如上述的第二终端和如上述的数据传输数据库,每个所述第一终端分别与所述服务器和所述数据传输数据库通信连接,每个所述第二终端分别与所述服务器和所述数据传输数据库通信连接。
本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述数据处理方法的步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述数据处理方法的步骤。
本公开实施例还提供一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现上述数据处理方法的步骤。
本公开实施例提供的数据处理方法、终端、系统、设备、介质及计算机程序产品,分布式数据处理系统包括服务器、多个第一终端、多个第二终端和数据传输数据库,第一终端可以基于第二终端的数据使用信息,对当前待传输的目标数据集进行分区处理,将得到的多份子数据缓存至对应的缓存区中,并发送至数据传输数据库,数据库可以接收第一终端发送的子数据,并存储至对应的数据存储位置,第二终端可以基于服务器处存储的数据存储信息和自身的数据使用信息,从对应的目标数据存储位置获取存储的子数据。
这样,对于数据的传输而言,通过新增数据传输数据库作为数据中转媒介,在第一终端侧,通过第二终端的数据使需求将数据划分成多份,并进行分区缓存和传输,可以将第一终端侧的数据处理阶段和数据存储阶段分离,实现第一终端侧部分功能的释放和数据处理节点的解耦,降低与第一终端侧中各任务之间的影响,释放更多的本地存储空间,大大提升第一终端的本地存储性能和数据处理性能,以及数据读取性能,在数据传输数据库作为数据中转媒介的情况下,可以实现数据存储的双副本机制,双重保存数据,提高数据容错率,并且对于第一终端侧划分的多份子数据,可以分别进行接收和存储,可以减少单一环节的数据处理量,提高数据存储的稳定性,有利于增加整体数据吞吐量,在第二终端侧,可以跳过多个第一终端,直接从数据传输数据库中对应的位置获取数据,可以减少网络节点连接量,简化数据接收网络结构,大大提升数据读取性能,本方案,整体上有利于实行动态扩容,增加数据处理的灵活性,提高数据处理的稳定性。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种分布式数据处理系统的示意图;
图2示出了本公开实施例所提供的一种数据处理方法的流程图;
图3示出了本公开实施例所提供的另一种数据处理方法的流程图;
图4示出了本公开实施例所提供的又一种数据处理方法的流程图;
图5示出了本公开实施例所提供的一种数据处理方法中,数据流向的具体示意图;
图6示出了本公开实施例所提供的一种第一终端的示意图之一;
图7示出了本公开实施例所提供的一种第一终端的示意图之二;
图8示出了本公开实施例所提供的一种数据传输数据库的示意图之一;
图9出了本公开实施例所提供的一种数据传输数据库的示意图之二;
图10了本公开实施例所提供的一种第二终端的示意图之一;
图11示出了本公开实施例所提供的一种第二终端的示意图之二;
图12示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,在现有的Shuffle阶段中,使用到的磁盘无论在性能还是容量方面,均无法支撑大规模的Shuffle场景,并且每个Map任务和每个Reduce任务需要进行连接,连接数较多,消耗大量内存,并且计算存储节点耦合,磁盘负载高,数据读取缓慢,难以实现动态扩缩容,灵活性较低且错误率较高,急需引入数据传输数据库进行数据处理,实现高效率的Shuffle阶段。
基于上述研究,本公开提供了一种数据处理方法,第一终端可以基于第二终端的数据使用信息,对当前待传输的目标数据集进行分区处理,将得到的多份子数据缓存至对应的缓存区中,并发送至数据传输数据库,数据库可以接收第一终端发送的子数据,并存储至对应的数据存储位置,第二终端可以基于服务器处存储的数据存储信息和自身的数据使用信息,从对应的目标数据存储位置获取存储的子数据。
这样,对于数据的传输而言,通过新增数据传输数据库作为数据中转媒介,在第一终端侧,通过第二终端的数据使需求将数据划分成多份,并进行分区缓存和传输,可以将第一终端侧的数据处理阶段和数据存储阶段分离,实现第一终端侧部分功能的释放和数据处理节点的解耦,降低与第一终端侧中各任务之间的影响,释放更多的本地存储空间,大大提升第一终端的本地存储性能和数据处理性能,以及数据读取性能,在数据传输数据库作为数据中转媒介的情况下,可以实现数据存储的双副本机制,双重保存数据,提高数据容错率,并且对于第一终端侧划分的多份子数据,可以分别进行接收和存储,可以减少单一环节的数据处理量,提高数据存储的稳定性,有利于增加整体数据吞吐量,在第二终端侧,可以跳过多个第一终端,直接从数据传输数据库中对应的位置获取数据,可以减少网络节点连接量,简化数据接收网络结构,大大提升数据读取性能,本方案,整体上有利于实行动态扩容,增加数据处理的灵活性,提高数据处理的稳定性。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据处理方法进行详细介绍,本公开实施例所提供的数据处理方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备。在一些可能的实现方式中,该数据处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
请参阅图1,图1为本公开实施例提供的一种分布式数据处理系统的示意图。如图1中所示,分布式数据处理系统包括有进行业务部署的服务器、多个第一终端、多个第二终端和数据传输数据库,每个所述第一终端分别与所述服务器和所述数据传输数据库通信连接,每个所述第二终端分别与所述服务器和所述数据传输数据库通信连接。
在所述服务器中可以部署有驱动器节点(Spark Driver)和元服务节点(MetaService),所述驱动器节点可以向所述数据传输数据库注册当前执行的Shuffle阶段的信息,并声明一次Shuffle阶段的开始,所述驱动器节点还可以将多个第一终端和多个第二终端的数据处理逻辑分别封装成数据处理任务,并分别发送给每个所述第一终端和每个所述第二终端,以进行数据处理。
进一步的,每个所述第一终端上具有数据转换(Map)阶段的Map任务节点,每个所述第二终端上具有数据整合(Reduce)阶段的Reduce任务节点,基于所述数据传输数据库,将每个所述第一终端和每个所述第二终端进行连接,即所述每个所述第一终端和每个所述第二终端通过所述数据传输数据库实现数据的处理。
可以理解,这里的数据传输数据库,可以包括数据存储架构(Remote ShuffleService,RSS)和分布式文件系统(Hadoop Distributed File System,HDFS),通过使用RSS,可以使数据传输(Shuffle)阶段的数据读写性能显著提升,保障跨网络传输的稳定性,HDFS具有高度容错的特点,并且提供高吞吐量的数据访问,可以实现流式读取系统数据,适合在大规模数据集场景下使用。
进一步的,所述数据传输数据库中包括数据处理主节点(RSS Master)、多个数据处理节点(RSS Slave)和多个数据存储位置,所述多个数据处理节点可以和每个所述第一终端建立通信连接,所述多个数据存储位置可以和每个所述第二终端建立通信连接。在所述第一终端、所述第二终端和所述数据传输数据库进行数据传输的过程中,还可以将对应的数据信息发送至服务器进行保存备份,并且也可以从服务器中获取需要的数据信息。
相应的,请参阅图2,图2为本公开实施例提供的一种数据处理方法的流程图。本公开实施例提供的数据处理方法应用于如图1中所示的分布式数据处理系统中的第一终端,如图2中所示,所述数据处理方法包括:
S201:确定当前待传输的目标数据集,以及所述第二终端的数据使用信息。
该步骤中,在接收到所述服务器下发的数据处理任务后,通过对所述数据处理任务进行解析,从而可以从对应的任务系统中获取到包含相应数据的目标数据集,并且可以通过从所述服务器或者从所述第二终端处获取所述第二终端对于所处理数据的数据使用信息。
可以理解,在实际数据处理场景下,所述第一终端在接收到所述服务器下发的数据处理任务后,可以周期性地或者连续性地进行数据处理,每进行一次数据处理,即可得到一批数据,形成目标数据集,陆续进行多次数据处理后,可以得到多个目标数据集,相应的,在后续进行数据传输时,可以依次将得到的目标数据集进行处理和传输。
示例性的,对于周边环境数据的采集和处理任务而言,例如任务系统以每5秒为一个周期采集一次环境数据,相应的,第一终端每5秒即可接收一次采集数据,即可形成一个目标数据集,而在数据的持续处理中,随着时间的累积,即有多个目标数据集的数据需要进行传输。
其中,所述目标数据集,可以是所述第一终端从业务系统接收的待传输数据,也可以是所述第一终端从所述从业务系统接收到待传输数据后,在所述第一终端中经过基础处理后得到的数据,在此并不做任何限定。
S202:基于所述数据使用信息,对所述目标数据集进行分区处理,得到多份子数据。
该步骤中,在确定所述数据使用信息的情况下,可以基于所述数据使用信息,通过分区算法等方式,对所述目标数据集进行分区处理,得到多份子数据。
其中,所述分区与所述第二终端的数据使用信息相关,可以理解,所述第二终端的数据使用信息可以包括该第二终端需要使用的数据的类型、属性等,相应的,每份所述子数据即为所述第二终端需要使用的数据。
具体的,可以针对每个所述第二终端的所述数据使用信息,基于所述数据使用信息,确定所述第二终端需要使用的至少一种业务数据,从所述目标数据集中提取出所述至少一种业务数据,并将提取出的所述至少一种业务数据作为一份子数据。
这里,首先可以获取每个所述第二终端的所述数据使用信息,从而可以基于所述数据使用信息,确定所述第二终端需要使用的至少一种业务数据,在确定所述第二终端需要使用的至少一种业务数据的情况下,就可以从所述目标数据集中提取出所述至少一种业务数据,并将提取出的所述至少一种业务数据作为一份子数据。
这样,通过基于所述第二终端需要使用的至少一种业务数据,从所述目标数据集中提取出的所述至少一种业务数据作为一份子数据的方式,在第一终端接收到目标数据集时就可以将数据进行划分和提取,便于后续第二终端获取数据,节省大量人力物力。
其中,由于单一所述第一终端中的所述目标数据集中的数据,不一定包含每一个所述第二终端所需的数据,因此对于所述目标数据集划分出的多份所述子数据,多份所述子数据的份数是小于或者等于所述第二终端的终端数量的。
进一步的,若所述目标数据集包括的数据是聚合类型的算子,基于所述聚合类型的算子的特性,可以对所述目标数据集进行数据聚合处理。
S203:将多份所述子数据分别缓存至所述第一终端中对应的缓存区中,所述第一终端中预先生成有多个所述缓存区。
该步骤中,可以先基于多个所述第二终端的终端数量,预先生成多个缓存区,每一个缓存区对应于一个所述第二终端,也可以是先基于多份所述子数据的份数,预先生成多个缓存区,每一个缓存区对应于一份所述子数据,进而在得到多份所述子数据的情况下,可以将多份所述子数据分别缓存至所述第一终端中对应的所述缓存区中。
其中,所述缓冲区的大小可以基于所述第一终端的内存设定,也可以响应于用户的操作设定,还可以由所述第一终端的内存和用户的操作比例设定,在此并不做任何限定。
可以理解,在实际数据处理场景下,对于每一个所述目标数据集,在划分完之后,所述子数据即可存储到对应的所述缓存区中,从而实现数据的流式读写。这样,基于所述缓存区的设立,可以提高数据接收的吞吐量,保障所述第一终端接收数据的稳定性。
S204:针对每个所述缓存区,在所述缓存区中写入所述子数据的情况下,若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,以便所述第二终端从所述数据存储位置获取存储的所述缓存数据,所述缓存数据包括从至少一个目标数据集中每个目标数据集中划分得到的、对应的所述子数据。
该步骤中,针对每个所述缓存区,在所述缓存区中写入所述子数据的情况下,可以实时检测所述缓存区中存储的缓存数据的状态,所述缓存数据包括从至少一个目标数据集中每个目标数据集中划分得到的、对应的所述子数据。若所述缓存数据满足预设条件,可以将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,以便第二终端可以从所述数据存储位置获取存储的所述缓存数据。
其中,所述缓存区中存储的缓存数据满足预设条件,可以是所述缓存数据包括的所述子数据的数据量达到预设数据量阈值,也可以是所述缓存数据包括的所述子数据的缓存时间达到预设缓存周期,还可以是所述缓存数据的缓存速度达到预设缓存速度,在此并不做任何限定。
其中,在所述缓存区中存储的缓存数据满足预设条件的情况下,可以触发flush机制,将所述缓存区中存储的缓存数据发送出去,并将该缓存区清空,以提高所述第一终端的读写性能,进而提高Shuffle阶段的执行性能。
其中,每个所述缓存区可以写入至少一个所述子数据,可以理解,在当前存在至少一个目标数据集的情况下,针对每个所述目标数据集,每个所述目标数据集可以进行分区处理,得到多份子数据,这样,在至少一次数据处理,对至少一个目标数据集进行划分后,至少一个目标数据集中每个所述目标数据集中的一份子数据可以写入同一缓存区。
进一步的,可以确定至少一个目标数据集中每个所述目标数据集中的子数据的数据类型,可以将相同类型的、来自不同所述目标数据集的所述子数据写入同一缓存区。
示例性的,以对打车接单的数据进行处理为例,当前存在三个目标数据集,第一个目标数据集包括的数据类型为a区域用户提交的订单,第二个目标数据集包括的数据类型为b区域用户提交的订单,第三个目标数据集包括的数据类型为c区域用户提交的订单,对三个目标数据集进行分区处理,每个目标数据集可以得到多份子数据,此时,获取到第二终端的数据使用信息为用户的联系电话,这样,可以将三个目标数据集中每个目标数据集中划分出的与用户联系电话对应的所述子数据,写入同一个缓存区。
进一步的,为了将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,需要预先和所述数据传输数据库建立可以进行数据传输的通信通道。
具体的,在所述若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置之前,可以获取所述数据传输数据库中预先生成的分区节点映射,所述分区节点映射包括多个所述数据存储位置与多个数据处理节点之间的一一对应关系,基于所述分区节点映射指示的所述多个数据处理节点,分别建立与每个所述数据处理节点之间的通信通道。
该步骤中,可以获取所述数据传输数据库中预先生成的分区节点映射,以便确定后续数据传输的通信通道,在确定所述分区映射的情况下,由于所述分区节点映射包括多个所述数据存储位置与多个数据处理节点之间的一一对应关系,所以可以确定所述分区节点映射指示的所述多个数据处理节点,从而分别建立与每个所述数据处理节点之间的通信通道。
其中,可以直接从所述数据传输数据库中获取所述分区节点映射,进一步的,所述数据传输数据库可以将所述分区节点映射发送给上述服务器进行保存,因此也可以从所述服务器中获取所述分区节点映射。
可以理解,所述通信信道为所述第一终端和所述数据传输数据库之间的数据传输通道,所述第一终端可以和所述数据传输数据库中的所述多个数据处理节点中的每个所述数据处理节点建立通信通道。
一些可能的实施方式中,所述若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,包括:
若所述缓存区中存储的缓存数据满足预设条件,通过与所述缓存区对应的所述通信通道将所述缓存数据发送至所述目标数据处理节点,以通过所述目标数据处理节点将所述缓存数据写入所述数据传输数据库中对应的数据存储位置。
该步骤中,可以实时检测所述缓存区中存储的缓存数据的状态,若检测到所述缓存数据满足预设条件,可以将所述缓存区中存储的缓存数据发送出去,具体的,可以通过建立的所述通信通道,将所述缓存数据发送至所述目标数据处理节点,从而可以通过所述目标数据处理节点将所述缓存数据写入所述数据传输数据库中对应的数据存储位置,以实现将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置。
一些可能的实施方式中,通过以下步骤确定所述缓存区中存储的缓存数据满足预设条件:
在将至少一个目标数据中对应的所述子数据依次存储至所述缓存区的情况下,若所述缓存区中存储的至少一份子数据的数据量大于或者等于预设数据缓存量,确定所述缓存区中存储的缓存数据满足预设条件;或者
在将至少一个目标数据中对应的所述子数据依次存储至所述缓存区的情况下,若所述缓存区中存储至少一份子数据的缓存时间到达缓存周期,确定所述缓存区中存储的缓存数据满足预设条件。
该步骤中,在将至少一个目标数据中对应的所述子数据依次存储至所述缓存区的情况下,可以实时检测存储的数据量,若所述缓存区中存储的至少一份子数据的数据量大于或者等于预设数据缓存量,可以认为所述缓存区中存储的缓存数据满足预设条件,还可以实时检测存储的时间,若所述缓存区中存储至少一份子数据的缓存时间到达缓存周期,可以认为所述缓存区中存储的缓存数据满足预设条件。
一些可能的实施方式中,所述将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,包括:
基于所述数据传输数据库中与所述子数据对应的数据存储位置的位置信息和数据块信息,将所述缓存数据封装成目标数据块;
对所述目标数据块进行压缩和序列化处理;
将处理后的所述数据块发送至所述数据传输数据库中对应的数据存储位置。
该步骤中,在需要将缓存区中的缓存数据发送至所述数据传输数据库中对应的数据存储位置的情况下,首先可以确定所述数据传输数据库中与所述子数据对应的数据存储位置的位置信息和数据块信息,然后可以基于所述位置信息和数据块信息,将所述缓存数据封装成目标数据块,并且对所述目标数据块进行压缩和序列化处理,进而可以将处理后的所述数据块发送至所述数据传输数据库中对应的数据存储位置。
其中,将所述缓存数据封装成目标数据块的具体方式,可以是先基于所述位置信息和数据块信息,计算出数据块头,再将所述缓存数据写入数据块。
这样,通过以数据块的形式发送数据的方式,可以高效地进行内存分配,在处理大量数据时可以节省内存,提高发送速度。
一些可能的实施方式中,在全部所述子数据存储至所述缓存区的情况下,无论所述缓存区中存储的缓存数据是否满足预设条件,可以将所有所述缓存区中的缓存数据发送至所述数据传输数据库中对应的数据存储位置。
一些可能的实施方式中,在所述若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置之后,所述方法包括:
在每组所述缓存数据均成功发送至所述数据传输数据库中后,向所述服务器发送汇报信息,所述汇报信息包括所述缓存数据的传输次数信息和每次传输是否成功的信息。
该步骤中,在每组所述缓存数据均成功发送至所述数据传输数据库中后,所述数据传输数据库可以向所述第一终端发送确认信息,进一步的,所述汇报信息中也可以包括所述第一终端接收到的所述确认信息。
这样,通过向所述服务器发送汇报信息的方式,所述服务器可以将所述汇报信息包括的所述缓存数据的传输次数信息、每次传输是否成功的信息以及确认信息进行保存,以便后续上述第二终端获取所述汇报信息,并且所述第二终端可以基于所述汇报信息获取需要使用的数据。
本公开实施例提供的数据处理方法,可以应用于分布式数据处理系统中的第一终端,可以确定当前待传输的目标数据集,以及所述第二终端的数据使用信息,基于所述数据使用信息,对所述目标数据集进行分区处理,得到多份子数据,将多份所述子数据分别缓存至所述第一终端中对应的缓存区中,所述第一终端中预先生成有多个所述缓存区,针对每个所述缓存区,在所述缓存区中写入所述子数据的情况下,若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,以便所述第二终端从所述数据存储位置获取存储的所述缓存数据,所述缓存数据包括从至少一个目标数据集中每个目标数据集中划分得到的、对应的所述子数据。这样,在第一终端侧,通过第二终端的数据使需求将数据划分成多份,并进行分区缓存和传输,可以将第一终端侧的数据处理阶段和数据存储阶段分离,实现第一终端侧部分功能的释放和数据处理节点的解耦,降低与第一终端侧中各任务之间的影响,释放更多的本地存储空间,大大提升第一终端的本地存储性能和数据处理性能,以及数据读取性能,有利于实行动态扩容,增加数据处理的灵活性,提高数据处理的稳定性。
请参阅图3,图3为本公开实施例提供的另一种数据处理方法的流程图。本公开实施例提供的数据处理方法应用于如图1中所示的分布式数据处理系统中的数据传输数据库,如图3中所示,所述数据处理方法包括:
S301:接收所述第一终端发送的多组缓存数据,每组所述缓存数据包括至少一份子数据。
该步骤中,可以响应于第一终端的发送请求,接收所述第一终端发送的多组缓存数据,每组所述缓存数据包括至少一份子数据。
其中,所述缓存数据包括从至少一个目标数据集中每个目标数据集中划分得到的、对应的所述子数据,进一步的接收到的每组所述缓存数据包括得至少一份子数据对应为从至少一个目标数据集中每个目标数据集中划分得到的、对应的所述子数据,可以理解,一份子数据对应为从一个目标数据集中划分得到的数据。
进一步的,为了接收所述第一终端发送的多组缓存数据,需要预先和所述第一终端建立可以进行数据传输的通信通道。
具体的,在所述接收所述第一终端发送的多组缓存数据之前,可以获取所述数据传输数据库的节点列表,所述节点列表包括当前时刻能够使用的多个数据传输节点,基于所述服务器发送的数据传输注册信息,从所述节点列表中的多个数据传输节点中确定出能够供第一终端使用的多个数据处理节点,生成所述多个数据处理节点与多个数据存储位置之间的分区节点映射,所述分区节点映射包括多个所述数据存储位置与多个所述数据处理节点之间的一一对应关系,每个所述数据存储位置用于存储对应的所述缓存数据。
该步骤中,所述数据传输数据库中存在多个数据传输节点,需要确定当前时刻能够使用的所述多个数据传输节点,具体的,可以获取所述数据传输数据库的节点列表,所述节点列表包括当前时刻能够使用的多个数据传输节点,在确定包括当前时刻能够使用的多个数据传输节点的所述节点列表的情况下,可以获取服务器发送的数据传输注册信息,基于所述数据传输注册信息,从所述节点列表中的多个数据传输节点中确定出能够供第一终端使用的多个数据处理节点,在确定能够供第一终端使用的多个数据处理节点的情况下,可以生成所述多个数据处理节点与多个数据存储位置之间的分区节点映射,以便响应于所述第一终端发送数据的请求,可以基于所述分区节点映射指示的所述多个数据处理节点,分别建立与每个所述数据处理节点之间的通信通道。此外,由于所述分区节点映射包括多个所述数据存储位置与多个所述数据处理节点之间的一一对应关系,每个所述数据存储位置用于存储对应的所述缓存数据,以便后续可以对接收到的所述缓存数据进行存储。
其中,通过确定当前时刻能够使用的多个数据传输节点,可以确定与所述第一终端进行数据传输的数据处理节点。
其中,所述数据传输注册信息可以包括所述第一终端接收到的当前待传输的目标数据集的目标数据集信息、对所述目标数据集进行分区处理后得到的多份子数据的子数据信息以及将所述多份子数据缓存至缓存区的缓存区信息,这样,基于所述数据传输信息,可以确定所述第一终端需要使用的数据处理节点的数量,从而从所述节点列表中的多个数据传输节点中确定出能够供第一终端使用的多个数据处理节点。
S302:针对每组所述缓存数据,将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置,以便所述第二终端能够从所述数据存储位置获取所述子数据。
该步骤中,在接收到第一终端发送的多组缓存数据的情况下,针对每组所述缓存数据,可以确定每组所述缓存数据中的所述至少一份子数据,进而可以将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置,以便所述第二终端能够从所述数据存储位置获取所述子数据。
其中,所述接收所述缓存数据,是通过所述数据处理节点进行接收的,所述数据处理节点在接收到所述缓存数据后,对所述缓存数据进行进一步的处理,再将处理后的所述缓存数据存储至对应的数据存储位置。
具体的,可以通过与所述缓存数据对应的所述数据处理节点接收所述缓存数据,通过与所述缓存数据对应的所述数据处理节点,将所述缓存数据写入消息缓存队列中,从所述消息缓存队列中取出所述缓存数据,并对所述缓存数据进行解析处理,得到所述至少一份子数据,将所述至少一份子数据写入对应的目标数据存储位置。
该步骤中,可以通过与所述缓存数据对应的所述数据处理节点接收所述缓存数据,可以通过与所述缓存数据对应的所述数据处理节点,将所述缓存数据写入消息缓存队列中,从而可以从所述消息缓存队列中取出所述缓存数据,由于所述缓存数据是以数据块的形式进行传输的,所以可以对所述缓存数据进行解析处理,得到所述至少一份子数据,进而将所述至少一份子数据写入对应的目标数据存储位置。
其中,从所述消息缓存队列中取出所述缓存数据的具体时机,可以是通过实时检测所述消息缓存队列的方式,当检测到所述消息缓存队列非空的情况下,从所述消息缓存队列中取出所述缓存数据,也可以是当检测到所述消息缓存队列中的缓存数据的数量达到预设缓存数值时,从所述消息缓存队列中取出所述缓存数据。
其中,对所述缓存数据进行解析处理的具体方式,可以是先解析出数据块头,再解析出至少一份子数据,并将解析出的至少一份子数据顺序写入对应的目标数据存储位置。
接下来,将结合一些具体实施方式进一步对本实施例进行说明。
一些可能的实施方式中,在所述生成所述多个数据处理节点与多个数据存储位置之间的分区节点映射之后,所述方法还包括:
将所述分区节点映射发送至所述服务器和/或所述第一终端。
该步骤中,可以将所述分区节点映射发送至所述服务器和/或所述第一终端,以便响应于所述第一终端发送数据的请求,可以基于所述分区节点映射指示的所述多个数据处理节点,分别建立与每个所述数据处理节点之间的通信通道。
一些可能的实施方式中,在所述接收第一终端发送的多组缓存数据之后,所述方法还包括:
针对每组所述缓存数据,在接收所述缓存数据成功的情况下,向第一终端发送确认信息。
该步骤中,在成功接收每组所述缓存数据的情况下,可以向第一终端发送确认信息,进一步的,所述第一终端在接收到确认信息后,可以继续发送下一组所述缓存数据。
可以理解,所述第一终端在接收到所述确认信息后,还可以将所述确认信息发送给服务器,以便服务器可以对所述确认信息进行保存。
一些可能的实施方式中,在将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置之后,所述方法还包括:
确定数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息;
将所述数据存储信息发送至所述服务器。
该步骤中,在将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置的情况下,可以确定多个数据存储位置的位置信息以及每个所述数据存储位置所存储的所述至少一份子数据的数据信息,从而可以确定包括所述位置信息和所述数据信息的数据存储信息,在确定所述数据存储信息的情况下,可以将所述数据存储信息发送至所述服务器。
进一步的,所述服务器在接收到所述数据存储信息的情况下,可以返回应答信息,表示当前接收的全部目标数据集中包括的数据都成功存储至对应的数据存储位置。
这样,通过向所述服务器发送所述数据存储信息的方式,所述服务器可以将所述数据存储信息包括的多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息进行保存,以便后续上述第二终端获取所述数据存储信息,并且所述第二终端可以基于所述数据存储信息获取需要使用的数据。
本公开实施例提供的数据处理方法,可以应用于分布式数据处理系统中的数据传输数据库,可以接收所述第一终端发送的多组缓存数据,每组所述缓存数据包括至少一份子数据,针对每组所述缓存数据,将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置,以便所述第二终端能够从所述数据存储位置获取所述子数据。这样,在数据传输数据库作为数据中转媒介的情况下,可以实现数据存储的双副本机制,双重保存数据,提高数据容错率,并且对于第一终端侧划分的多份子数据,可以分别进行接收和存储,可以减少单一环节的数据处理量,提高数据存储的稳定性,有利于增加整体数据吞吐量,有利于实行动态扩容,增加数据处理的灵活性,提高数据处理的稳定性。
请参阅图4,图4为本公开实施例提供的又一种数据处理方法的流程图。本公开实施例提供的数据处理方法应用于如图1中所示的分布式数据处理系统中的第二终端,如图4中所示,所述数据处理方法包括:
S401:获取所述服务器处存储的数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息。
该步骤中,可以向所述服务器发送数据获取请求,以获取所述服务器处存储的数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息。
S402:基于所述数据信息、所述位置信息和所述第二终端的数据使用信息,确定所述第二终端需要使用的目标数据和所述目标数据所在的目标数据存储位置,所述目标数据包括所述目标数据存储位置存储的所述至少一份子数据。
该步骤中,在确定所述数据存储信息包括的所述数据信息和所述位置信息的情况下,可以基于所述数据信息、所述位置信息和所述第二终端的数据使用信息,从而可以确定所述第二终端需要使用的目标数据和所述目标数据所在的目标数据存储位置,所述目标数据包括所述目标数据存储位置存储的所述至少一份子数据。
S403:从所述目标数据存储位置获取存储的所述至少一份子数据。
该步骤中,所述目标数据存储位置存储的所述至少一份子数据对应为所述第二终端需要使用的目标数据,因此,可以从所述目标数据存储位置获取存储的所述至少一份子数据,即得到所述第二终端需要使用的目标数据。
其中,由于所述数据传输数据库是将解析出的至少一份子数据顺序写入对应的目标数据存储位置,因此,所述第二终端可以顺序从所述目标数据存储位置获取存储的所述至少一份子数据,提升读取性能,提高读取速度。
接下来,将结合一些具体实施方式进一步对本实施例进行说明。
一些可能的实施方式中,在所述从所述目标数据存储位置获取存储的所述至少一份子数据之后,所述方法包括:
获取在所述目标数据传输过程中的传输确认信息,所述传输确认信息包括传输所述目标数据集中每份子数据是否传输成功的信息;
基于所述传输确认信息,对所述目标数据存储位置存储的所述至少一份子数据进行过滤和去重处理,得到处理后的所述目标数据。
该步骤中,在实际数据处理场景下,由于网络等原因,可能会产生异常退出的情况,因而可能会导致所述第一终端将不完整的数据存储至数据传输数据库,为了保证数据的完整性和有效性,可以获取在所述目标数据传输过程中的传输确认信息,所述传输确认信息包括传输所述目标数据集中每份子数据是否传输成功的信息,从而可以基于所述传输确认信息,对所述目标数据存储位置存储的所述至少一份子数据进行过滤和去重处理,得到处理后的所述目标数据。
其中,基于所述传输确认信息,可以过滤掉执行失败的、不完整的所述子数据,实现对所述至少一份子数据的容错和去重,提高数据的有效性。
其中,可以直接从所述传输确认信息中获取所述传输确认信息,进一步的,所述传输确认信息可以将所述传输确认信息发送给所述服务器进行保存,因此也可以从所述服务器中获取所述传输确认信息。
示例性的,请参阅图5,图5为本公开实施例提供的一种数据处理方法中,数据流向的具体示意图。如图5中所示,以所述分布式数据处理系统包括服务器、数据传输数据库、一个第一终端和一个第二终端为例,第一终端可以获取当前待传输的目标数据集,并且可以从服务器获取第二终端的数据使用信息,从而基于第二终端的数据使用信息,对目标数据集进行分区处理,以得到多份子数据,然后,第一终端可以通过其与数据传输数据库的数据处理节点建立的通信通道,将多份子数据发送至数据处理节点,数据处理节点可以把接收到的子数据存储至数据存储位置,这样,第二终端可以从数据存储位置获取存储的子数据,即获取需要使用的数据。此外,第一终端数据传输数据库和第二终端可以在数据传输的过程中,将对应的数据信息发送至服务器进行保存备份,并且也可以从服务器中获取需要的数据信息。
本公开实施例提供的数据处理方法,可以应用于分布式数据处理系统中的第二终端,可以获取所述服务器处存储的数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息,基于所述数据信息、所述位置信息和所述第二终端的数据使用信息,确定所述第二终端需要使用的目标数据和所述目标数据所在的目标数据存储位置,所述目标数据包括所述目标数据存储位置存储的所述至少一份子数据,从所述目标数据存储位置获取存储的所述至少一份子数据。这样,在第二终端侧,可以跳过多个第一终端,直接从数据传输数据库中对应的位置获取数据,可以减少网络节点连接量,简化数据接收网络结构,大大提升数据读取性能,有利于实行动态扩容,增加数据处理的灵活性,提高数据处理的稳定性。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与数据处理方法对应的第一终端,由于本公开实施例中的第一终端解决问题的原理与本公开实施例上述数据处理方法相似,因此第一终端的实施可以参见方法的实施,重复之处不再赘述。
请参阅图6和图7,图6为本公开实施例提供的一种第一终端的示意图之一,图7为本公开实施例提供的一种第一终端的示意图之二。如图6中所示,本公开实施例提供的第一终端600包括:
第一确定模块610,用于确定当前待传输的目标数据集,以及所述第二终端的数据使用信息;
分区模块620,用于基于所述数据使用信息,对所述目标数据集进行分区处理,得到多份子数据;
缓存模块630,用于将多份所述子数据分别缓存至所述第一终端中对应的缓存区中,所述第一终端中预先生成有多个所述缓存区;
第一发送模块640,用于针对每个所述缓存区,在所述缓存区中写入所述子数据的情况下,若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,以便所述第二终端从所述数据存储位置获取存储的所述缓存数据,所述缓存数据包括从至少一个目标数据集中每个目标数据集中划分得到的、对应的所述子数据。
一种可选的实施方式中,所述分区模块620具体用于:
针对每个所述第二终端的所述数据使用信息,基于所述数据使用信息,确定所述第二终端需要使用的至少一种业务数据;
从所述目标数据集中提取出所述至少一种业务数据,并将提取出的所述至少一种业务数据作为一份子数据。
一种可选的实施方式中,所述第一发送模块640在用于若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置时,具体用于:
若所述缓存区中存储的缓存数据满足预设条件,通过与所述缓存区对应的所述通信通道将所述缓存数据发送至所述目标数据处理节点,以通过所述目标数据处理节点将所述缓存数据写入所述数据传输数据库中对应的数据存储位置。
一种可选的实施方式中,所述第一发送模块640通过以下步骤确定所述缓存区中存储的缓存数据满足预设条件:
在将至少一个目标数据中对应的所述子数据依次存储至所述缓存区的情况下,若所述缓存区中存储的至少一份子数据的数据量大于或者等于预设数据缓存量,确定所述缓存区中存储的缓存数据满足预设条件;或者
在将至少一个目标数据中对应的所述子数据依次存储至所述缓存区的情况下,若所述缓存区中存储至少一份子数据的缓存时间到达缓存周期,确定所述缓存区中存储的缓存数据满足预设条件。
一种可选的实施方式中,所述第一发送模块640在用于将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置时,具体用于:
基于所述数据传输数据库中与所述子数据对应的数据存储位置的位置信息和数据块信息,将所述缓存数据封装成目标数据块;
对所述目标数据块进行压缩和序列化处理;
将处理后的所述数据块发送至所述数据传输数据库中对应的数据存储位置。
一种可选的实施方式中,如图7中所示,所述第一终端还包括连接模块650和汇报模块660,所述连接模块650用于:
获取所述数据传输数据库中预先生成的分区节点映射,所述分区节点映射包括多个所述数据存储位置与多个数据处理节点之间的一一对应关系;
基于所述分区节点映射指示的所述多个数据处理节点,分别建立与每个所述数据处理节点之间的通信通道。
所述汇报模块660用于:
在每组所述缓存数据均成功发送至所述数据传输数据库中后,向所述服务器发送汇报信息,所述汇报信息包括所述缓存数据的传输次数信息和每次传输是否成功的信息。
关于第一终端中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例提供的第一终端,可以确定当前待传输的目标数据集,以及所述第二终端的数据使用信息,基于所述数据使用信息,对所述目标数据集进行分区处理,得到多份子数据,将多份所述子数据分别缓存至所述第一终端中对应的缓存区中,所述第一终端中预先生成有多个所述缓存区,针对每个所述缓存区,在所述缓存区中写入所述子数据的情况下,若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,以便所述第二终端从所述数据存储位置获取存储的所述缓存数据,所述缓存数据包括从至少一个目标数据集中每个目标数据集中划分得到的、对应的所述子数据。这样,在第一终端侧,通过第二终端的数据使需求将数据划分成多份,并进行分区缓存和传输,可以将第一终端侧的数据处理阶段和数据存储阶段分离,实现第一终端侧部分功能的释放和数据处理节点的解耦,降低与第一终端侧中各任务之间的影响,释放更多的本地存储空间,大大提升第一终端的本地存储性能和数据处理性能,以及数据读取性能,有利于实行动态扩容,增加数据处理的灵活性,提高数据处理的稳定性。
请参阅图8和图9,图8为本公开实施例提供的一种数据传输数据库的示意图之一,图9为本公开实施例提供的一种数据传输数据库的示意图之二。如图8中所示,本公开实施例提供的数据传输数据库800包括:
接收模块810,用于接收所述第一终端发送的多组缓存数据,每组所述缓存数据包括至少一份子数据;
存储模块820,用于针对每组所述缓存数据,将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置,以便所述第二终端能够从所述数据存储位置获取所述子数据。
一种可选的实施方式中,所述接收模块810在用于将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置时,具体用于:
通过与所述缓存数据对应的所述数据处理节点接收所述缓存数据;
通过与所述缓存数据对应的所述数据处理节点,将所述缓存数据写入消息缓存队列中;
从所述消息缓存队列中取出所述缓存数据,并对所述缓存数据进行解析处理,得到所述至少一份子数据;
将所述至少一份子数据写入对应的目标数据存储位置。
一种可选的实施方式中,如图9中所示,所述数据传输数据库还包括映射模块830、确认模块840和第二发送模块850,所述映射模块830用于:
获取所述数据传输数据库的节点列表,所述节点列表包括当前时刻能够使用的多个数据传输节点;
基于所述服务器发送的数据传输注册信息,从所述节点列表中的多个数据传输节点中确定出能够供终端使用的多个数据处理节点;
生成所述多个数据处理节点与多个数据存储位置之间的分区节点映射,所述分区节点映射包括多个所述数据存储位置与多个所述数据处理节点之间的一一对应关系,每个所述数据存储位置用于存储对应的所述缓存数据。
一种可选的实施方式中,所述映射模块830还用于:
将所述分区节点映射发送至所述服务器和/或所述第一终端。
所述确认模块840用于:
针对每组所述缓存数据,在接收所述缓存数据成功的情况下,向第一终端发送确认信息。
所述第二发送模块850用于:
确定数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息;
将所述数据存储信息发送至所述服务器。
关于数据传输数据库中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例提供的数据传输数据库,可以接收所述第一终端发送的多组缓存数据,每组所述缓存数据包括至少一份子数据,针对每组所述缓存数据,将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置,以便所述第二终端能够从所述数据存储位置获取所述子数据。这样,在数据传输数据库作为数据中转媒介的情况下,可以实现数据存储的双副本机制,双重保存数据,提高数据容错率,并且对于第一终端侧划分的多份子数据,可以分别进行接收和存储,可以减少单一环节的数据处理量,提高数据存储的稳定性,有利于增加整体数据吞吐量,有利于实行动态扩容,增加数据处理的灵活性,提高数据处理的稳定性。
请参阅图10和图11,图10为本公开实施例提供的一种第二终端的示意图之一,图11为本公开实施例提供的一种第二终端的示意图之二。如图10中所示,本公开实施例提供的第二终端1000包括:
第一获取模块1010,用于获取所述服务器处存储的数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息;
第二确定模块1020,基于所述数据信息、所述位置信息和所述第二终端的数据使用信息,确定所述第二终端需要使用的目标数据和所述目标数据所在的目标数据存储位置,所述目标数据包括所述目标数据存储位置存储的所述至少一份子数据;
第二获取模块1030,用于从所述目标数据存储位置获取存储的所述至少一份子数据。
一种可选的实施方式中,如图11中所示,所述第二终端还包括处理模块1040,所述处理模块1040用于:
获取在所述目标数据传输过程中的传输确认信息,所述传输确认信息包括传输所述目标数据集中每份子数据是否传输成功的信息;
基于所述传输确认信息,对所述目标数据存储位置存储的所述至少一份子数据进行过滤和去重处理,得到处理后的所述目标数据。
关于第二终端中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例提供的第二终端,可以获取所述服务器处存储的数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息,基于所述数据信息、所述位置信息和所述第二终端的数据使用信息,确定所述第二终端需要使用的目标数据和所述目标数据所在的目标数据存储位置,所述目标数据包括所述目标数据存储位置存储的所述至少一份子数据,从所述目标数据存储位置获取存储的所述至少一份子数据。这样,在第二终端侧,可以跳过多个第一终端,直接从数据传输数据库中对应的位置获取数据,可以减少网络节点连接量,简化数据接收网络结构,大大提升数据读取性能,有利于实行动态扩容,增加数据处理的灵活性,提高数据处理的稳定性。
本公开实施例还提供一种分布式数据处理系统,所述分布式数据处理系统包括服务器、多个如上述的第一终端、多个如上述的第二终端和如上述的数据传输数据库,每个所述第一终端分别与所述服务器和所述数据传输数据库通信连接,每个所述第二终端分别与所述服务器和所述数据传输数据库通信连接。
对应于上述的数据处理方法,本公开实施例还提供了一种电子设备1200,如图12所示,为本公开实施例提供的电子设备1200结构示意图,包括:
处理器1210、存储器1220、和总线1230;存储器1220用于存储执行指令,包括内存1221和外部存储器1222;这里的内存1221也称内存储器,用于暂时存放处理器1210中的运算数据,以及与硬盘等外部存储器1222交换的数据,处理器1210通过内存1221与外部存储器1222进行数据交换,当所述电子设备1200运行时,所述处理器1210与所述存储器1220之间通过总线1230通信,使得所述处理器1210可以执行上述的数据处理方法的步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品包括有计算机指令,所述计算机指令被处理器执行时可以执行上述方法实施例中所述的数据处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的终端、数据库、系统、设备及存储介质的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的方法、终端、数据库、系统、设备及存储介质,可以通过其它的方式实现。以上所描述的终端和数据库实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (22)

1.一种数据处理方法,其特征在于,所述方法应用于分布式数据处理系统中的第一终端,所述分布式数据处理系统包括服务器、多个所述第一终端、多个第二终端和数据传输数据库,所述方法包括:
确定当前待传输的目标数据集,以及所述第二终端的数据使用信息;
基于所述数据使用信息,对所述目标数据集进行分区处理,得到多份子数据;
将多份所述子数据分别缓存至所述第一终端中对应的缓存区中,所述第一终端中预先生成有多个所述缓存区;
针对每个所述缓存区,在所述缓存区中写入所述子数据的情况下,若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,以便所述第二终端从所述数据存储位置获取存储的所述缓存数据,所述缓存数据包括从至少一个目标数据集中每个目标数据集中划分得到的、对应的所述子数据。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据使用信息,对所述目标数据集进行分区处理,得到多份子数据,包括:
针对每个所述第二终端的所述数据使用信息,基于所述数据使用信息,确定所述第二终端需要使用的至少一种业务数据;
从所述目标数据集中提取出所述至少一种业务数据,并将提取出的所述至少一种业务数据作为一份子数据。
3.根据权利要求1所述的方法,其特征在于,在所述若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置之前,所述方法包括:
获取所述数据传输数据库中预先生成的分区节点映射,所述分区节点映射包括多个所述数据存储位置与多个数据处理节点之间的一一对应关系;
基于所述分区节点映射指示的所述多个数据处理节点,分别建立与每个所述数据处理节点之间的通信通道。
4.根据权利要求3所述的方法,其特征在于,所述若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,包括:
若所述缓存区中存储的缓存数据满足预设条件,通过与所述缓存区对应的所述通信通道将所述缓存数据发送至所述目标数据处理节点,以通过所述目标数据处理节点将所述缓存数据写入所述数据传输数据库中对应的数据存储位置。
5.根据权利要求1-4任一项所述的方法,其特征在于,通过以下步骤确定所述缓存区中存储的缓存数据满足预设条件:
在将至少一个目标数据中对应的所述子数据依次存储至所述缓存区的情况下,若所述缓存区中存储的至少一份子数据的数据量大于或者等于预设数据缓存量,确定所述缓存区中存储的缓存数据满足预设条件;或者
在将至少一个目标数据中对应的所述子数据依次存储至所述缓存区的情况下,若所述缓存区中存储至少一份子数据的缓存时间到达缓存周期,确定所述缓存区中存储的缓存数据满足预设条件。
6.根据权利要求1所述的方法,其特征在于,所述将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,包括:
基于所述数据传输数据库中与所述子数据对应的数据存储位置的位置信息和数据块信息,将所述缓存数据封装成目标数据块;
对所述目标数据块进行压缩和序列化处理;
将处理后的所述数据块发送至所述数据传输数据库中对应的数据存储位置。
7.根据权利要求1所述的方法,其特征在于,在所述若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置之后,所述方法包括:
在每组所述缓存数据均成功发送至所述数据传输数据库中后,向所述服务器发送汇报信息,所述汇报信息包括所述缓存数据的传输次数信息和每次传输是否成功的信息。
8.一种数据处理方法,其特征在于,所述方法应用于分布式数据处理系统中的数据传输数据库,所述分布式数据处理系统包括服务器、多个第一终端、多个第二终端和数据传输数据库,所述方法包括:
接收所述第一终端发送的多组缓存数据,每组所述缓存数据包括至少一份子数据;
针对每组所述缓存数据,将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置,以便所述第二终端能够从所述数据存储位置获取所述子数据。
9.根据权利要求8所述的方法,其特征在于,在所述接收所述第一终端发送的多组缓存数据,每组所述缓存数据包括至少一份子数据之前,所述方法包括:
获取所述数据传输数据库的节点列表,所述节点列表包括当前时刻能够使用的多个数据传输节点;
基于所述服务器发送的数据传输注册信息,从所述节点列表中的多个数据传输节点中确定出能够供第一终端使用的多个数据处理节点;
生成所述多个数据处理节点与多个数据存储位置之间的分区节点映射,所述分区节点映射包括多个所述数据存储位置与多个所述数据处理节点之间的一一对应关系,每个所述数据存储位置用于存储对应的所述缓存数据。
10.根据权利要求9所述的方法,其特征在于,在所述生成所述多个数据处理节点与多个数据存储位置之间的分区节点映射之后,所述方法还包括:
将所述分区节点映射发送至所述服务器和/或所述第一终端。
11.根据权利要求9-10任一项所述的方法,其特征在于,所述将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置,包括:
通过与所述缓存数据对应的所述数据处理节点接收所述缓存数据;
通过与所述缓存数据对应的所述数据处理节点,将所述缓存数据写入消息缓存队列中;
从所述消息缓存队列中取出所述缓存数据,并对所述缓存数据进行解析处理,得到所述至少一份子数据;
将所述至少一份子数据写入对应的目标数据存储位置。
12.根据权利要求8所述的方法,其特征在于,在所述接收所述第一终端发送的多组缓存数据之后,所述方法还包括:
针对每组所述缓存数据,在接收所述缓存数据成功的情况下,向第一终端发送确认信息。
13.根据权利要求11所述的方法,其特征在于,在所述将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置之后,所述方法还包括:
确定数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息;
将所述数据存储信息发送至所述服务器。
14.一种数据处理方法,其特征在于,所述方法应用于分布式数据处理系统中的第二终端,所述分布式数据处理系统包括服务器、多个第一终端、多个所述第二终端和数据传输数据库,所述方法包括:
获取所述服务器处存储的数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息;
基于所述数据信息、所述位置信息和所述第二终端的数据使用信息,确定所述第二终端需要使用的目标数据和所述目标数据所在的目标数据存储位置,所述目标数据包括所述目标数据存储位置存储的所述至少一份子数据;
从所述目标数据存储位置获取存储的所述至少一份子数据。
15.根据权利要求14所述的方法,其特征在于,在所述从所述目标数据存储位置获取存储的所述至少一份子数据之后,所述方法包括:
获取在所述目标数据传输过程中的传输确认信息,所述传输确认信息包括传输所述目标数据集中每份子数据是否传输成功的信息;
基于所述传输确认信息,对所述目标数据存储位置存储的所述至少一份子数据进行过滤和去重处理,得到处理后的所述目标数据。
16.一种第一终端,其特征在于,所述第一终端包括:
第一确定模块,用于确定当前待传输的目标数据集,以及所述第二终端的数据使用信息;
分区模块,用于基于所述数据使用信息,对所述目标数据集进行分区处理,得到多份子数据;
缓存模块,用于将多份所述子数据分别缓存至所述第一终端中对应的缓存区中,所述第一终端中预先生成有多个所述缓存区;
第一发送模块,用于针对每个所述缓存区,在所述缓存区中写入所述子数据的情况下,若所述缓存区中存储的缓存数据满足预设条件,将所述缓存数据发送至所述数据传输数据库中对应的数据存储位置,以便所述第二终端从所述数据存储位置获取存储的所述缓存数据,所述缓存数据包括从至少一个目标数据集中每个目标数据集中划分得到的、对应的所述子数据。
17.一种数据传输数据库,其特征在于,所述数据传输数据库包括:
接收模块,用于接收所述第一终端发送的多组缓存数据,每组所述缓存数据包括至少一份子数据;
存储模块,用于针对每组所述缓存数据,将所述缓存数据中的所述至少一份子数据存储至对应的数据存储位置,以便所述第二终端能够从所述数据存储位置获取所述子数据。
18.一种第二终端,其特征在于,所述第二终端包括:
第一获取模块,用于获取所述服务器处存储的数据存储信息,所述数据存储信息包括多个数据存储位置的位置信息和每个所述数据存储位置所存储的所述至少一份子数据的数据信息;
第二确定模块,基于所述数据信息、所述位置信息和所述第二终端的数据使用信息,确定所述第二终端需要使用的目标数据和所述目标数据所在的目标数据存储位置,所述目标数据包括所述目标数据存储位置存储的所述至少一份子数据;
第二获取模块,用于从所述目标数据存储位置获取存储的所述至少一份子数据。
19.一种分布式数据处理系统,其特征在于,所述分布式数据处理系统包括服务器、多个如权利要求16所述的第一终端、多个如权利要求18所述的第二终端和如权利要求17所述的数据传输数据库,每个所述第一终端分别与所述服务器和所述数据传输数据库通信连接,每个所述第二终端分别与所述服务器和所述数据传输数据库通信连接。
20.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7、权利要求8至13或者权利要求14至15中任一项所述的数据处理方法的步骤。
21.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7、权利要求8至13或者权利要求14至15中任一项所述的数据处理方法的步骤。
22.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行时实现如权利要求1至7、权利要求8至13或者权利要求14至15中任一项所述的数据处理方法的步骤。
CN202111386619.7A 2021-11-22 2021-11-22 数据处理方法、终端、系统、设备、介质及产品 Pending CN116170508A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111386619.7A CN116170508A (zh) 2021-11-22 2021-11-22 数据处理方法、终端、系统、设备、介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111386619.7A CN116170508A (zh) 2021-11-22 2021-11-22 数据处理方法、终端、系统、设备、介质及产品

Publications (1)

Publication Number Publication Date
CN116170508A true CN116170508A (zh) 2023-05-26

Family

ID=86415027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111386619.7A Pending CN116170508A (zh) 2021-11-22 2021-11-22 数据处理方法、终端、系统、设备、介质及产品

Country Status (1)

Country Link
CN (1) CN116170508A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117034329A (zh) * 2023-10-10 2023-11-10 武汉能钠智能装备技术股份有限公司四川省成都市分公司 一种基于云计算的数据加密方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117034329A (zh) * 2023-10-10 2023-11-10 武汉能钠智能装备技术股份有限公司四川省成都市分公司 一种基于云计算的数据加密方法及系统
CN117034329B (zh) * 2023-10-10 2023-12-26 武汉能钠智能装备技术股份有限公司四川省成都市分公司 一种基于云计算的数据加密方法及系统

Similar Documents

Publication Publication Date Title
KR101745456B1 (ko) HiL 시뮬레이션 환경에서 대용량 데이터를 전송하기 위한 전자제어 장치, 이를 포함하는 시스템 및 그 방법
CN101006727B (zh) 分布式多媒体服务器系统和多媒体信息发布方法
CN114201421B (zh) 一种数据流处理方法、存储控制节点及可读存储介质
CN107818120A (zh) 基于大数据的数据处理方法和装置
CN109271363B (zh) 一种文件存储的方法及设备
EP4318251A1 (en) Data access system and method, and device and network card
CN113900810A (zh) 分布式图处理方法、系统及存储介质
US20240129251A1 (en) Data processing method and apparatus, computer device, and readable storage medium
CN108415962A (zh) 一种云存储系统
CN115270033A (zh) 一种数据访问系统、方法、设备以及网卡
CN116170508A (zh) 数据处理方法、终端、系统、设备、介质及产品
CN112860412B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN110825706B (zh) 一种数据压缩的方法和相关设备
CN106980618A (zh) 基于MongoDB分布式集群架构的文件存储方法和系统
CN116226139B (zh) 一种适用大规模海洋数据的分布式存储和处理方法及系统
CN111538772A (zh) 数据的交换处理方法、装置、电子设备及存储介质
CN114237989B (zh) 数据库服务部署、容灾方法及装置
CN113630442B (zh) 数据传输方法、装置及系统
CN111131512B (zh) 设备信息的处理方法、装置、存储介质及处理器
CN109947371B (zh) 数据记录方法、装置、存储器及t-box
CN107506283B (zh) 一种主机向san存储推送信息的方法和系统
CN111143321A (zh) 一种基于区块链架构设计的数据库分布式系统
CN109933566B (zh) 文件读写方法、装置、设备及计算机可读存储介质
CN116049200A (zh) 分析库数据更新方法、装置、计算机设备和介质
CN115865097B (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