CN114780252B - 数据仓库系统的资源管理方法及装置 - Google Patents

数据仓库系统的资源管理方法及装置 Download PDF

Info

Publication number
CN114780252B
CN114780252B CN202210674033.9A CN202210674033A CN114780252B CN 114780252 B CN114780252 B CN 114780252B CN 202210674033 A CN202210674033 A CN 202210674033A CN 114780252 B CN114780252 B CN 114780252B
Authority
CN
China
Prior art keywords
computing
bucket
computing node
node
migrated
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
CN202210674033.9A
Other languages
English (en)
Other versions
CN114780252A (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing 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 Alibaba Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN202210674033.9A priority Critical patent/CN114780252B/zh
Publication of CN114780252A publication Critical patent/CN114780252A/zh
Application granted granted Critical
Publication of CN114780252B publication Critical patent/CN114780252B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • 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/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • 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/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种数据仓库系统的资源管理方法及装置。其方法包括:数据仓库系统中,数据文件分布存储于存储服务的各bucket(存储空间),各bucket分别映射至各计算节点,各计算节点存储所映射bucket的数据文件的元数据信息并负责所映射bucket的计算任务;响应于调整计算资源的触发事件,依据调整计算资源前bucket与计算节点的映射关系以及调整计算资源后bucket与计算节点的映射关系,确定映射的计算节点发生变更的bucket作为待迁移bucket,将待迁移bucket在调整计算资源前映射到的计算节点作为源计算节点,在调整计算资源后映射到的计算节点作为目标计算节点;将待迁移bucket对应的元数据从源计算节点迁移至目标计算节点。本申请能够有效缩短云端数据仓库的扩缩容时长。

Description

数据仓库系统的资源管理方法及装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据仓库的资源管理方法及装置。
背景技术
数据仓库是一个系统,它将来自各种数据源的数据导入存储中,并为后续的快速检索做好准备。数据仓库通常包含了从各种数据源提取到的结构化或半结构化数据。数据仓库可以被部署于本地,但出于硬件成本和扩展能力的考虑,越来越多的用户将数据仓库部署于云端。
在大多数使用云端数据仓库的场景下,非常看重数据仓库的分时弹性能力,这就要求计算资源的调整要尽可能快、对读写操作的影响尽可能小。传统云端数据仓库对于计算资源的调整(诸如计算节点的扩缩容)往往伴随着数据迁移,计算资源的调整性能与数据量成正比,通常需要小时级甚至天级的时长。目前已有的云端数据仓库系统诸如以下三种:
数据仓库系统Greenplum只能支持计算节点的扩容并支持缩容,并且计算节点的扩容会引起数据迁移,当数据量很大时,扩容性能达到小时级或天级。
数据仓库系统Snowflake将所有数据和元数据都存储到AWS(Amazon WebServices,亚马逊网络服务)上。但由于Snowflake的数据分布策略是通过一致性哈希将数据和计算节点做映射,在进行join(连接)查询时容易造成系统资源的浪费。所谓join查询主要是根据两表或多表之间列的关系,从这些表中进行数据的查询。一致性哈希是依据数据文件名进行哈希后,映射到环状空间上最近的计算节点,这就造成了数据仓库中不同表对应于不同计算节点,因此进行join查询时需要在计算节点之间进行数据传输,从而造成了系统资源的浪费。
数据仓库系统AWS Redshif采用分布式哈希的方式将数据切片映射到计算节点上,但计算节点在进行扩缩容时引起数据切片的重新映射,对划分后的数据切片做迁移,这是一个耗时的过程,扩容性能差。
发明内容
有鉴于此,本申请提供了一种数据仓库的资源管理方法及装置,以便于缩短云端数据仓库的计算资源的调整时长。
本申请提供了如下方案:
根据第一方面,提供了一种数据仓库系统的资源管理方法,所述数据仓库系统中,数据文件分布存储于存储服务的各存储空间bucket,各bucket分别映射至各计算节点,各计算节点存储所映射bucket的数据文件的元数据信息并负责所映射bucket的计算任务;所述方法包括:
响应于调整计算资源的触发事件,确定调整计算资源后bucket与计算节点的映射关系;
依据调整计算资源前bucket与计算节点的映射关系以及所述调整计算资源后bucket与计算节点的映射关系,确定映射的计算节点发生变更的bucket作为待迁移bucket,将待迁移bucket在调整计算资源前映射到的计算节点作为源计算节点,在调整计算资源后映射到的计算节点作为目标计算节点;
将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点。
根据本申请实施例中一可实现的方式,所述数据文件分布存储于存储服务的各存储空间bucket包括:所述数据文件通过一致性哈希的方式或均匀哈希的方式将各数据文件的列字段映射存储于各bucket;
所述各bucket分别映射至各计算节点包括:各bucket采用均匀哈希的方式映射至各计算节点。
根据本申请实施例中一可实现的方式,该方法还包括:
响应于连接join查询请求,确定被请求的表格列所在bucket映射的计算节点;
将所述join查询请求发送给确定出的计算节点,由该计算节点进行本地join查询计算。
根据本申请实施例中一可实现的方式,数据文件的元数据信息包括系统元数据和可见性元数据;管理节点和各计算节点均保存所有数据文件的系统元数据,但仅保存所映射bucket的数据文件的可见性元数据;
将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点包括:
若所述调整计算资源为计算节点扩容,则由所述管理节点拷贝系统元数据至新增计算节点,并触发所述源计算节点将该待迁移bucket的数据文件的可见性元数据迁移至所述目标计算节点;或者,
若所述调整计算资源为计算节点缩容,则触发所述源计算节点将该待迁移bucket的数据文件的可见性元数据迁移至所述目标计算节点。
根据本申请实施例中一可实现的方式,在将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点之前,还包括:
设置所述数据仓库系统为只读模式;若所述数据仓库系统存在正在执行的写请求,则允许所述写请求在设定时长内继续执行;达到所述设定时长后对尚未执行完毕的写请求进行回滚处理;
在将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点之后,还包括:设置所述数据仓库系统为读写模式。
根据本申请实施例中一可实现的方式,设置所述数据仓库系统为只读模式之后,还包括:
若所述数据仓库系统不存在正在执行的写请求,则执行将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点的步骤。
根据本申请实施例中一可实现的方式,该方法还包括:
在将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点时,响应于读请求,获取当前数据分布策略表的快照,依据所述快照对所述读请求进行处理;
在将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点之后,利用调整计算资源后bucket与计算节点的映射关系更新所述数据分布策略表。
根据第二方面,提供了一种数据仓库系统的资源管理装置,所述数据仓库系统中,数据文件分布存储于存储服务的各存储空间bucket,各bucket分别映射至各计算节点,各计算节点存储所映射bucket的数据文件的元数据信息并负责所映射bucket的计算任务;所述装置包括:
第一确定单元,被配置为响应于调整计算资源的触发事件,确定调整计算资源后bucket与计算节点的映射关系;
第二确定单元,被配置为依据调整计算资源前bucket与计算节点的映射关系以及所述调整计算资源后bucket与计算节点的映射关系,确定映射的计算节点发生变更的bucket作为待迁移bucket,将待迁移bucket在调整计算资源前映射到的计算节点作为源计算节点,在调整计算资源后映射到的计算节点作为目标计算节点;
迁移处理单元,被配置为将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述的方法的步骤。
根据第四方面,提供了一种电子设备,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行上述第一方面中任一项所述的方法的步骤。
根据本申请提供的具体实施例,本申请可以具备以下技术效果:
1)本申请实施例中,数据文件不再和计算节点强绑定在一起,只和bucket进行绑定(即映射)。这样后续进行计算资源的调整(例如计算节点的扩缩容)时,只需要重新计算每个计算节点负责(即映射)的bucket,并将映射的bucket发生变化的计算节点进行相关元数据的迁移即可。数据文件无需进行迁移,大大提高了资源调整的效率,使得数据仓库达到分钟级别的资源调整能力。
2)本申请中将元数据分为系统元数据和可见性元数据,对于计算节点而言仅需要存储其所映射bucket的可见性元数据即可,在发生计算资源的调整时,计算节点之间仅需要迁移映射发生变更的bucket的可见性元数据,由管理节点拷贝系统元数据至计算节点即可,且迁移和拷贝并行执行,进一步提高了资源调整的效率和降低对系统性能的影响。
3)本申请实施例中,数据文件按照列字段映射存储于各bucket,管理节点接收到join查询请求后,确定被请求的表格列所在bucket往往是同一bucket,bucket映射的计算节点也是同一个,因此,管理节点将join查询请求发送给该计算节点后,可以由该计算节点进行local join查询计算,无需跨计算节点进行数据传输,节约了系统资源,提高了系统性能。
4)本申请实施例中,计算资源的调整过程中能够不阻塞读且分钟级阻塞写。读请求不会收到影响,正在执行的写请求会留设定时长继续执行,达到设定时长后对尚未执行完毕的写请求进行回滚处理,避免长时间执行的写请求影响扩缩容的速度。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本申请实施例的示例性系统架构图;
图2为本申请实施例提供的数据映射关系的示意图;
图3为本申请实施例提供的数据仓库系统的资源管理方法的主要流程图;
图4为本申请实施例提供的元数据迁移的示意图;
图5为本申请实施例提供的计算资源调整过程中读写处理的方法流程图;
图6为本申请实施例提供的数据仓库系统的资源管理装置的结构示意图;
图7为本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
本申请则提出了一种全新的数据仓库系统的资源管理方案,下面结合实施例进行详细描述。为了方便对本申请的理解,首先对本申请实施例所基于的系统架构进行简单描述。图1示出了可以应用本申请实施例的示例性系统架构图,如图1中所示,该系统主要包括接入层、计算层和存储层。
其中,计算层主要由管理节点和若干个计算节点构成,管理节点负责对计算节点进行调度管理,将来自接入层的计算任务发送给计算节点执行,管理计算资源的调整(例如计算节点扩缩容)等。
计算节点根据计算任务执行具体的计算处理,包括对存储层中数据的查询、排序、类型比较等等。
存储层负责数据仓库中数据的存储,另外还负责数据的实时写入、索引构建、数据扫描等等,但不执行任何与查询有关的计算任务。数据层位于云端,采用的是云端数据仓库。作为一种可实现的方式,数据可以采用OSS(Object Storage Service,对象存储服务),也可以采用NAS(Network Attached Storage,网络附属存储)、EBS(Elastic Block Store,弹性块存储)等其他存储服务的形式,图1中以OSS为例。
上述系统可以在服务器端实现,该服务器可以是单个的服务器,也可以是由多个服务器组成的服务器集群。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPs,Ⅵ irtualPrivate Server)服务中存在的管理难度大,服务扩展性弱的缺陷。
应该理解,图1中的管理节点、计算节点、OSS等的数目仅仅是示意性的。根据实现需要,可以具有任意数目的管理节点、计算节点、OSS。
本申请实施例中,如图2中所示,在数据和计算节点之间抽象了一个bucket(存储空间)层。对于数据仓库而言,可以包含一定数量的bucket,数据文件分布存储于各bucket。
作为其中一种可实现的方式,数据文件可以通过一致性哈希的方式映射至各bucket。例如,可以依据数据文件的列字段将数据文件以一致性哈希的方式映射并存储于各bucket。
作为另一种可实现的方式,数据文件也可以通过均匀哈希的方式映射至被bucket。例如,可以将数据文件的列字段依据数据文件的列字段将数据文件以均匀哈希的方式映射并存储于各bucket。
各bucket再分别映射至各计算节点。作为其中一种可实现的方式,各bucket可以采用均匀哈希的方式映射到各计算节点上。各计算节点存储其所映射bucket的数据文件的元数据信息并负责其所映射bucket的计算任务。
在上述架构下,由图3示出了本申请实施例提供的数据仓库系统的资源管理方法的主要流程图,该流程可以由图1所示架构中的管理节点执行。如图3中所示,该方法可以包括以下步骤:
步骤302:响应于调整计算资源的触发事件,确定调整计算资源后bucket与计算节点的映射关系。
步骤304:依据调整计算资源前bucket与计算节点的映射关系以及调整计算资源后bucket与计算节点的映射关系,确定映射的计算节点发生变更的bucket作为待迁移bucket,将待迁移bucket在调整计算资源前映射到的计算节点作为源计算节点,在调整计算资源后映射到的计算节点作为目标计算节点。
步骤306:将待迁移bucket对应的元数据从源计算节点迁移至目标计算节点。
可以看出,在这种架构下,数据文件不再和计算节点强绑定在一起,只和bucket进行绑定(即映射)。这样后续进行计算资源的调整(例如计算节点的扩缩容)时,只需要重新计算每个计算节点负责(即映射)的bucket,并将映射的bucket发生变化的计算节点进行相关元数据的迁移即可。数据文件无需进行迁移,大大提高了资源调整的效率,使得数据仓库达到分钟级别的计算节点扩缩容能力。
下面分别对上述各步骤进行详细描述。首先结合实施例对上述步骤302即“响应于调整计算资源的触发事件,确定调整计算资源后bucket与计算节点的映射关系”进行详细描述。
通常计算资源的调整是为了满足服务发展或者流量的增长,主要体现在对计算节点进行扩缩容,也可能其他形式的调整,例如计算节点的切换等。所谓扩容指的是增加计算节点,所谓缩容指的是减少计算节点。由于对于数据文件本身而言并未发生变化,因此数据文件与bucket之间的映射关系并未发生变化。而bucket与计算节点采用的是均匀哈希的方式,因此计算节点的调整会造成部分bucket与计算节点之间的映射关系发生变化。
在管理节点中存储有数据分布策略表,数据分布策略表包含bucket与计算节点之间的映射关系。在获取到调整计算资源的触发事件后,依据计划调整后的计算资源状况例如扩缩容后的计算节点,重新对bucket采用均匀哈希的方式映射至扩缩容后的计算节点,得到调整计算资源后bucket与计算节点的映射关系。但此时计算得到调整计算资源后bucket与计算节点的映射关系后,由于尚未实际进行计算节点的扩缩容,因此暂时并不对数据分布策略表进行更新。
为了方便理解在此对均匀哈希和一致性哈希进行简单介绍。
均匀哈希采用的一般是取模的方法实现均匀映射。即分别将各bucket的哈希值对计算节点的数量取模,将bucket映射至取模值对应的计算节点上。其中,哈希值可以采用诸如MD( Message-Digest Algorithm,信息摘要算法)5、SHA(Secure Hash Algorithm,安全散列算法)等。假设计算节点的数量为N,可以依据如下公式进行取模运算:
hash(key)%N=value
其中,hash()为哈希运算函数,key可以为各bucket的标识、名称等可以唯一标识各bucket的信息,%为取模(即取余数)的运算。各计算节点分别对应1~N中的不同数字,计算得到的value值就映射到该value值对应的计算节点上。
可以看出,采用上述均匀哈希的方式,一旦发生计算节点的扩缩容,就会发bucket与计算节点之间映射关系的变化。因此在步骤304中就可以依据计算节点扩缩容之前bucket与计算节点的映射关系以及扩缩容之后bucket与计算节点的映射关系,确定映射的计算节点发生变更的bucket作为迁移bucket,将待迁移bucket在调整计算资源前映射到的计算节点作为源计算节点,在调整计算资源后映射到的计算节点作为目标计算节点。
本申请实施例中,数据文件到bucket的映射可以采用一致性哈希方式。作为一种 优选的实施方式,是将各数据文件的列字段(例如列名)映射存储于各bucket。即分别将数 据文件的列字段进行哈希运算后映射至环形哈希空间,该环形哈希空间是一个0到
Figure 661022DEST_PATH_IMAGE001
的数值空间,该空间构成一个首位相接的圆环;然后将bucket的表示、名称等可以唯一表示 各bucket的信息进行哈希运算后映射至上述环形哈希空间;将数据文件的列字段在环形哈 希空间的位置沿顺时针方向找到最接近的bucket在环形哈希空间的位置,该列就映射至该 最接近的bucket,该列的数据就存储于所映射的bucket。
除此之外,数据文件到bucket的映射也可以采用均匀哈希方式。作为一种优选的实施方式,是将各数据文件的列字段映射存储于各bucket。即分别将数据文件的列字段进行哈希运算并取模后映射至对应的bucket。
由于数据文件是按列依据列字段映射至各bucket上的,意味着相同或者相近列字段会映射至同一bucket。那么若接收到join(连接)查询请求,join查询主要是根据两个表格或者多个表格之间列的关系,从这些表格的列中进行数据的查询。则确定所请求的表格列所在bucket往往是同一bucket,bucket映射的计算节点也是同一个,因此,管理节点将join查询请求发送给该计算节点后,可以由该计算节点进行local join查询计算,即在本地进行join查询计算即可,无需跨计算节点进行数据传输,节约了系统资源,提高了系统性能。
下面结合实施例对上述步骤306即“将待迁移bucket对应的元数据从源计算节点迁移至目标计算节点”进行详细描述。
本申请实施例中,数据文件与数据文件的元数据分开存储,数据文件存储于bucket,而元数据存储于计算节点。由于计算资源调整例如计算节点的扩缩容对数据文件和bucket的映射关系不会造成影响,因此无需进行数据文件的迁移,仅需要进行元数据的迁移。元数据(Meta Date)是数据仓库管理系统的重要组成部分,是数据文件的描述性数据。主要记录数据仓库中模型的定义、数据文件与bucket的映射关系、数据文件的状态、数据转换的规则、数据导入的历史记录、表信息、列信息等等。
作为其中一种可实现的方式,可以由计算节点存储其所映射bucket的元数据。
作为另一种可实现的方式,可以将元数据分为系统元数据和可见性元数据,管理节点和每个计算节点中都会存储一份系统元数据,但每个计算节点都仅保存所映射bucket的数据文件的可见性元数据。
系统元数据指的是涉及schema(schema主要包含元素与属性的声明、数据类型的定义等,是对xml数据文件的源语言定义)信息、表信息、列信息等基础元数据,这部分主要对数据仓库中数据存储格式的定义,该部分元数据的数据量较小又是数据仓库中数据文件的基础元数据,因此在本申请实施例中每个计算节点都进行存储。
可见性元数据指的是影响数据可见性判断的元数据,诸如共享数据的位置、名称、删除标记等涉及数据文件属性的元数据,这部分主要对计算节点执行计算处理产生影响,并且由于数据量较大,所以每个计算节点都仅保存所映射bucket的数据文件的可见性元数据,从而降低计算节点的存储压力。
上述对系统元数据和可见性元数据进行区别性存储的方式,出于数据的存储和计算分离的考虑,仅在计算节点上存储必要的元数据,从而降低需要迁移的元数据量,尽可能地快速扩缩容。
在本申请实施例中,当发生计算节点的扩容时,如图4中所示,可以由管理节点拷贝系统元数据至新增计算节点,并触发源计算节点将待迁移bucket的数据文件的可见性元数据迁移至目标计算节点。例如确定扩容之后,bucket2和bucket4映射至新增计算节点,则由计算节点1将bucket2的可见性元数据迁移至新增计算节点,计算节点2将bucket4的可见性元数据迁移至新增计算节点。上述迁移过程可以是并发执行的,从而尽可能实现快速扩缩容。
当发生计算节点的缩容时,仅需要由管理节点触发源计算节点将待迁移bucket的数据文件的可见性元数据迁移至目标计算节点即可。该迁移过程也可以是并发执行的。
除了上述计算节点的扩缩容之外,还可以应用于其他计算资源的调整,例如计算节点的切换。在发生计算节点的切换时,通常是由一个新增的计算节点替换一个已有计算节点,此时该已有计算节点即为源计算节点,新增的计算节点为目标计算节点。管理节点将系统元数据拷贝至目标计算节点。若该新增计算节点要替换该已有计算节点完成所有功能,则需要将源计算节点所映射所有bucket的可见性元数据迁移至目标计算节点。
在上述管理节点触发元计算节点进行可见性元数据迁移的过程中,管理节点可以依据计算节点扩缩容之前bucket和计算节点的映射关系以及扩缩容之后bucket和计算节点的映射关系,告知需要进行元数据迁移的源计算节点需要迁移哪些bucket的可见性元数据以及目标计算节点的信息。
作为其中一种可实现的方式,上述源计算节点将待迁移bucket的数据文件的可见性元数据迁移至目标计算节点时,实际上是由源计算节点将待迁移bucket的数据文件的可见性元数据拷贝至目标计算节点后,删除本地存储的待迁移bucket的数据文件的可见性元数据。在拷贝之前可以对待拷贝的可见性元数据进行压缩,在目标计算节点上再对该可见性元数据进行解压缩后存储。
无论是系统元数据还是可见性元数据,相比较于数据文件而言数据量小得多,并且上述迁移过程是并行执行的,因此计算节点的扩缩容非常快,可以达到分钟级别。经过试验后发现,16个计算节点以下的扩缩容能够在1分钟内完成,16个计算节点以上的扩缩容通常也能够控制在5分钟内完成。
在上述数据仓库系统的资源管理机制的基础上,可以通过图5所示流程实现计算资源调整过程中的读写处理,即不阻塞读且短时间阻塞写。如图5中所示,可以执行以下步骤:
步骤502:计算节点扩缩容之前,设置数据仓库系统为只读模式。
本申请实施例中准备进行节点扩缩容时,可以首先设置数据仓库系统为只读模式,即只允许读操作。但对于数据仓库系统中正在执行的写请求,为了降低出错情况的发生可以对正在执行的写请求允许其在设定时长内继续执行,即执行下面步骤504和506。
步骤504:判断当前数据仓库系统是否存在正在执行的写请求,如果是,执行步骤506;否则,执行步骤508。
步骤506:允许正在执行的写请求在设定时长内继续执行,达到设定时长后对尚未执行完毕的写请求进行回滚处理。
例如可以设置3分钟的设定时长,允许正在执行的写请求3分钟内执行完毕,若未执行完毕,则会进行回滚处理,即回到该未执行完毕的写请求执行之前的状态。并对回滚处理的写请求进行报错即返回指示发生写错误的消息。这种方式可以避免长时间执行的写请求影响扩缩容的速度。
步骤508:执行图3所示实施例中步骤306所述的元数据迁移。
执行计算节点的扩缩容,并对所涉及的计算节点进行元数据迁移。该部分内容参见之前实施例中的记载,不做赘述。
步骤510:更新数据分布策略表。
设置为只读模式的过程中,对于读请求则可以正常执行读操作,即扩缩容过程中的读请求不会被阻塞。之前实施例中已经提及,在管理节点中存储有数据分布策略表,数据分布策略表包含bucket与计算节点之间的映射关系。响应于读请求,获取当前数据分布策略表的快照,依据快照对读请求进行处理。也就是说,通过快照的形式获取变更前的数据分布策略表,从而正常访问元数据实现读操作。由于读请求是依据分布策略表的快照访问元数据,看不到计算节点扩缩容过程中正在被迁移的元数据和分布策略表,因此不会存在数据不一致的问题。
扩缩容完毕后,利用计算节点扩缩容后bucket与计算节点的映射关系更新数据分布策略表。
步骤512:设置数据仓库系统为读写模式。
完成计算节点的扩缩容后,将数据仓库系统设置回读写模式。由于整个扩缩容过程是分钟级的,因此写请求的阻塞也是分钟级的。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
根据另一方面的实施例,提供了一种数据仓库系统的资源管理装置。数据仓库系统中,数据文件分布存储于存储服务的各bucket,各bucket分别映射至各计算节点,各计算节点存储所映射bucket的数据文件的元数据信息并负责所映射bucket的计算任务。图6示出根据一个实施例的该资源管理装置的示意性框图,该装置设置于图1所示架构中的管理节点。如图6所示,该装置600包括:第一确定单元601、第二确定单元602和迁移处理单元603,还可以进一步包括计算调度单元604和阻塞处理单元605。其中各组成单元的主要功能如下:
第一确定单元601,被配置为响应于调整计算资源的触发事件,确定调整计算资源后bucket与计算节点的映射关系。
第二确定单元602,被配置为依据调整计算资源前bucket与计算节点的映射关系以及调整计算资源后bucket与计算节点的映射关系,确定映射的计算节点发生变更的bucket作为待迁移bucket,将待迁移bucket在调整计算资源前映射到的计算节点作为源计算节点,在调整计算资源后映射到的计算节点作为目标计算节点。
在管理节点中存储有数据分布策略表,数据分布策略表包含bucket与计算节点之间的映射关系。第二确定单元602在确定调整计算资源后bucket与计算节点的映射关系后并不对数据分布策略表进行更新。
迁移处理单元603,被配置为将待迁移bucket对应的元数据从源计算节点迁移至目标计算节点。
作为本申请实施例中一种可实现的方式,数据文件通过一致性哈希的方式或者均匀哈希的方式将各数据文件的列字段映射存储于各bucket;各bucket采用均匀哈希的方式映射至各计算节点。
计算调度单元604负责依据数据分布策略表针对计算任务进行计算节点的调度。作为其中一种可实现的方式,计算调度单元604被配置为响应于连接join查询请求,确定所请求的表格列所在bucket映射的计算节点;将连接join查询请求发送给确定出的计算节点,由该计算节点进行本地join查询计算。
作为本申请实施例中一种可实现的方式,数据文件的元数据信息包括系统元数据和可见性元数据;管理节点和各计算节点均保存所有数据文件的系统元数据,但仅保存所映射bucket的数据文件的可见性元数据。
迁移处理单元603,被配置为若调整计算资源为计算节点的扩容,则拷贝系统元数据至新增计算节点,触发源计算节点将该待迁移bucket的数据文件的可见性元数据迁移至目标计算节点;或者,若调整计算资源为计算节点的缩容,则触发源计算节点将该待迁移bucket的数据文件的可见性元数据迁移至目标计算节点。
除了上述计算节点的扩缩容之外,还可以应用于其他计算资源的调整,例如计算节点的切换。在发生计算节点的切换时,通常是由一个新增的计算节点替换一个已有计算节点,此时该已有计算节点即为源计算节点,新增的计算节点为目标计算节点。管理节点将系统元数据拷贝至目标计算节点。若该新增计算节点要替换该已有计算节点完成所有功能,则需要将源计算节点所映射所有bucket的可见性元数据迁移至目标计算节点。
作为本申请实施例中一种可实现的方式,阻塞处理单元605在待迁移bucket对应的元数据从源计算节点迁移至目标计算节点之前,设置数据仓库系统为只读模式;若数据仓库系统存在正在执行的写请求,则允许写请求在设定时长内继续执行;达到设定时长后对尚未执行完毕的写请求进行回滚处理。在待迁移bucket对应的元数据从源计算节点迁移至目标计算节点之后,还包括:设置数据仓库系统为读写模式。
若数据仓库系统不存在正在执行的写请求,则执行触发迁移处理单元603执行处理。
作为本申请实施例中一种可实现的方式,阻塞处理单元605在设置数据仓库系统为只读模式时,响应于读请求,获取当前数据分布策略表的快照,依据快照对读请求进行处理。
在待迁移bucket对应的元数据从源计算节点迁移至目标计算节点之后,第二确定单元602利用调整计算资源后bucket与计算节点的映射关系更新数据分布策略表。
需要说明的是,本申请实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如,用户明确同意,对用户切实通知,等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。
另外,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例中任一项的方法的步骤。
以及一种电子设备,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行前述方法实施例中任一项所述的方法的步骤。
其中,图7示例性的展示出了电子设备的架构,具体可以包括处理器710,视频显示适配器711,磁盘驱动器712,输入/输出接口713,网络接口714,以及存储器720。上述处理器710、视频显示适配器711、磁盘驱动器712、输入/输出接口713、网络接口714,与存储器720之间可以通过通信总线730进行通信连接。
其中,处理器710可以采用通用的CPU、微处理器、应用专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器720可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器720可以存储用于控制电子设备700运行的操作系统721,用于控制电子设备700的低级别操作的基本输入输出系统(BIOS) 722。另外,还可以存储网页浏览器723,数据存储管理系统724,以及资源管理装置725等等。上述资源管理装置725就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器720中,并由处理器710来调用执行。
输入/输出接口713用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口714用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线730包括一通路,在设备的各个组件(例如处理器710、视频显示适配器711、磁盘驱动器712、输入/输出接口713、网络接口714,与存储器720)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器710、视频显示适配器711、磁盘驱动器712、输入/输出接口713、网络接口714,存储器720,总线730等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种数据仓库系统的资源管理方法,其特征在于,所述数据仓库系统中,数据文件分布存储于存储服务的各存储空间bucket,各bucket分别映射至各计算节点,各计算节点存储所映射bucket的数据文件的元数据信息并负责所映射bucket的计算任务;所述方法包括:
响应于调整计算资源的触发事件,确定调整计算资源后bucket与计算节点的映射关系;
依据调整计算资源前bucket与计算节点的映射关系以及所述调整计算资源后bucket与计算节点的映射关系,确定映射的计算节点发生变更的bucket作为待迁移bucket,将待迁移bucket在调整计算资源前映射到的计算节点作为源计算节点,在调整计算资源后映射到的计算节点作为目标计算节点;
将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点。
2.根据权利要求1所述的方法,其特征在于,所述数据文件分布存储于存储服务的各存储空间bucket包括:所述数据文件通过一致性哈希的方式或均匀哈希的方式将各数据文件的列字段映射存储于各bucket;
所述各bucket分别映射至各计算节点包括:各bucket采用均匀哈希的方式映射至各计算节点。
3.根据权利要求2所述的方法,其特征在于,该方法还包括:
响应于连接join查询请求,确定被请求的表格列所在bucket映射的计算节点;
将所述join查询请求发送给确定出的计算节点,由该计算节点进行本地join查询计算。
4.根据权利要求1所述的方法,其特征在于,数据文件的元数据信息包括系统元数据和可见性元数据;管理节点和各计算节点均保存所有数据文件的系统元数据,但每个计算节点都仅保存所映射bucket的数据文件的可见性元数据;
将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点包括:
若所述调整计算资源为计算节点扩容,则由所述管理节点拷贝系统元数据至新增计算节点,并触发所述源计算节点将该待迁移bucket的数据文件的可见性元数据迁移至所述目标计算节点;或者,
若所述调整计算资源为计算节点缩容,则触发所述源计算节点将该待迁移bucket的数据文件的可见性元数据迁移至所述目标计算节点。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点之前,还包括:
设置所述数据仓库系统为只读模式;若所述数据仓库系统存在正在执行的写请求,则允许所述写请求在设定时长内继续执行;达到所述设定时长后对尚未执行完毕的写请求进行回滚处理;
在将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点之后,还包括:设置所述数据仓库系统为读写模式。
6.根据权利要求5所述的方法,其特征在于,设置所述数据仓库系统为只读模式之后,还包括:
若所述数据仓库系统不存在正在执行的写请求,则执行将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点的步骤。
7.根据权利要求5所述的方法,其特征在于,该方法还包括:
在将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点时,响应于读请求,获取当前数据分布策略表的快照,依据所述快照对所述读请求进行处理;
在将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点之后,利用调整计算资源后bucket与计算节点的映射关系更新所述数据分布策略表。
8.一种数据仓库系统的资源管理装置,其特征在于,所述数据仓库系统中,数据文件分布存储于存储服务的各存储空间bucket,各bucket分别映射至各计算节点,各计算节点存储所映射bucket的数据文件的元数据信息并负责所映射bucket的计算任务;所述装置包括:
第一确定单元,被配置为响应于调整计算资源的触发事件,确定调整计算资源后bucket与计算节点的映射关系;
第二确定单元,被配置为依据调整计算资源前bucket与计算节点的映射关系以及所述调整计算资源后bucket与计算节点的映射关系,确定映射的计算节点发生变更的bucket作为待迁移bucket,将待迁移bucket在调整计算资源前映射到的计算节点作为源计算节点,在调整计算资源后映射到的计算节点作为目标计算节点;
迁移处理单元,被配置为将所述待迁移bucket对应的元数据从源计算节点迁移至目标计算节点。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行权利要求1至7中任一项所述的方法的步骤。
CN202210674033.9A 2022-06-15 2022-06-15 数据仓库系统的资源管理方法及装置 Active CN114780252B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210674033.9A CN114780252B (zh) 2022-06-15 2022-06-15 数据仓库系统的资源管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210674033.9A CN114780252B (zh) 2022-06-15 2022-06-15 数据仓库系统的资源管理方法及装置

