CN114090513A - 数据处理方法、装置和系统及服务器 - Google Patents
数据处理方法、装置和系统及服务器 Download PDFInfo
- Publication number
- CN114090513A CN114090513A CN202111436154.1A CN202111436154A CN114090513A CN 114090513 A CN114090513 A CN 114090513A CN 202111436154 A CN202111436154 A CN 202111436154A CN 114090513 A CN114090513 A CN 114090513A
- Authority
- CN
- China
- Prior art keywords
- data
- dimension
- server
- query request
- large object
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/144—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开关于一种数据处理方法、装置和系统及服务器,所述数据处理方法包括:接收客户端发送的数据查询请求;获取与所述数据查询请求对应的大对象数据;按照预设的多个数据维度,将所述大对象数据拆分成每个数据维度下的维度数据,并将所述维度数据存储在服务器上;向所述客户端发送与所述数据查询请求对应的数据维度下的维度数据。根据本公开的数据处理方法、装置和系统及服务器可以解决在数据查询过程中查询效率低、数据加载时间长的问题,通过数据拆分处理并进行本地存储,可减少数据查询的数据加载时长,提高数据查询效率。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种数据处理方法、装置和系统及服务器。
背景技术
随着信息技术和互联网技术的发展,信息量迅速增长,使得数据存储量越来越大,数据类型也越来越复杂,在数据调用的过程中,通常需要在大量耦合在一起的数据中查找所需的数据。
具体来说,在相关技术中,当需要查询特定类型/属性的数据时,通常需要遍历存储的所有数据,以从这些数据中提取出所需类型/属性的数据,在这样的数据查询方式中,查询效率较低,数据加载时间会很长,特别是在面对大规模的数据调用和计算任务时,甚至可能导致卡顿、查询报错等问题。
发明内容
本公开提供一种数据处理方法、装置和系统及服务器,以至少解决相关技术中在数据查询过程中查询效率低、数据加载时间长的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据处理方法,应用于服务器,所述数据处理方法包括接收客户端发送的数据查询请求;获取与所述数据查询请求对应的大对象数据,其中,所述大对象数据中包括耦合在一起的多个维度的数据;按照预设的多个数据维度,将所述大对象数据拆分成每个数据维度下的维度数据,并将所述维度数据存储在服务器上;向所述客户端发送与所述数据查询请求对应的数据维度下的维度数据。
可选地,将所述维度数据存储在服务器上的步骤包括:将每个维度数据序列化,并将序列化后的维度数据存储在服务器上,其中,向所述客户端发送与所述数据查询请求对应的数据维度下的维度数据的步骤包括:将与所述数据查询请求对应的数据维度下的序列化维度数据进行反序列化,向所述客户端发送反序列化的维度数据。
可选地,获取与所述数据查询请求对应的大对象数据的步骤包括:基于所述数据查询请求,在服务器上查找与所述数据查询请求的数据维度对应的维度数据;若未查找到对应的维度数据,则执行获取与所述数据查询请求对应的大对象数据的步骤。
可选地,所述服务器包括第一存储器和第二存储器,其中,将序列化后的维度数据存储在服务器上的步骤包括:将序列化后的维度数据存储在所述第二存储器,并对序列化后的维度数据进行压缩,将压缩的维度数据存储在所述第一存储器。
可选地,所述服务器与分布式文件系统通信连接,其中,获取与所述数据查询请求对应的大对象数据的步骤包括:若在所述第一存储器中未查找到与所述数据查询请求的数据维度对应的压缩的维度数据,则从所述分布式文件系统获取与所述数据查询请求对应的大对象数据。
可选地,所述数据查询请求包括历史作业信息查询请求,所述预设数据维度包括任务数据维度、作业数据维度、汇聚数据维度以及作业统计数据维度,其中,按照预设数据维度,按照预设的多个数据维度,将所述大对象数据拆分成每个数据维度下的维度数据,并将所述维度数据存储在服务器上的步骤包括:针对所述任务数据维度、所述作业数据维度、所述汇聚数据维度以及所述作业统计数据维度,将所述大对象数据拆分成任务数据、作业数据、汇聚数据和作业统计数据,将所述任务数据、所述作业数据、所述汇聚数据和所述作业统计数据存储在所述第二存储器中。
可选地,所述数据处理方法还包括:若在所述第一存储器中查找到与所述数据查询请求的数据维度对应的压缩的维度数据,则从所述第二存储器中解压所对应的压缩的维度数据,将解压后的维度数据反序列化,并向所述客户端发送反序列化后的维度数据。
根据本公开实施例的第二方面,提供一种数据处理装置,应用于服务器,所述数据处理装置包括:查找单元,被配置为接收客户端发送的数据查询请求;获取单元,被配置为获取与所述数据查询请求对应的大对象数据,其中,所述大对象数据中包括耦合在一起的多个维度的数据;拆分单元,被配置为按照预设的多个数据维度,将所述大对象数据拆分成每个数据维度下的维度数据,并将所述维度数据存储在服务器上;发送单元,被配置为向所述客户端发送与所述数据查询请求对应的数据维度下的维度数据。
可选地,所述拆分单元还被配置为:将每个维度数据序列化,并将序列化后的维度数据存储在服务器上,其中,所述发送单元还被配置为:将与所述数据查询请求对应的数据维度下的序列化维度数据进行反序列化,向所述客户端发送反序列化的维度数据。
可选地,所述获取单元还被配置为:基于所述数据查询请求,在服务器上查找与所述数据查询请求的数据维度对应的维度数据;若未查找到对应的维度数据,则执行获取与所述数据查询请求对应的大对象数据的步骤。
可选地,所述服务器包括第一存储器和第二存储器,其中,所述拆分单元还被配置为:将序列化后的维度数据存储在所述第二存储器,并对序列化后的维度数据进行压缩,将压缩的维度数据存储在所述第一存储器。
可选地,所述服务器与分布式文件系统通信连接,其中,所述获取单元还被配置为:若在所述第一存储器中未查找到与所述数据查询请求的数据维度对应的压缩的维度数据,则从所述分布式文件系统获取与所述数据查询请求对应的大对象数据。
可选地,所述数据查询请求包括历史作业信息查询请求,所述预设数据维度包括任务数据维度、作业数据维度、汇聚数据维度以及作业统计数据维度,其中,所述拆分单元还被配置为:针对所述任务数据维度、所述作业数据维度、所述汇聚数据维度以及所述作业统计数据维度,将所述大对象数据拆分成任务数据、作业数据、汇聚数据和作业统计数据,将所述任务数据、所述作业数据、所述汇聚数据和所述作业统计数据存储在所述第二存储器中。
可选地,所述获取单元还被配置为:若在所述第一存储器中查找到与所述数据查询请求的数据维度对应的压缩的维度数据,则从所述第二存储器中解压所对应的压缩的维度数据,将解压后的维度数据反序列化,并向所述客户端发送反序列化后的维度数据。
根据本公开实施例的第三方面,提供一种服务器,所述服务器包括:处理器;用于存储所述处理器可执行指令的存储器,其中,所述处理器可执行指令在被所述处理器运行时,促使所述处理器执行根据本公开实施例的数据处理方法。
根据本公开实施例的第四方面,提供一种数据处理系统,所述数据处理系统包括分布式文件系统和根据本公开实施例的服务器。
根据本公开实施例的第五方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行根据本公开实施例的数据处理方法。
根据本公开实施例的第六方面,提供一种计算机程序产品,所述计算机指令被处理器执行时实现根据本公开实施例的数据处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
可以将与数据查询请求对应的大对象数据按照数据维度进行拆分,并将各个维度的维度数据存储在服务器上,使得可以响应于数据查询请求,发送拆分的数据中相应数据维度的数据,而无需再在大对象数据进行查找,从而可减少数据查询的数据加载时长,提高数据查询效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种数据处理方法在一示例应用场景下的流程图。
图2是根据一示例性实施例示出的一种数据处理方法的流程图。
图3是根据一示例性实施例示出的一种数据处理方法中获取及处理大对象数据的步骤的流程图。
图4是示出现有的数据查询和反馈方法的流程图。
图5是根据一示例性实施例示出的一种数据处理装置的框图。
图6是根据一示例性实施例示出的一种服务器的框图。
图7是根据一示例性实施例示出的一种数据处理系统的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等),均为经用户授权或者经过各方充分授权的信息。
还需要说明的是,以下文中将描述的历史作业信息查询服务的应用场景为例,数据查询可以是对历史任务及历史运行信息相关的数据的查询。然而,尽管下面以历史作业信息查询服务的应用场景为例进行了阐述,但是应理解的是,根据本公开的数据处理方法、装置和系统及服务器的应用场景不限于此,其也可以应用于任何其他涉及数据查询、处理和/或存储的应用场景中。
还需要说明的是,本公开的上下文中所述的“服务器”可以是指任何可以执行下面描述的数据处理方法的执行主体,在历史作业信息查询服务的应用场景中,服务器可以是历史服务器。然而,本公开上述执行主体不作特别限制,其可以是能够管理计算资源的任意类型的服务器。
下面参考附图描述根据本公开示例性实施例的数据处理方法、数据处理装置、服务器、数据处理系统、计算机可读存储介质及计算机程序产品。
图1是根据一示例性实施例示出的一种数据处理方法在一示例应用场景下的流程图。具体地,图1示出了在历史作业信息查询服务的示例性应用场景下数据查询及处理的过程。在此,首先结合图1对本公开示例性实施例的数据处理方法进行整体性的概括描述。需要说明的是,图1中的各步骤/装置仅是本公开的一示例性实施例中的示例性步骤/装置,在本公开的另一示例性实施例中,可以省略或替换这些步骤/装置中的一个或多个,和/或,可以添加除了这些步骤/装置之外的其他步骤/装置。
如图1所示,多个客户端(Client)中的一个或多个可以向客户服务(clientService)发送数据查询请求,例如远程过程调用(Remote Procedure Call,RPC)请求(步骤S1)。
客户服务基于该数据查询请求向缓存历史存储器(CachedHistoryStorage)发送查询(query)指令(步骤S2)。
缓存历史存储器可以在内存缓存(MemoryCache)中查找是否存在与数据查询请求对应的数据(步骤S4)。
若在步骤S4中未查找到对应的数据,一方面,缓存历史存储器可以向hs管理器(hsManager)发送提取索引信息(fetch index info)的指令(步骤S3)。hs管理器从作业列表缓存(JobListCache)获取(getfrom cache)数据(步骤S31),使得作业列表缓存从Hadoop分布式文件系统(HDFS)回调(fallback to hdfs)数据(步骤S311),HDFS响应于回调指令向作业列表缓存放回(put back)大对象数据(步骤S312)。
另一方面,内存缓存可以从诸如LevelDB的服务器本地存储回调(fallback toleveldb)数据(步骤S41)。服务器本地存储可以从HDFS回到回调(fallback to hdfs)数据(步骤S411)。可以将来自HDFS的大对象数据进行拆分和序列化(divide and serializebig objects)(步骤S412),并且将拆分和序列化后的数据整体返回到服务器本地存储(serialize whole and put back)(步骤S413)。服务器本地存储可以将返回的数据中的至少一部分数据提供到内存缓存,例如,可以根据客户端发送的作业数据查询请求,首先将从大对象数据中拆分出的作业基本信息反序列化到内存缓存(deserialize job infofirst)(步骤S42)。
内存缓存可以经由相应的接口提供大对象数据中拆分出的数据,例如,可以经由GetJobReport接口提供反序列化的作业基本信息(deserialize job info)(步骤51),可以经由GetCounters接口提供反序列化的汇聚信息(desrialize counters)(步骤52),可以经由GetTaskCompeletionEvents接口提供反序列化的任务信息(desrialize taskMap)(步骤53)。
通过图1所示的数据处理方法,可以将与数据查询请求对应的大对象数据按照数据维度进行拆分,并将各个维度的维度数据存储在服务器上,使得可以响应于数据查询请求,发送拆分的数据中相应数据维度的数据,而无需再在大对象数据进行查找,从而可减少数据查询的数据加载时长,提高数据查询效率。
图2是根据一示例性实施例示出的一种数据处理方法的流程图,该数据处理方法用于服务器中,如图2所示,数据处理方法可以包括以下步骤:
在步骤S11中,可以接收客户端发送的数据查询请求。
在该步骤中,数据查询请求是客户端向服务器发送的用于指示所需数据的信息,其可以携带有所需查询的数据的特征。数据查询请求例如可以是RPC请求。
这里,在本公开示例性实施例中所述的“数据查询请求”可以根据本公开的应用场景的不同而不同,其中,“数据查询”可以是从诸如数据类型、属性、标注、结构或粒度等的任意特征层面对数据进行查询,数据查询的内容可根据所需求的信息内容而改变。以历史作业信息查询服务的应用场景为例,数据查询请求可以包括对历史任务及历史运行信息相关的数据进行查询的历史作业信息查询请求。
在步骤S12中,可以获取与数据查询请求对应的大对象数据。
在该步骤中,大对象数据可以指的是包括耦合在一起的多个维度的数据的原始数据。例如,大对象数据可以指的是具有超过预定长度限制的非结构化数据,这里,预定长度可以取决于应用场景,相应地,大对象数据也可以根据应用场景而表示不同的数据,例如,在历史作业信息查询服务的应用场景中,大对象数据可以是Fulljob大对象数据,然而,本公开不限于此,本公开所述的大对象数据可以是按照任意数据维度而可拆分的任意数据。
作为示例,在步骤S12中,可以基于来自客户端的数据查询请求,在服务器本地上查找与数据查询请求的数据维度对应的维度数据,若未查找到对应的维度数据,则可获取与数据查询请求对应的大对象数据。
这里,数据维度指的是数据的特定特征,诸如数据类型、属性、标注、结构或粒度等。数据维度可以指的是定性维度,例如数据类型;也可以指的是定量维度,例如数据值。对于定性维度的数据,可以根据数据所具有的特征划分为不同的数据维度;对于定量维度的数据,可以根据数值分组划分为不同的数据维度。每个数据维度具有对应的维度数据。
作为示例,查找对应的维度数据的操作可以通过查找维度数据的元信息来实现,可以根据元信息判断对应的维度数据是否存储在服务器上。
在该步骤S12中,可以确定数据查询请求所请求的数据的数据维度,在服务器上查询该数据维度的数据,如果未查找到,则可认为服务器上未存储过与数据查询请求所请求的数据对应的大对象数据,从而可从外部获取该大对象数据。
作为示例,服务器可以与分布式文件系统(Distributed File System,DFS)通信连接,以从分布式文件系统获取大对象数据。这里,分布式文件系统例如可以是Hadoop分布式文件系统(HDFS)。尽管本公开中描述了服务器从诸如HDFS的分布式文件系统获取大对象数据,但是本公开不限于此,其也可以从任意位置获取到大对象数据。
这里,若在服务器本地上查找到与数据查询请求的数据维度对应的维度数据,则可以响应于数据查询请求将对应的维度数据发送至客户端,即,执行下面将描述的步骤S14。
在步骤S13中,可以按照预设的多个数据维度,将大对象数据拆分成每个数据维度下的维度数据,并将维度数据存储在服务器上。
在该步骤中,可以根据应用场景和/或实际需要,预先设定多个数据维度,以历史作业信息查询服务的应用场景为例,预设数据维度可以包括任务(task)数据维度、作业(job)数据维度、汇聚(counters)数据维度以及作业统计(jobanalysis)数据维度。
服务器在获取到大对象数据后,可以按照预设数据维度对大对象数据进行拆分,以获得每个数据维度下的维度数据。
服务器可以将拆分后的每个维度数据分别存储在服务器上。例如,可以对每个维度数据进行序列化,并将序列化后的维度数据存储在服务器上。如此,通过序列化存储维度数据,可以将维度数据分解为字节流,在后续调用维度数据时,可以通过反序列化直接读取存储的字节流并重构维度数据,在存储过程中,无需写入任何解释数据内容的信息,这提高了维度数据的存储和读取效率。
作为示例,服务器可以包括第一存储器和第二存储器,第一存储器可以是非持久化存储器,例如可以是内存缓存(Memory Cache),第二存储器可以是持久化存储器,例如可以是本地数据库,诸如使用LevelDB的kv数据库。
在此情况下,可以将序列化后的维度数据存储在第二存储器中,并对序列化后的维度数据进行压缩,将压缩的维度数据存储在第一存储器中。
这里,进一步地,可以将压缩的维度数据中的一部分维度数据存储在第一存储器中,这一部分维度数据可以是被调用频率较高的数据维度的数据,例如其调用频率可以大于或等于预设调用阈值,而压缩的维度数据中的其余数据可以存储在第二存储器中,其可以是调用频率较低的数据维度的数据,例如其调用频率可以小于预设调用阈值,当对这部分数据进行调用时,可以经由第一存储器从第二存储器中获取。如此,可以在保持对第一存储器的查询命中率较高的同时节约第一存储器中的存储空间。
以历史作业信息查询服务为例,可以仅将被调用频率较高的作业维度的数据存储在第一存储器中,而将任务维度和汇聚维度的数据存储在第二存储器中。在第一存储器中仅缓存作业维度数据的情况下,由于需要缓存的数据减少,缓存记录数提高,缓存命中率可从在缓存所有维度的维度数据情况下的50%提升到90%。
作为示例,如图3所示,在服务器包括第一存储器和第二存储器的情况下,在上面描述的步骤S12中,可以在第一存储器中查找与数据查询请求的数据维度对应的压缩的维度数据(步骤S121);若在第一存储器中未查找到与数据查询请求的数据维度对应的压缩的维度数据,则可以从分布式文件系统获取与数据查询请求对应的大对象数据(步骤S122)。
这里,在步骤S122中,以历史作业信息查询服务的应用场景为例,若在第一存储器中未查找到对应的维度数据,则可以向hs管理器(hsManager)请求与数据查询请求对应的大对象数据,管理器可以经由作业列表缓存(JobListCache)从分布式文件系统中查找大对象数据,并将查找到的大对象数据反馈到服务器。
在该示例中,第二存储器的容量可以大于第一存储器的容量,第一存储器可以作为一级缓存,第二存储器可以作为二级缓存。如此,一方面,第二存储器可以持久性存储拆分的维度数据,可以在后续查询中,向第一存储器提供已被拆分的维度数据,从而可以更快地响应数据查询请求来提供与数据查询请求的数据维度相应的维度数据,减少查询耗时,提高了查询效率;另一方面,第二存储器可以协调第一存储器与内存之间的速度,可以作为第一存储器与内存之间数据临时交换的空间。
作为示例,在历史作业信息查询服务的应用场景下,步骤S13可以包括:针对任务数据维度、作业数据维度、汇聚数据维度以及作业统计数据维度,将大对象数据拆分成任务数据(TaskMap)、作业数据(JobInfo)、汇聚数据(Counters)和作业统计数据(JobAnalysis),将任务数据、作业数据、汇聚数据和作业统计数据存储在第二存储器中。
具体来说,任务数据可以包含在任务数据维度下的信息,例如其可以包括mapTask信息列表、reduceTask信息列表和/或attempt信息。
作业数据可以包含在作业数据维度下的信息,例如其可以包含作业的诸如启动、停止、状态、map/reduce数量等的基本信息。
汇聚数据可以包含在汇聚数据维度下的信息,例如其可以包括总览(totalcounters)信息、根据mapTask信息获得的mapCounters信息、根据reduceTask信息获得的reduecCounters信息等。
作业统计数据可以包含在作业统计数据维度下的信息,其可以包括web端需要的统计信息,例如,其可以包括web端的summary页面信息、任务运行的基本指标展示等。作业统计数据可以从任务数据中获取,例如其可以基于mapTask信息列表或reduceTask信息列表进行循环现计算来获取。
值得注意的是,在本公开提出之前,在大对象数据中,由于一种或多种数据耦合在一起,使得当数据查询请求请求具有特定特征的数据时,需要从庞大而繁杂的大对象数据中遍历所有数据来提取所需数据。
以上面描述的历史作业信息查询服务的应用场景为例,一个完整的job历史信息包含耦合在一起的job维度和task维度的数据,每个job中包含多个task,例如,在一些大规模的数据计算中,一个job中可能存在100万个以上的task,对应的历史数据的大小可能超过30GB,在现有的查询方式中,每次查询一个完整的job历史信息需要获取job维度和task维度的所有数据,再从这些数据中提取相应的数据,这使得数据加载耗时很长,由于数据量较大,可能导致服务垃圾回收(GC),进而可能导致服务不可用等情况的发生。
对此,如本公开的上述示例性实施例所述,本公开采用按数据维度对大对象数据进行拆分并且将拆分后的维度数据存储到服务器的方式,这可以对从诸如HDFS等的数据存储中获取到的大对象数据进行分维度处理,针对所有预设的数据维度进行预计算,在后续接收到数据查询请求时,可以从拆分好的数据中直接提取对应的维度数据,并且可以从服务器直接提供给客户端。如此,可以最大限度地减少每次查询都需要遍历所有数据的计算浪费的情况,提高处理器和内存的工作效率,改善服务性能和稳定性。
返回参照图2,在步骤S14中,可以向客户端发送与数据查询请求对应的数据维度下的维度数据。
如上面所述,可以响应于客户端发送的数据查询请求,在服务器本地上查找与数据查询请求的数据维度对应的维度数据,在未查找到对应的维度数据时,可以获取对应的大对象数据(步骤S12)。这里,若在服务器本地上查找到与数据查询请求的数据维度对应的维度数据,则可以响应于数据查询请求将对应的维度数据发送至客户端。
在维度数据为序列化存储的数据的情况下,在步骤S14中,可以将与数据查询请求对应的数据维度下的序列化维度数据进行反序列化,向客户端发送反序列化的维度数据。这里,作为示例,可以通过GET语句对维度数据进行反序列化。
如上面提到的,在反序列化维度数据的过程中,可以直接读取存储的字节流并重构维度数据,读取速度较快,减少查询耗时。
作为示例,在服务器包括第一存储器和第二存储器的情况下,如图3所示,可以在第一存储器中查找对应的维度数据,若在第一存储器中查找到与数据查询请求的数据维度对应的压缩的维度数据,则可以执行步骤S141,具体来说,可以从第二存储器中解压所对应的压缩的维度数据,将解压后的维度数据反序列化,并向客户端发送反序列化后的维度数据。
此外,作为示例,根据本公开示例性实施例的数据处理方法还可以包括:根据预设的多个数据维度,设置分别与多个数据维度对应的多个数据查询接口。
在该步骤中,在接收客户端发送的数据查询请求时,为了快速识别数据查询请求的数据维度,提高数据查询请求的效率,可以设置与多个数据维度一一对应的数据查询接口,从而可以响应于来自不同数据查询接口的数据查询请求,提供与该接口对应的维度数据。
以历史作业信息查询服务的应用场景为例,数据查询接口可以包括任务数据查询接口(GetTaskCompletionEvents)、作业数据查询接口(GetJobReport)以及汇聚数据查询接口(GetCounters),其中,任务数据查询接口可以接收对任务数据维度的数据查询请求,作业数据查询接口可以接收对作业数据维度和作业统计数据维度的数据查询请求,汇聚数据查询接口可以接收对汇聚数据维度的数据查询请求。
上面描述了根据本公开的数据处理方法的示例性实施例,在该方法中,可以将大对象数据按照数据维度进行拆分,各个维度的数据预先计算好并存储在服务器上,后续每次查询时,通过在服务器上精确定位查询的数据维度,即可快速反馈相应的数据,而无需再遍历所有的大对象数据进行计算抽取,这在信息查询服务中非常有利于提高查询效率。
以历史作业信息查询服务为例,大多数查询请求需要的是作业的一些基本信息,即,需要作业维度数据,例如其占比可以达到80%以上,而少数查询请求需要的是任务维度和汇聚维度的信息,例如对汇聚维度的查询请求可能仅占比约5%,在这种情况下,当数据查询请求的数据维度为作业数据维度时,可以直接从存储在服务器上的拆分好的数据中提取并发送作业维度数据,这个过程不涉及任务维度和汇聚维度的数据,大大提高了数据查询速度。
例如,图4示出现有的数据查询和反馈方式的流程图。历史服务器(HistoryServer)可以提供作业历史服务(jobHistoryService)、客户服务(clientService)和aggLogDel服务(aggLogDelService),其中,客户服务可以通过作业历史服务查询数据(步骤S01),进而作业历史服务可以向缓存历史存储器(CachedHistoryStorage)查询该数据(步骤S02)。缓存历史存储器在缓存(cache)中查找相应数据(步骤S04),若未找到,则向hs管理器(hsManager)发送提取列表(步骤S03),hs管理器进一步向HDFS发送列表,由此,缓存可以穿透hs管理器(步骤S05)获取到大对象数据。
与上述现有的查询方式相比,对于作业数据和作业统计数据查询的响应,在现有的查询方式整体平均耗时为约2.62秒的情况下,根据本公开示例性实施例的方法的平均耗时为约374毫秒,其缩短至现有查询方式平均耗时的14%;对于汇聚数据查询的响应,在现有的查询方式平均耗时为约596毫秒的情况下,根据本公开示例性实施例的方法的平均耗时为约30毫秒,其缩短至现有查询方式平均耗时的5%;对于任务数据查询的响应,在现有的查询方式平均耗时为约316毫秒的情况下,根据本公开示例性实施例的方法的平均耗时为约104毫秒,其缩短至现有查询方式平均耗时的32%。
图5是根据一示例性实施例示出的一种数据处理装置的框图。参照图5,该装置包括查找单元100、获取单元200、拆分单元300以及发送单元400。
查找单元100被配置为接收客户端发送的数据查询请求。
获取单元200被配置为获取与数据查询请求对应的大对象数据。这里,大对象数据中包括耦合在一起的多个维度的数据。
拆分单元300被配置为按照预设的多个数据维度,将大对象数据拆分成每个数据维度下的维度数据,并将维度数据存储在服务器上。
发送单元400被配置为向客户端发送与数据查询请求对应的数据维度下的维度数据。
作为示例,拆分单元300还可以被配置为:将每个维度数据序列化,并将序列化后的维度数据存储在服务器上。
相应地,发送单元400还可以被配置为:将与数据查询请求对应的数据维度下的序列化维度数据进行反序列化,向客户端发送反序列化的维度数据。
作为示例,获取单元200还可以被配置为:基于数据查询请求,在服务器上查找与数据查询请求的数据维度对应的维度数据;若未查找到对应的维度数据,则执行获取与数据查询请求对应的大对象数据的步骤。
作为示例,服务器可以包括第一存储器和第二存储器。拆分单元300还可以被配置为:将序列化后的维度数据存储在第二存储器,并对序列化后的维度数据进行压缩,将压缩的维度数据存储在第一存储器。
作为示例,服务器可以与分布式文件系统通信连接。获取单元200还可以被配置为:若在第一存储器中未查找到与数据查询请求的数据维度对应的压缩的维度数据,则从分布式文件系统获取与数据查询请求对应的大对象数据。
作为示例,数据查询请求可以包括历史作业信息查询请求,预设数据维度可以包括任务数据维度、作业数据维度、汇聚数据维度以及作业统计数据维度。
拆分单元300还可以被配置为:针对任务数据维度、作业数据维度、汇聚数据维度以及作业统计数据维度,将大对象数据拆分成任务数据、作业数据、汇聚数据和作业统计数据,将任务数据、作业数据、汇聚数据和作业统计数据存储在第二存储器中。
作为示例,获取单元200还可以被配置为:若在第一存储器中查找到与数据查询请求的数据维度对应的压缩的维度数据,则从第二存储器中解压所对应的压缩的维度数据,将解压后的维度数据反序列化,并向客户端发送反序列化后的维度数据。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种服务器的框图。如图6所示,服务器10包括处理器101和用于存储处理器可执行指令的存储器102。这里,处理器可执行指令在被处理器运行时,促使处理器执行如上述示例性实施例所述的数据处理方法。
作为示例,服务器10可以是历史服务器或能够管理计算资源的任意类型的服务器。这里,服务器10并非必须是单个的设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。服务器10还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的服务器。
在服务器10中,处理器101可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器101还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器101可运行存储在存储器102中的指令或代码,其中,存储器102还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器102可与处理器101集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器102可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器102和处理器101可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器101能够读取存储在存储器102中的文件。
此外,服务器10还可以包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。服务器10的所有组件可经由总线和/或网络而彼此连接。
图7是根据一示例性实施例示出的一种数据处理系统的框图。如图7所示,数据处理系统1包括如上述示例性实施例所述的服务器10和分布式文件系统20。
服务器10可以与分布式文件系统20通信,例如可以通过I/O端口、网络连接等进行通信,使得服务器10能够读取存储在分布式文件系统20中的文件。
作为示例,分布式文件系统20可以是Hadoop分布式文件系统(HDFS),但是本公开的示例性实施例不限于此,分布式文件系统20也可以存储大对象数据的任意分布式文件存储系统。
在示例性实施例中,还可提供一种计算机可读存储介质,当计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如上述示例性实施例所述的数据处理方法。计算机可读存储介质例如可以是包括指令的存储器,可选地,计算机可读存储介质可以是:只读存储器(ROM)、随机存取存储器(RAM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-RLTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
在示例性实施例中,还可提供一种计算机程序产品,该计算机程序产品包括计算机指令,计算机指令被处理器执行时实现如上述示例性实施例所述的数据处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据处理方法,其特征在于,应用于服务器,所述数据处理方法包括:
接收客户端发送的数据查询请求;
获取与所述数据查询请求对应的大对象数据,其中,所述大对象数据中包括耦合在一起的多个维度的数据;
按照预设的多个数据维度,将所述大对象数据拆分成每个数据维度下的维度数据,并将所述维度数据存储在服务器上;
向所述客户端发送与所述数据查询请求对应的数据维度下的维度数据。
2.根据权利要求1所述的数据处理方法,其特征在于,将所述维度数据存储在服务器上的步骤包括:
将每个维度数据序列化,并将序列化后的维度数据存储在服务器上,
其中,向所述客户端发送与所述数据查询请求对应的数据维度下的维度数据的步骤包括:
将与所述数据查询请求对应的数据维度下的序列化维度数据进行反序列化,向所述客户端发送反序列化的维度数据。
3.根据权利要求2所述的数据处理方法,其特征在于,获取与所述数据查询请求对应的大对象数据的步骤包括:
基于所述数据查询请求,在服务器上查找与所述数据查询请求的数据维度对应的维度数据;
若未查找到对应的维度数据,则执行获取与所述数据查询请求对应的大对象数据的步骤。
4.根据权利要求2所述的数据处理方法,其特征在于,所述服务器包括第一存储器和第二存储器,其中,将序列化后的维度数据存储在服务器上的步骤包括:
将序列化后的维度数据存储在所述第二存储器,并对序列化后的维度数据进行压缩,将压缩的维度数据存储在所述第一存储器。
5.根据权利要求4所述的数据处理方法,其特征在于,所述服务器与分布式文件系统通信连接,其中,获取与所述数据查询请求对应的大对象数据的步骤包括:
若在所述第一存储器中未查找到与所述数据查询请求的数据维度对应的压缩的维度数据,则从所述分布式文件系统获取与所述数据查询请求对应的大对象数据。
6.一种数据处理装置,其特征在于,应用于服务器,所述数据处理装置包括:
查找单元,被配置为接收客户端发送的数据查询请求;
获取单元,被配置为获取与所述数据查询请求对应的大对象数据,其中,所述大对象数据中包括耦合在一起的多个维度的数据;
拆分单元,被配置为按照预设的多个数据维度,将所述大对象数据拆分成每个数据维度下的维度数据,并将所述维度数据存储在服务器上;
发送单元,被配置为向所述客户端发送与所述数据查询请求对应的数据维度下的维度数据。
7.一种服务器,所述服务器包括:
处理器;
用于存储所述处理器可执行指令的存储器,
其中,所述处理器可执行指令在被所述处理器运行时,促使所述处理器执行根据权利要求1至5中任一项所述的数据处理方法。
8.一种数据处理系统,其特征在于,所述数据处理系统包括分布式文件系统和根据权利要求7所述的服务器。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行根据权利要求1至5中任一项所述的数据处理方法。
10.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行时实现根据权利要求1至5中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111436154.1A CN114090513A (zh) | 2021-11-29 | 2021-11-29 | 数据处理方法、装置和系统及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111436154.1A CN114090513A (zh) | 2021-11-29 | 2021-11-29 | 数据处理方法、装置和系统及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090513A true CN114090513A (zh) | 2022-02-25 |
Family
ID=80305529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111436154.1A Pending CN114090513A (zh) | 2021-11-29 | 2021-11-29 | 数据处理方法、装置和系统及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090513A (zh) |
-
2021
- 2021-11-29 CN CN202111436154.1A patent/CN114090513A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11494339B2 (en) | Multi-level compression for storing data in a data store | |
CN107169083B (zh) | 公安卡口海量车辆数据存储与检索方法及装置、电子设备 | |
CN110046133B (zh) | 一种存储文件系统的元数据管理方法、装置及系统 | |
US8775479B2 (en) | Method and system for state maintenance of a large object | |
US20160140235A1 (en) | Real-time distributed in memory search architecture | |
US20120323923A1 (en) | Sorting Data in Limited Memory | |
US10649905B2 (en) | Method and apparatus for storing data | |
US11687595B2 (en) | System and method for searching backups | |
EP3937022B1 (en) | Method and apparatus of monitoring interface performance of distributed application, device and storage medium | |
US10685031B2 (en) | Dynamic hash partitioning for large-scale database management systems | |
CN108228709B (zh) | 数据存储方法和系统、电子设备、程序和介质 | |
CN113806300B (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
CN113051221A (zh) | 数据存储方法、装置、介质、设备及分布式文件系统 | |
US10762050B2 (en) | Distribution of global namespace to achieve performance and capacity linear scaling in cluster filesystems | |
US10929432B2 (en) | System and method for intelligent data-load balancing for backups | |
US20200334108A1 (en) | System and method for searchable backup data | |
CN114090513A (zh) | 数据处理方法、装置和系统及服务器 | |
US10067678B1 (en) | Probabilistic eviction of partial aggregation results from constrained results storage | |
US10360234B2 (en) | Recursive extractor framework for forensics and electronic discovery | |
US10762139B1 (en) | Method and system for managing a document search index | |
US11086901B2 (en) | Method and system for efficient data replication in big data environment | |
WO2022001629A1 (zh) | 一种数据库系统、管理事务的方法及装置 | |
US11507611B2 (en) | Personalizing unstructured data according to user permissions | |
US11321392B2 (en) | Light weight index for querying low-frequency data in a big data environment |
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 |