CN117667879A - 数据访问方法、装置、存储介质及电子设备 - Google Patents
数据访问方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117667879A CN117667879A CN202311695851.8A CN202311695851A CN117667879A CN 117667879 A CN117667879 A CN 117667879A CN 202311695851 A CN202311695851 A CN 202311695851A CN 117667879 A CN117667879 A CN 117667879A
- Authority
- CN
- China
- Prior art keywords
- target
- partition
- data
- path
- cached
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 161
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000005192 partition Methods 0.000 claims abstract description 289
- 238000000547 structure data Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 29
- 238000012432 intermediate storage Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000012986 modification Methods 0.000 claims description 13
- 230000004048 modification Effects 0.000 claims description 13
- 239000010410 layer Substances 0.000 description 87
- 238000007726 management method Methods 0.000 description 28
- 238000004590 computer program Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000007405 data analysis Methods 0.000 description 9
- 230000003139 buffering effect Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011229 interlayer Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010205 computational analysis Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据访问方法、装置、存储介质及电子设备,其中,该方法包括:接收目标任务,目标任务携带有目标表数据指示信息,目标表数据指示信息用于指示目标任务所需访问的目标表数据;基于目标表数据指示信息,确定目标元数据集,目标元数据集支持包括目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中;基于目标元数据集,确定目标任务对应的至少一个目标访问路径,至少一个目标访问路径包括M个缓存路径和N个底层存储路径,M和N均为非负整数;基于至少一个目标访问路径,访问目标表数据,以实现目标任务的数据访问。本发明实施例可破除IO访问瓶颈,从而有效提高访问效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据访问方法、装置、存储介质及电子设备。
背景技术
目前,大数据分析计算已被广泛应用,在大数据分析计算场景中,各种大数据引擎需访问底层存储***,以实现任务的数据访问。但相关技术通常以分布式对象***搭建底层存储***,从而通过底层存储***进行数据访问,其中,底层存储***的数据访问存在IO(Input/Output,输入/输出)访问瓶颈等问题,导致访问效率较低。基于此,如何破除IO访问瓶颈,以提高访问效率目前尚未提出较好的解决方案。
发明内容
有鉴于此,本发明实施例提供了一种数据访问方法、装置、存储介质及电子设备,以解决相关技术通过底层存储***进行数据访问,而底层存储***存在IO访问瓶颈等问题,导致访问效率较低的问题;也就是说,本发明实施例可破除IO访问瓶颈,即可破除峰值访问带来的IO访问瓶颈,从而有效提高访问效率,即可有效提高大数据分析计算的数据访问效率。
根据本发明的一方面,提供了一种数据访问方法,所述方法包括:
接收目标任务,所述目标任务携带有目标表数据指示信息,所述目标表数据指示信息用于指示所述目标任务所需访问的目标表数据;
基于所述目标表数据指示信息,确定目标元数据集,所述目标元数据集支持包括所述目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中;
基于所述目标元数据集,确定所述目标任务对应的至少一个目标访问路径,所述至少一个目标访问路径包括M个缓存路径和N个底层存储路径,M和N均为非负整数;
基于所述至少一个目标访问路径,访问所述目标表数据,以实现所述目标任务的数据访问。
根据本发明的另一方面,提供了一种数据访问装置,所述装置包括:
接收单元,用于接收目标任务,所述目标任务携带有目标表数据指示信息,所述目标表数据指示信息用于指示所述目标任务所需访问的目标表数据;
处理单元,用于基于所述目标表数据指示信息,确定目标元数据集,所述目标元数据集支持包括所述目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中;
所述处理单元,还用于基于所述目标元数据集,确定所述目标任务对应的至少一个目标访问路径,所述至少一个目标访问路径包括M个缓存路径和N个底层存储路径,M和N均为非负整数;
所述处理单元,还用于基于所述至少一个目标访问路径,访问所述目标表数据,以实现所述目标任务的数据访问。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括处理器、以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述所提及的方法。
根据本发明的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行上述所提及的方法。
本发明实施例可在接收目标任务后,基于目标任务携带的目标表数据指示信息,确定目标元数据集,目标表数据指示信息用于指示目标任务所需访问的目标表数据,目标元数据集支持包括目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中,在此种情况下,可从存算中间层***中访问缓存数据。然后,可基于目标元数据集,确定目标任务对应的至少一个目标访问路径,至少一个目标访问路径包括M个缓存路径和N个底层存储路径;并基于至少一个目标访问路径,访问所述目标表数据,以实现目标任务的数据访问。可见,本发明实施例可通过存算中间层***,破除IO访问瓶颈,即可破除峰值访问带来的IO访问瓶颈,从而有效提高访问效率,即可有效提高大数据分析计算的数据访问效率。
附图说明
在下面结合附图对于示例性实施例的描述中,本发明的更多细节、特征和优点被公开,在附图中:
图1示出了根据本发明示例性实施例的一种数据访问方法的流程示意图;
图2示出了根据本发明示例性实施例的一种数据访问***的示意图;
图3示出了根据本发明示例性实施例的另一种数据访问方法的流程示意图;
图4示出了根据本发明示例性实施例的一种表结构的示意图;
图5a示出了根据本发明示例性实施例的一种数据缓存请求的示意图;
图5b示出了根据本发明示例性实施例的一种数据缓存移除请求的示意图;
图6示出了根据本发明示例性实施例的一种文件***实现类的示意图;
图7示出了根据本发明示例性实施例的一种数据访问装置的示意性框图;
图8示出了能够用于实现本发明的实施例的示例性电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
在本发明实施例中,涉及一种数据访问***(也可以称为大数据分析计算***),该数据访问***可以包括但不限于:资源管理***(也可称为业务***或管理***)、元数据***、存算中间层***、底层存储***以及任务提交平台,等等;本发明实施例对此不作限定。其中,资源管理***、元数据***等均可以包括一个或多个电子设备,也就是说,资源管理***、元数据***等均可以由一个或多个电子设备构成;可选的,资源管理***和元数据***可以由相同的电子设备组成,也就是说,资源管理***和元数据***可以为相同电子设备中的不同模块;或者,资源管理***和元数据***也可以为不同的电子设备,即可由不同的电子设备构成,等等;本发明实施例对此不作限定。
可选的,上述资源管理***可以为Yarn(Yet Another Resource Negotiator,一种资源管理器)集群。可选的,存算中间层***可以是一个开源的分布式存储***Alluxio,旨在加速大数据分析工作负载,存算中间层***提供了一个统一的命名空间和缓存层,使数据存储在分布式存储***和计算框架之间更高效地共享和访问。
其中,电子设备可以是终端或者服务器;此处所提及的终端可以包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机、智能手表、智能语音交互设备、智能家电,等等。此处所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算(cloud computing)、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。
基于上述描述,本发明实施例提出一种数据访问方法,该数据访问方法可以由上述所提及的一个或多个电子设备执行;具体的,可由构成资源管理***的电子设备执行,即可由资源管理***执行;为了便于阐述,后续均以电子设备执行数据访问方法为例进行说明;如图1所示,该数据访问方法可包括以下步骤S101-S104:
S101,接收目标任务,目标任务携带有目标表数据指示信息,目标表数据指示信息用于指示目标任务所需访问的目标表数据。
其中,目标任务的数量可以为一个或多个,本发明实施例对此不作限定;为了便于阐述,后续均以一个目标任务为例进行说明。可选的,目标任务可以为接收到的任一任务。
可选的,目标任务可以为Hadoop(一种分布式***基础架构)任务、也可以为Spark(一种专为大规模数据处理而设计的快速通用的计算引擎)任务、也可以为Hive(一种数据仓库工具)任务、还可以为Presto(一种分布式查询引擎)任务等,如图2所示;本发明实施例对此不作限定。其中,图2中所示的存储虚拟接入层(DGS)是自研的一种分布式存储和对象存储服务的虚拟接入层,它可以为用户提供高可用性、高可扩展性和低成本的云存储解决方案;采用了一种简单的模型,即“对象存储”,将数据以对象的形式存储在分布式服务器集群中,提供了多层安全措施,包括身份验证、访问控制、数据加密等,可以保护数据的机密性和完整性。
在本发明实施例中,目标表数据指示信息可以包括但不限于:目标表标识、至少一个分区标识以及目标数据范围指示信息,等等;本发明实施例对此不作限定。可选的,目标表标识可用于指示目标表;可选的,一个表标识可以为表名,也可以是表编号(如表ID(身份标识号))等,本发明实施例对此不作限定。可选的,目标表可以是存储的任一表。
其中,一个分区标识可以用于指示相应分区,一个分区标识可以为相应分区的分区名,也可以为相应分区的编号等,本发明实施例对此不作限定。可选的,目标数据范围指示信息可用于指示目标任务所需访问的数据范围,如第3条数据至第100条数据,或8点至10点内的数据,等等;本发明实施例对此不作限定。
示例性的,假设目标表数据指示信息包括目标表标识、分区标识1(用于指示分区1)以及分区标识2(用于指示分区2),那么电子设备可确定目标表数据指示信息所指示的目标表数据可包括目标表在分区1中的数据和目标表在分区2中的数据;或者,假设目标表数据指示信息包括目标表标识和目标数据范围指示信息,且假设目标数据范围指示信息为2023年11月23日8点-2023年11月23日10点,则可确定目标表数据可包括目标表在2023年11月23日8点-2023年11月23日10点内的数据,等等。
应当理解的是,若目标表数据指示信息包括目标表标识和目标数据范围指示信息,那么电子设备可基于目标表标识和目标数据范围指示信息,确定目标表数据所在的分区,即可确定访问目标表数据所需的分区。
S102,基于目标表数据指示信息,确定目标元数据集,目标元数据集支持包括目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中。
可选的,电子设备可基于目标表数据指示信息中的目标表标识,确定目标元数据集,在此种情况下,目标元数据集可包括目标表的表结构数据中的所有元数据的属性参数;或者,可基于目标表标识和目标表数据所在分区,确定目标元数据集,在此种情况下,目标元数据集可包括目标表的表结构数据中,目标表数据所在分区包括的各个分区的属性参数,等等;本发明实施例对此不作限定。
可选的,已缓存标识可以为文字表示(如已缓存),也可以是字符标识(如True)等,本发明实施例对此不作限定。
在本发明实施例中,存算中间层***可包括至少一个中间层磁盘,以进行数据缓存;其中,存算中间层***可用于缓存底层存储***包括的至少一个分区中各个分区内的数据,以通过存算中间层***的数据缓存提高访问效率;其中,底层存储***可包括至少一个底层磁盘。可选的,一个底层磁盘可以为一个固态硬盘(Solid State Drive,SSD);相应的,一个中间层磁盘可以为Nvme(Non-Volatile Memory express,非易失性存储器快速通道)SSD,Nvme SSD可用于提供更快的数据传输速度和更低的延迟,也就是说,可用于提供更快的读写速度。
S103,基于目标元数据集,确定目标任务对应的至少一个目标访问路径,至少一个目标访问路径包括M个缓存路径和N个底层存储路径,M和N均为非负整数。
需要说明的是,一个目标访问路径与目标表数据所在分区中的一个分区相对应,也就是说,目标表数据所在分区中的分区数量与至少一个目标访问路径中目标访问路径的数量相同。
在本发明实施例中,电子设备可基于目标元数据集中是否包括目标表数据所在分区中各个分区的已缓存标识,确定目标任务对应的至少一个目标访问路径,也就是说,可确定目标表数据所在分区中各个分区对应的目标访问路径,从而确定至少一个目标访问路径。
S104,基于至少一个目标访问路径,访问目标表数据,以实现目标任务的数据访问。
在本发明实施例中,针对至少一个目标访问路径中的任一目标访问路径,电子设备可采用任一目标访问路径,访问目标表数据在任一目标访问路径所指示分区中的数据。
本发明实施例可在接收目标任务后,基于目标任务携带的目标表数据指示信息,确定目标元数据集,目标表数据指示信息用于指示目标任务所需访问的目标表数据,目标元数据集支持包括目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中,在此种情况下,可从存算中间层***中访问缓存数据。然后,可基于目标元数据集,确定目标任务对应的至少一个目标访问路径,至少一个目标访问路径包括M个缓存路径和N个底层存储路径;并基于至少一个目标访问路径,访问所述目标表数据,以实现目标任务的数据访问。可见,本发明实施例可通过存算中间层***,破除IO访问瓶颈,即可破除峰值访问带来的IO访问瓶颈,从而有效提高访问效率,即可有效提高大数据分析计算的数据访问效率。
基于上述描述,本发明实施例还提出另一种数据访问方法;相应的,数据访问方法可以由上述所提及的一个或多个电子设备执行;具体的,可由构成资源管理***的电子设备执行,即可由资源管理***执行;为了便于阐述,后续均以电子设备执行数据访问方法为例进行说明;请参见图3,该数据访问方法可包括以下步骤S301-S307:
S301,在检测到针对待缓存表下的待缓存分区的数据缓存请求时,关闭待缓存分区的底层存储路径的写入权限,数据缓存请求携带有待缓存指示信息,待缓存指示信息用于指示待缓存表下的待缓存分区。
在本发明实施例中,一个路径(如存储路径或访问路径)可包括相应表的表路径和相应分区的分区路径,也就是说,一个表的表路径和相应表所在的一个分区的分区路径可组成一个路径,从而可基于该路径进行数据存储或数据访问。
可选的,电子设备可显示管理界面,那么用户(如管理员)可在管理界面中执行数据缓存操作,从而向电子设备(即资源管理***)发送数据缓存请求,且用户可通过管理界面设置待缓存指示信息,并对待缓存指示信息执行数据缓存操作,以使数据缓存请求可携带有待缓存指示信息,在此种情况下,电子设备可检测到针对待缓存表下的待缓存分区的数据缓存请求。
可选的,用户可在管理界面输入待缓存指示信息,也可以在待缓存指示信息选择区域中选择待缓存指示信息等,以实现对待缓存指示信息的设置;本发明实施例对此不作限定。可选的,上述数据缓存操作可以是针对缓存按钮的点击操作或长按操作,也可以是针对管理界面中空白区域的连续点击操作等,以实现对设置的待缓存指示信息的数据缓存操作;本发明实施例对此不作限定。
可选的,待缓存指示信息可以包括待缓存表的表标识和待缓存分区的分区标识,也可以包括待缓存底层存储路径等,本发明实施例对此不作限定;其中,待缓存底层存储路径为待缓存表所在的待缓存分区的底层存储路径,也就是说,待缓存底层存储路径可用于指示待缓存表和待缓存分区等,从而使电子设备检测到针对待缓存表下的待缓存分区的数据缓存请求。应当理解的是,当待缓存指示信息包括待缓存表的表标识和待缓存分区的分区标识时,可基于待缓存指示信息,确定待缓存底层存储路径,待缓存底层存储路径可以指的是待缓存表下的待缓存分区在底层存储***中的路径。
可选的,电子设备还可每隔预设底层检测时长,确定底层存储***中未进行数据缓存的至少一个未缓存分区中各个未缓存分区的访问频率,针对至少一个未缓存分区中的任一未缓存分区,若任一未缓存分区的访问频率大于预设未缓存访问频率阈值,则确定检测到针对待缓存表下的待缓存分区的数据缓存请求。在此种情况下,待缓存表可以指的是任一未缓存分区所对应的表,待缓存分区可以指的是任一未缓存分区。可选的,预设底层检测时长和预设未缓存访问频率阈值可以是按照经验设置的,也可以是按照实际需求设置的,本发明实施例对此不作限定。
在本发明实施例中,电子设备可关闭第三方对底层存储待缓存分区的底层存储路径的写入权限,也就是说,可将底层存储待缓存分区的底层存储路径的第三方写权限关闭。其中,第三方可以指的是所需写入数据的任一设备。换句话说,在缓存待缓存分区中的数据时,可关闭对待缓存分区的写入权限,从而可保证存算中间层***中缓存的各个分区中的数据,与相应分区在底层存储***中的数据一致,并可避免同时写入和缓存时导致的数据混乱问题。
S302,基于待缓存分区的底层存储路径,向存算中间层***发送目录挂载指令,以使存算中间层***挂载待缓存分区对应的缓存路径目录,缓存路径目录用于缓存待缓存分区中的数据。
其中,缓存路径目录可以是以空目录的形式挂载的,并可在挂载缓存路径目录后,将待缓存分区中的数据缓存至缓存路径目录中;也就是说,可使存算中间层***挂载一个空目录,并将挂载的空目录作为缓存路径目录。
在本发明实施例中,一个缓存路径(即用于指示存算中间层***中一个目录的路径)可与一个底层存储路径相对应;具体的,一个缓存路径的前缀部分与相应底层存储路径的前缀部分不同,且一个缓存路径中除前缀部分以外的路径与相应底层存储路径中除前缀部分以外的路径相同。基于此,存算中间层***可基于待缓存分区的底层存储路径中除前缀部分以外的路径,确定待缓存分区的缓存路径中除前缀部分以外的路径,从而确定待缓存分区的缓存路径,以按照待缓存分区的缓存路径挂载缓存路径目录。
可选的,目录挂载指令可携带待缓存分区的底层存储路径,也可仅携带待缓存分区的底层存储路径中除前缀部分以外的路径,本发明实施例对此不作限定。示例性的,假设一个底层存储路径为dgs://cluster/department/team/biz/db/table/partition,那么该底层存储路径对应的缓存路径可以为dgs://alluxiomnt/cluster/department/team/biz/db/table/partition;其中,该底层存储路径的前缀部分可以为dgs://,该缓存路径的前缀部分可以为dgs://alluxiomnt/,或者,该底层存储路径的前缀部分可以为dgs:/,该缓存路径的前缀部分可以为dgs://alluxiomnt,等等。
S303,向待缓存表的表结构数据包括的待缓存分区的属性参数表中,写入是否缓存参数和是否缓存参数的参数值,以使待缓存分区的属性参数表包括的是否缓存参数的参数值为已缓存标识。
其中,一个分区的已缓存标识可以是通过相应分区的属性参数表中的是否缓存参数(也可表示为IS_ALLUXIO_LOCATION)的参数值设置的,且一个元数据集可以是基于相应表的表结构数据确定的,也就是说,一个表的表结构数据可用于确定相应表的元数据集,且一个表结构数据可以是以表结构的形式表示的。
在本发明实施例中,可利用分区的属性参数表的key-value(关键字-值)属性关系,设计一个新的分区属性,即可在分区的属性参数表中新增是否缓存参数;也就是说,可将是否缓存参数作为key,以表示是否缓存路径(即是否缓存相应分区中的数据);并且,可将已缓存标识(如True)作为value表示确定已缓存。应当理解的是,当待缓存分区中的数据均缓存至存算中间层***中的缓存路径目录后,可在待缓存分区的属性参数表中添加是否缓存参数和已缓存标识。
示例性的,如图4所示,以表TBLS、分区PARTITIONS、存储描述SDS、分区属性PARTITION_PARAMS等元数据的表结构为例进行说明,表TBLS可包括TBL_ID(表ID)和SD_ID(存储描述的ID),存储描述SDS可包括SD_ID和LOCATION(底层存储路径),分区PARTITIONS可包括PART_ID(分区ID,即分区标识)、SD_ID以及TBL_ID,分区属性(即分区的属性参数表)PARTITION_PARAMS可包括PART_ID、PARAM_KEY(参数关键字)以及PARAM_VALUE(参数值),在此种情况下,可通过分区属性PARTITION_PARAMS中的PARAM_KEY新增是否缓存参数,并通过相应PARAM_VALUE新增是否缓存参数的参数值。其中,各个ID的数据类型可以为BIGINT(一个***数据类型),路径和参数等数据的数据类型可以为VARCHAR(字符数据),等等。
可选的,一个表结构数据可以是存储在元数据***中的,元数据***可以是位于资源管理***中的***,也可以是位于资源管理***以外的***,本发明实施例对此不作限定;也就是说,同一电子设备可包括资源管理***和元数据***,或者,资源管理***和元数据***可以位于不同的电子设备中,即可以由不同电子设备构成,本发明实施例对此不作限定。基于此,电子设备可在元数据***读取分区属性时,将新加入的是否缓存参数和是否缓存参数的参数值一起读出来,从而可判断当前分区是否可以直接读取缓存,还是需读取底层存储。
进一步的,一个元数据集还支持包括相应表的请求流量指标,且一个表的请求流量指标可以是通过相应表的属性参数表中的请求流量到缓存路径参数(也可表示为TO_ALLUXIO_PERCENT)的参数值设置的;其中,一个请求流量指标用于指示请求相应表路由到存算中间层***的概率。基于此,电子设备可向待缓存表的表结构数据包括的待缓存表的属性参数表中,写入请求流量到缓存路径参数和请求流量到缓存路径参数的参数值,以使待缓存表的表结构数据包括的请求流量到缓存路径参数的参数值为预设请求流量指标。可选的,预设请求流量指标可以是按照经验设置的,也可以是按照实际需求设置的,本发明实施例对此不作限定;优选的,预设请求流量指标可以为100%或100等。应当理解的是,若一个请求流量指标不是百分数(如100)时,可对该请求流量指标进行百分数转换,以得到转换后的请求流量指标。
示例性的,如图4所示,以表TBLS和表的属性参数表TABLE_PARAMS等元数据的表结构为例进行说明,属性参数表TABLE_PARAMS可包括TBL_ID、PARAM_KEY以及PARAM_VALUE,在此种情况下,可通过属性参数表TABLE_PARAMS中PARAM_KEY新增请求流量到缓存路径参数,并通过相应PARAM_VALUE新增请求流量到缓存路径参数的参数值。可选的,请求流量到缓存路径参数的参数值可以为0、50或者100等;或者,请求流量到缓存路径参数的参数值也可以为0%、50%或100%等;或者,请求流量到缓存路径参数的参数值还可以为0、0.5或1等,从而表示相应的请求流量指标为0%、50%或100%等,本发明实施例对此不作限定。
基于此,在元数据***读取表的属性参数表时,可将新添加的请求流量到缓存路径参数和请求流量到缓存路径参数的参数值一起读出来,即可判断当前请求表的流量有百分之多少路由到存算中间层***,剩余的流量路由到底层存储***。
在一种实施方式中,在检测到针对待更新表的表结构数据中请求流量到缓存路径参数的参数值修改指令时,电子设备可采用参数值修改指令所指示的参数值,更新请求流量到缓存路径参数在待更新表的表结构数据中的参数值。其中,用户可通过管理界面执行针对待更新表的表结构数据中请求流量到缓存路径参数的参数值修改操作,从而使电子设备检测到针对待更新表的表结构数据中请求流量到缓存路径参数的参数值修改指令。可选的,待更新表可以是在存算中间层***中缓存有数据的任一表,也可以是在存算中间层***中缓存有数据的所有表,等等;本发明实施例对此不作限定。
可选的,当待更新表是在存算中间层***中缓存有数据的任一表时,用户可选中待更新表的表标识,并设置所需修改的参数值,以对修改确认按钮执行点击操作或长按操作等,以实现参数值修改操作;或者,当待更新表是在存算中间层***中缓存有数据的所有表时,用户设置所需修改的参数值,以对修改确认按钮执行点击操作或长按操作等,以实现针对在存算中间层***中缓存有数据的所有表的参数值修改操作,等等;本发明实施例对此不作限定。
示例性的,当存算中间层***指标正常,表现良好时,请求流量到缓存路径参数的参数值可以设置为100,将所有已缓存数据的访问流量都路由至存算中间层;当存算中间层***发生局部节点故障,***负载能力下降时,可以设置为一个合适的值(如50或60等),从而将部分流量路由至底层存储***,降低对存算中间层***的访问负载;当存算中间层***发生***性故障,无法提供服务时,可设置为0,此时所有流量全部降级至底层存储***,可保证全局***的高稳定性,即可保证数据访问***的高稳定性。
可选的,存算中间层***指标可以包括但不限于:CPU(Central ProcessingUnit,中央处理器)使用量、内存使用量、IO吞吐量、网络使用率、存算中间层***局部节点故障数量、路由到存算中间层***上的失败率以及路由到存算中间层***的速率,等等;本发明实施例对此不作限定。
另一种实施方式中,确定存算中间层***指标,并基于存算中间层***指标,更新请求流量到缓存路径参数在待更新表的表结构数据中的参数值。
在一种具体的实现中,若存算中间层***指标包括CPU使用量、内存使用量、IO吞吐量以及网络使用率等负向指标,则对存算中间层***指标中各个负向指标进行加权求和,得到加权求和结果;若加权求和结果大于负向指标阈值,则生成一个小于当前参数值的随机数,并采用生成的随机数更新请求流量到缓存路径参数在待更新表的表结构数据中的参数值,或按照预设减小步长,更新请求流量到缓存路径参数在待更新表的表结构数据中的参数值,直至当前存算中间层***指标中各个负向指标之间的加权求和结果小于或等于负向指标阈值。可选的,负向指标阈值、各个负向指标的权重以及预设减小步长均可以是按照经验设置的,也可以是按照实际需求设置的,本发明实施例对此不作限定。在此种情况下,当加权求和结果大于负向指标阈值时,可确定存算中间层***指标异常,即可确定检测到针对待更新表的表结构数据中请求流量到缓存路径参数的参数值修改指令。其中,一个负向指标可以指的是数值越大所反映的***性能越差的指标。
另一种具体的实现中,若存算中间层***指标包括存算中间层***局部节点故障数量,则可基于存算中间层***局部节点故障数量和存算中间层***节点总量,计算待更新参数值,并采用待更新参数值更新请求流量到缓存路径参数在待更新表的表结构数据中的参数值。示例性的,假设存算中间层***包括3个节点,且其中1个节点故障时,待更新参数值可以为2/3,等等。
举例来说,如图5a所示,以表结构数据存储在元数据***为例进行说明,在接收到数据缓存请求时,可关闭相应底层存储路径的写入权限,挂载一个空目录(即缓存路径目录)以缓存数据,并向元数据***中写入元数据信息(即上述是否缓存参数和是否缓存参数的参数值,和/或,请求流量到缓存路径参数和请求流量到缓存路径参数的参数值)。
进一步的,由于一个分区的已缓存标识可以是通过相应分区的属性参数表中的是否缓存参数的参数值设置的,且一个元数据集可以是基于相应表的表结构数据确定的;一个元数据集还可支持包括相应表的请求流量指标,且一个表的请求流量指标可以是通过相应表的属性参数表中的请求流量到缓存路径参数的参数值设置的,那么在检测到数据缓存移除请求时,电子设备可确定数据缓存移除请求所指示的表分区路径;从表分区路径对应表的表结构数据中,删除表分区路径所指示分区的属性参数表中的是否缓存参数和是否缓存参数的参数值,和/或,删除请求流量到缓存路径参数和请求流量到缓存路径参数的参数值。并且,可基于表分区路径,向存算中间层***发送取消目录挂载指令,以使存算中间层***删除缓存目录中的缓存数据,并取消表分区路径对应缓存目录的挂载,如图5b所示。可选的,数据缓存移除请求可携带有表分区路径;或者,数据缓存移除请求可携带有待移除表的表标识和待移除表下的待移除分区的分区标识,从而可通过待移除表的表标识和待移除分区的分区标识确定数据缓存移除请求所指示的表分区路径,等等;本发明实施例对此不作限定。可选的,表分区路径可以是一个缓存路径,也可以是相应缓存路径对应的底层存储路径等,本发明实施例对此不作限定。可选的,取消目录挂载指令可以携带有表分区路径。其中,删除参数和参数值的过程也可称为移除元数据信息的过程。
可选的,用户可在管理界面执行数据缓存移除操作,在此种情况下,电子设备可检测到数据缓存移除请求;或者,可每隔预设间隔时长,获取存算中间层***中各个缓存路径所指示目录的访问频率,针对存算中间层***中的任一缓存路径,若任一缓存路径所指示目录的访问频率小于预设访问频率阈值,则可确定检测到数据缓存移除请求,此时数据缓存移除请求所指示的表分区路径可以为任一缓存路径或任一缓存路径对应的底层存储路径,也就是说,此时可确定检测到针对任一缓存路径的数据缓存移除请求,等等;本发明实施例对此不作限定。可选的,预设间隔时长和预设访问频率阈值均可以是按照经验设置的,也可以是按照实际需求设置的,本发明实施例对此不作限定。
可选的,电子设备也可不删除是否缓存参数和是否缓存参数的参数值,而将是否缓存参数的参数值修改为未缓存标识(如未缓存或False等);和/或,也可不删除请求流量到缓存路径参数和请求流量到缓存路径参数的参数值,而将请求流量到缓存路径参数的参数值设置为0。
进一步的,在接收到数据缓存移除请求时,电子设备还可打开表分区路径在底层存储***的写入权限,即可打开第三方对底层存储***中表分区路所指示分区的写入权限,从而打开第三方写入的权限。换句话说,可将底层存储表分区路径的写权限恢复,即可将底层存储表分区路径的第三方写权限恢复。
在本发明实施例中,由于资源管理***可以包括一个或多个电子设备,则执行步骤S301-S303的电子设备与执行下述步骤S304-S307的电子设备可以相同,也可以不同,本发明实施例对此不作限定。在其他实施例中,步骤S301-S303也可以是除资源管理***以外的管理***执行的,也就是说,执行步骤S301-S303的电子设备与执行下述步骤S304-S307的电子设备可以不同,本发明对此不作限定。
需要说明的是,存算中间层***可以是分布式的,可以承载较大规模的缓存数据,但存算中间层***的存储也是有成本的,不能无限扩展。因此,需要根据业务的需求进行评估,以评估预设时长内IO峰值访问的数据大小,从而基于IO峰值访问的数据大小确定节点(即电子设备)数量。并且,数据的生产以及使用都是周期性的,随着时间的推移,旧数据不再被使用,将用新数据进行计算分析。因此为了保持节点规模不会因此一直膨胀,需要有机制定期的将每天新生产的数据加入到存算中间层***,同时将历史不再使用的旧数据移出存算中间层***。可选的,预设时长可以是按照经验设置的,也可以是按照实际需求设置的,本发明实施例对此不作限定。
可见,本发明实施例可实现大数据访问时,提供峰值热点数据的缓存服务、热点表数据的缓存载入,以及缓存数据的生命周期淘汰等能力。
S304,接收目标任务,目标任务携带有目标表数据指示信息,目标表数据指示信息用于指示目标任务所需访问的目标表数据。
S305,基于目标表数据指示信息,确定目标元数据集,目标元数据集支持包括目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中。
S306,基于目标元数据集,确定目标任务对应的至少一个目标访问路径,至少一个目标访问路径包括M个缓存路径和N个底层存储路径,M和N均为非负整数。
其中,目标表数据所在分区的数量为一个或多个,至少一个目标访问路径中目标访问路径的数量与目标表数据所在分区的数量相同,也就是说,目标表数据所在的一个分区对应一个目标访问路径。
具体的,针对目标表数据所在分区中的任一分区,电子设备可从目标元数据集中确定出任一分区对应的底层存储路径;并判断目标元数据集是否包括任一分区的已缓存标识。若目标元数据集包括任一分区的已缓存标识,则基于任一分区对应的底层存储路径,确定任一分区对应的目标访问路径;若目标元数据集未包括任一分区的已缓存标识,则将任一分区对应的底层存储路径,作为任一分区对应的目标访问路径,以使至少一个目标访问路径包括任一分区对应的底层存储路径。
进一步的,目标元数据集还支持包括目标表数据对应的目标请求流量指标,目标请求流量指标用于指示请求目标表数据路由到存算中间层***的概率,也就是说,目标请求流量指标可用于指示目标表数据对应的目标表路由到存算中间层***的概率。基于此,电子设备可基于目标元数据集中的目标请求流量指标和任一分区对应的底层存储路径,确定任一分区对应的目标访问路径。
在一种实施方式中,若目标元数据集未包括目标请求流量指标,或目标请求流量指标大于或等于第一指标阈值,则可基于任一分区对应的底层存储路径,确定任一分区对应的缓存路径,并将任一分区对应的缓存路径作为任一分区对应的目标访问路径。可选的,第一指标阈值可以是按照经验设置的,也可以是按照实际需求设置的,本发明实施例对此不作限定;如第一指标阈值可以为100%或90%等;优选的,第一指标阈值可以为100%。
另一种实施方式中,若目标请求流量指标小于第一指标阈值,且目标请求流量指标大于第二指标阈值,则基于目标请求流量指标,确定访问位置;若访问位置为存算中间层***,则基于任一分区对应的底层存储路径,确定任一分区对应的缓存路径,并将任一分区对应的缓存路径作为任一分区对应的目标访问路径;若访问位置为底层存储***,则将任一分区对应的底层存储路径作为任一分区对应的目标访问路径。可选的,第二指标阈值可以是按照经验设置的,也可以是按照实际需求设置的,本发明实施例对此不作限定;如第二指标阈值可以为0或10%等;优选的,第二指标阈值可以为0。应当理解的是,第一指标阈值大于第二指标阈值。
可选的,在基于目标请求流量指标,确定访问位置时,可在0和1之间随机生成一个小数,若随机生成的数小于或等于目标请求流量指标,则可确定访问位置为存算中间层***,若随机生成的数大于目标请求流量指标,则可确定访问位置为底层存储***;或者,可从访问位置指示信息集中随机选取一个访问位置指示信息,若选取出的访问位置指示信息用于指示存算中间层***,则可确定访问位置为存算中间层***,若选取出的访问位置指示信息用于指示底层存储***,则可确定访问位置为底层存储***,其中,访问位置指示信息集中用于指示存算中间层***的访问位置指示信息的数量,与访问位置指示信息集中所有访问位置指示信息的数量之间的比值,等于目标请求流量指标,等等;本发明实施例对此不作限定。
又一种实施方式中,若目标请求流量指标小于或等于第二指标阈值,则将任一分区对应的底层存储路径作为任一分区对应的目标访问路径。
在其他实施例中,任一分区对应的目标访问路径的确定也可以是元数据***确定的,在此种情况下,可获取元数据***返回的任一分区对应的目标访问路径,本发明对此不作限定。
可见,本发明实施例设计有服务降级功能,可通过新增请求流量到缓存路径参数和请求流量到缓存路径参数的参数值,保证在存算中间层***异常时,路由到存算中间层***的业务请求,将降级请求到底层存储***,从而保障稳定性,可使任务执行不受影响。另外,本发明实施例自动兼容了从存算中间层***中访问数据和从底层存储***中访问数据这两种情景,在此种情况下,依然保持了原始的流量流程,没有延长流程和流量放大,因此可以保障原生的性能;同时,本发明实施例可对存算中间层***和资源管理***进行混合部署,从而可通过缓存层与计算层的混合部署,提高计算节点和缓存节点的亲和性,以减小访问距离,进而提升性能,如提升30%的性能。
S307,基于至少一个目标访问路径,访问目标表数据,以实现目标任务的数据访问。
在本发明实施例中,目标表数据可以是通过文件***实现类(也可以表示为Filesystem)访问的,文件***实现类可以是通过底层文件***实现类(也可以表示为BosFilesystem)和缓存文件***实现类(也可以表示为AlluxioFilesystem);可选的,文件***实现类可以包括底层文件***实现类和缓存文件***实现类,或者,可通过文件***实现类分别调用底层文件***实现类和缓存文件***实现类,等等。需要说明的是,本发明实施例可新增缓存文件***实现类的4个方法,如initalize()以完成缓存文件***的初始化,open()以完成缓存文件的打开并返回读取文件流,liststatus()以查询状态列表(如数据大小或路径等),getfilestatus()以获取缓存文件的状态(如整个缓存文件的大小等),如图6所示。相应的,底层文件***实现类也可包括上述4个方法。基于此,本发明实施例已经具备了底层文件和缓存文件的两种不同实现,接口抽象的处理可根据相应分区中的数据是否缓存,和/或目标请求流量指标来选择对应的文件***实现类自动进行处理。
可选的,缓存文件***实现类可只处理读相关操作,写操作禁止执行,并可在检测到写操作时抛出异常提示。
具体的,针对至少一个目标访问路径中的任一目标访问路径,若任一目标访问路径为缓存路径(即所需访问的访问位置为存算中间层***),则调用缓存文件***实现类,基于任一目标访问路径,访问目标表数据在任一目标访问路径所指示分区中的数据;若任一目标访问路径为底层存储路径(即所需访问的访问位置为底层存储***),则调用底层文件***实现类,基于任一目标访问路径,访问目标表数据在任一目标访问路径所指示分区中的数据。
综上可见,本发明实施例可在计算和底层存储之间嵌入一个存算中间层***,且可通过新增缓存文件***实现类、是否缓存参数以及是否缓存参数的参数值,保证使用者无感,即可与改造之前的使用体验保持一致;也就是说,使用者在使用文件***客户端进行文件数据的读取操作时,对于读取的文件数据是来自底层存储***,还是来自存算中间层***是透明无感的,使用体验上是完全一致的。
本发明实施例可在检测到针对待缓存表下的待缓存分区的数据缓存请求时,关闭待缓存分区的底层存储路径的写入权限,数据缓存请求携带有待缓存指示信息,待缓存指示信息用于指示待缓存表下的待缓存分区。然后,可基于待缓存分区的底层存储路径,向存算中间层***发送目录挂载指令,以使存算中间层***挂载待缓存分区对应的缓存路径目录,缓存路径目录用于缓存待缓存分区中的数据;并可向待缓存表的表结构数据包括的待缓存分区的属性参数表中,写入是否缓存参数和是否缓存参数的参数值,以使待缓存分区的属性参数表包括的是否缓存参数的参数值为已缓存标识。进一步的,可接收目标任务,目标任务携带有目标表数据指示信息,目标表数据指示信息用于指示目标任务所需访问的目标表数据;然后,可基于目标表数据指示信息,确定目标元数据集,目标元数据集支持包括目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中。基于此,可基于目标元数据集,确定目标任务对应的至少一个目标访问路径,至少一个目标访问路径包括M个缓存路径和N个底层存储路径;并可基于至少一个目标访问路径,访问目标表数据,以实现目标任务的数据访问。可见,本发明实施例可通过存算中间层***,破除IO访问瓶颈,即可破除峰值访问带来的IO访问瓶颈,从而有效提高访问效率,即可有效提高大数据分析计算的数据访问效率,以及可提高***的整体稳定性和可靠性;并且,可关闭待缓存分区的底层存储路径的写入权限,从而保证待缓存分区在底层存储的数据和存算中间层缓存的数据保持一致。
基于上述数据访问方法的相关实施例的描述,本发明实施例还提出了一种数据访问装置,该数据访问装置可以是运行于电子设备中的一个计算机程序(包括程序代码);如图7所示,该数据访问装置可包括接收单元701和处理单元702。该数据访问装置可以执行图1或图3所示的数据访问方法,即该数据访问装置可以运行上述单元:
接收单元701,用于接收目标任务,所述目标任务携带有目标表数据指示信息,所述目标表数据指示信息用于指示所述目标任务所需访问的目标表数据;
处理单元702,用于基于所述目标表数据指示信息,确定目标元数据集,所述目标元数据集支持包括所述目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中;
所述处理单元702,还用于基于所述目标元数据集,确定所述目标任务对应的至少一个目标访问路径,所述至少一个目标访问路径包括M个缓存路径和N个底层存储路径,M和N均为非负整数;
所述处理单元702,还用于基于所述至少一个目标访问路径,访问所述目标表数据,以实现所述目标任务的数据访问。
在一种实施方式中,所述目标表数据所在分区的数量为一个或多个,所述至少一个目标访问路径中目标访问路径的数量与所述目标表数据所在分区的数量相同;处理单元702在基于所述目标元数据集,确定所述目标任务对应的至少一个目标访问路径时,可具体用于:
针对所述目标表数据所在分区中的任一分区,从所述目标元数据集中确定出所述任一分区对应的底层存储路径;
判断所述目标元数据集是否包括所述任一分区的已缓存标识;
若所述目标元数据集包括所述任一分区的已缓存标识,则基于所述任一分区对应的底层存储路径,确定所述任一分区对应的目标访问路径;
若所述目标元数据集未包括所述任一分区的已缓存标识,则将所述任一分区对应的底层存储路径,作为所述任一分区对应的目标访问路径,以使所述至少一个目标访问路径包括所述任一分区对应的底层存储路径。
另一种实施方式中,所述目标元数据集还支持包括所述目标表数据对应的目标请求流量指标,所述目标请求流量指标用于指示请求所述目标表数据路由到所述存算中间层***的概率;处理单元702在基于所述任一分区对应的底层存储路径,确定所述任一分区对应的目标访问路径时,可具体用于:
若所述目标元数据集未包括所述目标请求流量指标,或所述目标请求流量指标大于或等于第一指标阈值,则基于所述任一分区对应的底层存储路径,确定所述任一分区对应的缓存路径,并将所述任一分区对应的缓存路径作为所述任一分区对应的目标访问路径;或者,
若所述目标请求流量指标小于所述第一指标阈值,且所述目标请求流量指标大于第二指标阈值,则基于所述目标请求流量指标,确定访问位置;若所述访问位置为所述存算中间层***,则基于所述任一分区对应的底层存储路径,确定所述任一分区对应的缓存路径,并将所述任一分区对应的缓存路径作为所述任一分区对应的目标访问路径;若所述访问位置为底层存储***,则将所述任一分区对应的底层存储路径作为所述任一分区对应的目标访问路径;或者,
若所述目标请求流量指标小于或等于所述第二指标阈值,则将所述任一分区对应的底层存储路径作为所述任一分区对应的目标访问路径。
另一种实施方式中,所述目标表数据是通过文件***实现类访问的,所述文件***实现类是通过底层文件***实现类和缓存文件***实现类实现的,处理单元702在基于所述至少一个目标访问路径,访问所述目标表数据时,可具体用于:
针对所述至少一个目标访问路径中的任一目标访问路径,若所述任一目标访问路径为缓存路径,则调用所述缓存文件***实现类,基于所述任一目标访问路径,访问所述目标表数据在所述任一目标访问路径所指示分区中的数据;
若所述任一目标访问路径为底层存储路径,则调用所述底层文件***实现类,基于所述任一目标访问路径,访问所述目标表数据在所述任一目标访问路径所指示分区中的数据。
另一种实施方式中,一个分区的已缓存标识是通过相应分区的属性参数表中的是否缓存参数的参数值设置的,且一个元数据集是基于相应表的表结构数据确定的,处理单元702还可用于:
在检测到针对待缓存表下的待缓存分区的数据缓存请求时,关闭所述待缓存分区的底层存储路径的写入权限,所述数据缓存请求携带有待缓存指示信息,所述待缓存指示信息用于指示所述待缓存表下的待缓存分区;
基于所述待缓存分区的底层存储路径,向所述存算中间层***发送目录挂载指令,以使所述存算中间层***挂载所述待缓存分区对应的缓存路径目录,所述缓存路径目录用于缓存所述待缓存分区中的数据;
向所述待缓存表的表结构数据包括的所述待缓存分区的属性参数表中,写入所述是否缓存参数和所述是否缓存参数的参数值,以使所述待缓存分区的属性参数表包括的所述是否缓存参数的参数值为所述已缓存标识。
另一种实施方式中,一个元数据集还支持包括相应表的请求流量指标,且一个表的请求流量指标是通过相应表的属性参数表中的请求流量到缓存路径参数的参数值设置的,处理单元702还可用于:
向所述待缓存表的表结构数据包括的所述待缓存表的属性参数表中,写入所述请求流量到缓存路径参数和所述请求流量到缓存路径参数的参数值,以使所述待缓存表的表结构数据包括的所述请求流量到缓存路径参数的参数值为预设请求流量指标。
另一种实施方式中,处理单元702还可用于:
在检测到针对待更新表的表结构数据中所述请求流量到缓存路径参数的参数值修改指令时,采用所述参数值修改指令所指示的参数值,更新所述请求流量到缓存路径参数在所述待更新表的表结构数据中的参数值;或者,
确定存算中间层***指标,并基于所述存算中间层***指标,更新所述请求流量到缓存路径参数在所述待更新表的表结构数据中的参数值。
另一种实施方式中,一个分区的已缓存标识是通过相应分区的属性参数表中的是否缓存参数的参数值设置的,且一个元数据集是基于相应表的表结构数据确定的;一个元数据集还支持包括相应表的请求流量指标,且一个表的请求流量指标是通过相应表的属性参数表中的请求流量到缓存路径参数的参数值设置的;处理单元702还可用于:
在检测到数据缓存移除请求时,确定所述数据缓存移除请求所指示的表分区路径;
从所述表分区路径对应表的表结构数据中,删除所述表分区路径所指示分区的属性参数表中的所述是否缓存参数和所述是否缓存参数的参数值,和/或,删除所述请求流量到缓存路径参数和所述请求流量到缓存路径参数的参数值;
基于所述表分区路径,向所述存算中间层***发送取消目录挂载指令,以使所述存算中间层***删除所述缓存目录中的缓存数据,并取消所述表分区路径对应缓存目录的挂载。
根据本发明的一个实施例,图1或图3所示的方法所涉及的各个步骤均可由图7所示的数据访问装置中的各个单元来执行的;例如,图1中所示的步骤S101可由图7中所示的接收单元701执行,步骤S102-S104均可由图7中所示的处理单元702执行;又如,图3中所示的步骤S301-S303以及步骤S305-S307均可由图7中所示的处理单元702执行,步骤S304可由图7中所示的接收单元701执行,等等。
根据本发明的另一个实施例,图7所示的数据访问装置中的各个单元均可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,数据访问装置也可以包括其他单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用电子设备上运行能够执行如图1或图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7中所示的数据访问装置,以及来实现本发明实施例的数据访问方法。所述计算机程序可以记载于例如计算机存储介质上,并通过计算机存储介质装载于上述电子设备中,并在其中运行。
本发明实施例可在接收目标任务后,基于目标任务携带的目标表数据指示信息,确定目标元数据集,目标表数据指示信息用于指示目标任务所需访问的目标表数据,目标元数据集支持包括目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中,在此种情况下,可从存算中间层***中访问缓存数据。然后,可基于目标元数据集,确定目标任务对应的至少一个目标访问路径,至少一个目标访问路径包括M个缓存路径和N个底层存储路径;并基于至少一个目标访问路径,访问所述目标表数据,以实现目标任务的数据访问。可见,本发明实施例可通过存算中间层***,破除IO访问瓶颈,即可破除峰值访问带来的IO访问瓶颈,从而有效提高访问效率,即可有效提高大数据分析计算的数据访问效率。
基于上述方法实施例以及装置实施例的描述,本发明示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本发明实施例的方法。
本发明示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。
本发明示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。
参考图8,现将描述可以作为本发明的服务器或客户端的电子设备800的结构框图,其是可以应用于本发明的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图8所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储电子设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元806、输出单元807、存储单元808以及通信单元809。输入单元806可以是能向电子设备800输入信息的任何类型的设备,输入单元806可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元807可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元808可以包括但不限于磁盘、光盘。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理。例如,在一些实施例中,数据访问方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM802和/或通信单元809而被载入和/或安装到电子设备800上。在一些实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据访问方法。
用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据访问装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本发明使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
并且,应理解的是,以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (11)
1.一种数据访问方法,其特征在于,包括:
接收目标任务,所述目标任务携带有目标表数据指示信息,所述目标表数据指示信息用于指示所述目标任务所需访问的目标表数据;
基于所述目标表数据指示信息,确定目标元数据集,所述目标元数据集支持包括所述目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中;
基于所述目标元数据集,确定所述目标任务对应的至少一个目标访问路径,所述至少一个目标访问路径包括M个缓存路径和N个底层存储路径,M和N均为非负整数;
基于所述至少一个目标访问路径,访问所述目标表数据,以实现所述目标任务的数据访问。
2.根据权利要求1所述的方法,其特征在于,所述目标表数据所在分区的数量为一个或多个,所述至少一个目标访问路径中目标访问路径的数量与所述目标表数据所在分区的数量相同;所述基于所述目标元数据集,确定所述目标任务对应的至少一个目标访问路径,包括:
针对所述目标表数据所在分区中的任一分区,从所述目标元数据集中确定出所述任一分区对应的底层存储路径;
判断所述目标元数据集是否包括所述任一分区的已缓存标识;
若所述目标元数据集包括所述任一分区的已缓存标识,则基于所述任一分区对应的底层存储路径,确定所述任一分区对应的目标访问路径;
若所述目标元数据集未包括所述任一分区的已缓存标识,则将所述任一分区对应的底层存储路径,作为所述任一分区对应的目标访问路径,以使所述至少一个目标访问路径包括所述任一分区对应的底层存储路径。
3.根据权利要求2所述的方法,其特征在于,所述目标元数据集还支持包括所述目标表数据对应的目标请求流量指标,所述目标请求流量指标用于指示请求所述目标表数据路由到所述存算中间层***的概率;所述基于所述任一分区对应的底层存储路径,确定所述任一分区对应的目标访问路径,包括:
若所述目标元数据集未包括所述目标请求流量指标,或所述目标请求流量指标大于或等于第一指标阈值,则基于所述任一分区对应的底层存储路径,确定所述任一分区对应的缓存路径,并将所述任一分区对应的缓存路径作为所述任一分区对应的目标访问路径;或者,
若所述目标请求流量指标小于所述第一指标阈值,且所述目标请求流量指标大于第二指标阈值,则基于所述目标请求流量指标,确定访问位置;若所述访问位置为所述存算中间层***,则基于所述任一分区对应的底层存储路径,确定所述任一分区对应的缓存路径,并将所述任一分区对应的缓存路径作为所述任一分区对应的目标访问路径;若所述访问位置为底层存储***,则将所述任一分区对应的底层存储路径作为所述任一分区对应的目标访问路径;或者,
若所述目标请求流量指标小于或等于所述第二指标阈值,则将所述任一分区对应的底层存储路径作为所述任一分区对应的目标访问路径。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述目标表数据是通过文件***实现类访问的,所述文件***实现类是通过底层文件***实现类和缓存文件***实现类实现的,所述基于所述至少一个目标访问路径,访问所述目标表数据,包括:
针对所述至少一个目标访问路径中的任一目标访问路径,若所述任一目标访问路径为缓存路径,则调用所述缓存文件***实现类,基于所述任一目标访问路径,访问所述目标表数据在所述任一目标访问路径所指示分区中的数据;
若所述任一目标访问路径为底层存储路径,则调用所述底层文件***实现类,基于所述任一目标访问路径,访问所述目标表数据在所述任一目标访问路径所指示分区中的数据。
5.根据权利要求1-3任一项所述的方法,其特征在于,一个分区的已缓存标识是通过相应分区的属性参数表中的是否缓存参数的参数值设置的,且一个元数据集是基于相应表的表结构数据确定的,所述方法还包括:
在检测到针对待缓存表下的待缓存分区的数据缓存请求时,关闭所述待缓存分区的底层存储路径的写入权限,所述数据缓存请求携带有待缓存指示信息,所述待缓存指示信息用于指示所述待缓存表下的待缓存分区;
基于所述待缓存分区的底层存储路径,向所述存算中间层***发送目录挂载指令,以使所述存算中间层***挂载所述待缓存分区对应的缓存路径目录,所述缓存路径目录用于缓存所述待缓存分区中的数据;
向所述待缓存表的表结构数据包括的所述待缓存分区的属性参数表中,写入所述是否缓存参数和所述是否缓存参数的参数值,以使所述待缓存分区的属性参数表包括的所述是否缓存参数的参数值为所述已缓存标识。
6.根据权利要求5所述的方法,其特征在于,一个元数据集还支持包括相应表的请求流量指标,且一个表的请求流量指标是通过相应表的属性参数表中的请求流量到缓存路径参数的参数值设置的,所述方法还包括:
向所述待缓存表的表结构数据包括的所述待缓存表的属性参数表中,写入所述请求流量到缓存路径参数和所述请求流量到缓存路径参数的参数值,以使所述待缓存表的表结构数据包括的所述请求流量到缓存路径参数的参数值为预设请求流量指标。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在检测到针对待更新表的表结构数据中所述请求流量到缓存路径参数的参数值修改指令时,采用所述参数值修改指令所指示的参数值,更新所述请求流量到缓存路径参数在所述待更新表的表结构数据中的参数值;或者,
确定存算中间层***指标,并基于所述存算中间层***指标,更新所述请求流量到缓存路径参数在所述待更新表的表结构数据中的参数值。
8.根据权利要求1-3任一项所述的方法,其特征在于,一个分区的已缓存标识是通过相应分区的属性参数表中的是否缓存参数的参数值设置的,且一个元数据集是基于相应表的表结构数据确定的;一个元数据集还支持包括相应表的请求流量指标,且一个表的请求流量指标是通过相应表的属性参数表中的请求流量到缓存路径参数的参数值设置的;所述方法还包括:
在检测到数据缓存移除请求时,确定所述数据缓存移除请求所指示的表分区路径;
从所述表分区路径对应表的表结构数据中,删除所述表分区路径所指示分区的属性参数表中的所述是否缓存参数和所述是否缓存参数的参数值,和/或,删除所述请求流量到缓存路径参数和所述请求流量到缓存路径参数的参数值;
基于所述表分区路径,向所述存算中间层***发送取消目录挂载指令,以使所述存算中间层***删除所述缓存目录中的缓存数据,并取消所述表分区路径对应缓存目录的挂载。
9.一种数据访问装置,其特征在于,所述装置包括:
接收单元,用于接收目标任务,所述目标任务携带有目标表数据指示信息,所述目标表数据指示信息用于指示所述目标任务所需访问的目标表数据;
处理单元,用于基于所述目标表数据指示信息,确定目标元数据集,所述目标元数据集支持包括所述目标表数据所在分区的已缓存标识,一个分区的已缓存标识用于指示相应分区中的数据已缓存至存算中间层***中;
所述处理单元,还用于基于所述目标元数据集,确定所述目标任务对应的至少一个目标访问路径,所述至少一个目标访问路径包括M个缓存路径和N个底层存储路径,M和N均为非负整数;
所述处理单元,还用于基于所述至少一个目标访问路径,访问所述目标表数据,以实现所述目标任务的数据访问。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-8中任一项所述的方法。
11.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311695851.8A CN117667879A (zh) | 2023-12-11 | 2023-12-11 | 数据访问方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311695851.8A CN117667879A (zh) | 2023-12-11 | 2023-12-11 | 数据访问方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667879A true CN117667879A (zh) | 2024-03-08 |
Family
ID=90078568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311695851.8A Pending CN117667879A (zh) | 2023-12-11 | 2023-12-11 | 数据访问方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667879A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118250295A (zh) * | 2024-05-28 | 2024-06-25 | 北京科杰科技有限公司 | 一种多网络环境的访问对象存储方法 |
-
2023
- 2023-12-11 CN CN202311695851.8A patent/CN117667879A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118250295A (zh) * | 2024-05-28 | 2024-06-25 | 北京科杰科技有限公司 | 一种多网络环境的访问对象存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10044551B2 (en) | Secure cloud management agent | |
US8990243B2 (en) | Determining data location in a distributed data store | |
US10887416B2 (en) | Efficient high availability and storage efficiency in a multi-site object storage environment | |
EP3605352B1 (en) | Short-link parsing method, apparatus and device | |
US10382380B1 (en) | Workload management service for first-in first-out queues for network-accessible queuing and messaging services | |
US10097659B1 (en) | High performance geographically distributed data storage, retrieval and update | |
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
US11327970B1 (en) | Context dependent execution time prediction for redirecting queries | |
CN108780404A (zh) | 远程访问数据的有效实时迁移 | |
CN106817432B (zh) | 云计算环境下虚拟资源弹性伸展的方法,***和设备 | |
US20230052935A1 (en) | Asynchronous accounting method and apparatus for blockchain, medium and electronic device | |
CN103607312A (zh) | 用于服务器***的数据请求处理方法及*** | |
US11159607B2 (en) | Management for a load balancer cluster | |
US9912570B2 (en) | Dynamic cloning of application infrastructures | |
CN112988062B (zh) | 一种元数据读取限制方法、装置、电子设备及介质 | |
US10594620B1 (en) | Bit vector analysis for resource placement in a distributed system | |
CN112199176A (zh) | 一种业务处理方法、装置及相关设备 | |
CN112286930A (zh) | redis业务方资源共享的方法、装置、存储介质及电子设备 | |
WO2023029485A1 (zh) | 数据处理方法、装置、计算机设备及计算机可读存储介质 | |
CN116233254A (zh) | 业务切流方法、装置、计算机设备和存储介质 | |
CN117667879A (zh) | 数据访问方法、装置、存储介质及电子设备 | |
CN115827778A (zh) | 一种数据获取方法、装置、电子设备及存储介质 | |
US11340964B2 (en) | Systems and methods for efficient management of advanced functions in software defined storage systems | |
US11625273B1 (en) | Changing throughput capacity to sustain throughput for accessing individual items in a database | |
US10476947B1 (en) | Methods for managing web applications and devices thereof |
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 |