Publications (2)

Publication Number Publication Date
CN114780252A CN114780252A (zh) 2022-07-22
CN114780252B true CN114780252B (zh) 2022-11-18

Family

ID=82421636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210674033.9A Active CN114780252B (zh) 2022-06-15 2022-06-15 数据仓库系统的资源管理方法及装置

Country Status (1)

Country Link
CN (1) CN114780252B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115103020B (zh) * 2022-08-25 2022-11-15 建信金融科技有限责任公司 数据迁移处理方法和装置
CN115544025B (zh) * 2022-11-30 2023-03-24 阿里云计算有限公司 数据处理方法和数据处理系统
CN116909779B (zh) * 2023-09-11 2024-01-26 中移(苏州)软件技术有限公司 一种消息处理方法、装置及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106207A (zh) * 2011-11-10 2013-05-15 中国移动通信集团公司 一种对象存储系统中元数据分布的方法和设备
CN113434482A (zh) * 2021-06-28 2021-09-24 平安国际智慧城市科技股份有限公司 数据迁移方法、装置、计算机设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550208B (zh) * 2015-12-02 2019-04-02 南京邮电大学 基于谱哈希的相似性存储设计方法
US10254996B1 (en) * 2018-08-10 2019-04-09 Cohesity, Inc. Fast migration of metadata
US11314687B2 (en) * 2020-09-24 2022-04-26 Commvault Systems, Inc. Container data mover for migrating data between distributed data storage systems integrated with application orchestrators
US11375013B2 (en) * 2020-09-25 2022-06-28 Microsoft Technology Licensing, Llc Deterministic mapping and uniform routing of items to physical resources using hash values
CN112181309A (zh) * 2020-10-14 2021-01-05 上海德拓信息技术股份有限公司 一种海量对象存储的在线扩容方法
CN112416264A (zh) * 2020-12-11 2021-02-26 中国建设银行股份有限公司 数据的存储方法、装置及计算机存储介质
CN113934707A (zh) * 2021-10-09 2022-01-14 京东科技信息技术有限公司 云原生数据库、数据库扩容方法、数据库缩容方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106207A (zh) * 2011-11-10 2013-05-15 中国移动通信集团公司 一种对象存储系统中元数据分布的方法和设备
CN113434482A (zh) * 2021-06-28 2021-09-24 平安国际智慧城市科技股份有限公司 数据迁移方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN114780252A (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
CN114780252B (zh) 数据仓库系统的资源管理方法及装置
US11086725B2 (en) Orchestration of heterogeneous multi-role applications
US10896102B2 (en) Implementing secure communication in a distributed computing system
US10579364B2 (en) Upgrading bundled applications in a distributed computing system
US20190213085A1 (en) Implementing Fault Domain And Latency Requirements In A Virtualized Distributed Storage System
US10642694B2 (en) Monitoring containers in a distributed computing system
US11099937B2 (en) Implementing clone snapshots in a distributed storage system
US20190220315A1 (en) Dynamic Adjustment Of Application Resources In A Distributed Computing System
US10838829B2 (en) Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium
US11392363B2 (en) Implementing application entrypoints with containers of a bundled application
US10599622B2 (en) Implementing storage volumes over multiple tiers
US10628235B2 (en) Accessing log files of a distributed computing system using a simulated file system
US11347684B2 (en) Rolling back KUBERNETES applications including custom resources
WO2021057108A1 (zh) 一种读数据方法、写数据方法及服务器
JP2007241486A (ja) 記憶装置システム
US10877684B2 (en) Changing a distributed storage volume from non-replicated to replicated
US10642697B2 (en) Implementing containers for a stateful application in a distributed computing system
US10845997B2 (en) Job manager for deploying a bundled application
US11582168B2 (en) Fenced clone applications
US11256434B2 (en) Data de-duplication
JP2020013307A (ja) ファイル移行方法およびファイル移行システム
US11748203B2 (en) Multi-role application orchestration in a distributed storage system
WO2020151337A1 (zh) 分布式文件处理方法、装置、计算机设备以及存储介质
US20200034475A1 (en) Relocation Of A Primary Copy Of A Replicated Volume
US20190212923A1 (en) Implementing An Interface To A High-Availability Storage System In A Distributed Computing System

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