[翻译]GPDB中的文件空间与表空间

news2024/11/16 22:54:22

GPDB中的文件空间与表空间

GreenPlum是一个快速、灵活、纯软件的分析数据处理引擎,具有一些工具和特性可以充分利用任意个数硬件或者虚拟环境用来部署集群。这里讨论的一个特性是使用文件空间将数据加载和查询活动与底层的IO卷匹配。一旦在集群中创建了一个物理文件空间,它就会映射到一个逻辑表空间,然后创建表和索引时使用它。GP5的使用中可以参考下本文,GP6通过gpinitsystem工具创建文件空间并初始化集群,方便多了。

9e7a6b327a7de5e6913aaa588ca567e9.png

传统的GP集群中,Segment服务器配置了2个RAID组,每个组中多个磁盘驱动器。挂载为/data1和/dadta2。Primary和mirror的segment目录位于其中。表和索引等所有对象都存储再段目录中。此外,查询期间创建的临时文件也写入这2个文件系统中。

84043d811cbd53c01e329b4ce4087c18.png

随着技术的不断进步,服务器有了相当大的改进和更新,允许更加灵活和强大的GP配置。以Dell PowerEdge R940为例,它可以管理TB的RAM,有4个CPU插槽来配置大量的Intel CPU内核,可以配置传统硬盘驱动器和较新的固态硬盘的组合,此外配置多大12个NVME SSD。

通过添加 Dell PowerVault MD3460 存储单元,驱动器扩展和整体多层磁盘配置可以更进一步,最多可容纳 60 个不同类型和大小的驱动器。在这种情况下,可以针对不同使用目的使用不同文件系统组来配置GP。

例如,如果您的 ETL 过程非常频繁地更改数据捕获,需要高速率的 IOPS,则可以使用文件空间和表空间将那些相关的表数据对象隔离到一个快速的、基于 SSD 的 ETL 磁盘暂存区。RAID-5 或 RAID-10 配置中的标准 1.8 TB、10K RPM 驱动器可以安装为更传统的数据目录,以容纳大量的primary和mirror段信息。

容量更大但性能较低的驱动器可用于为历史数据创建一个数据存储区域,这些数据不常被查询,但仍需要在线并可供用户使用以收集信息。最后,可以将临时文件重定向到备用存储区域,以实现快速数据访问流水线和处理。

76ddc0eeb47823aebb443cf7c4ec40f3.png

那么云中如何配置 Greenplum 呢?好吧,事实证明,亚马逊等公共云提供商提供了许多可以在虚拟机上配置的分层存储选项。例如,使用文件空间和表空间,可以在吞吐量优化的 EBS 卷中为传统数据集创建表和索引组,同时为临时文件和潜在的 ETL 工作使用预配置 IOPS SSD。为了在 Greenplum 内部表中长期保留数据,可以考虑使用 Amazon 的 Cold Storage HDD 选项。

71d50dc5e5cb3890e9c3a7af8ed38f2b.png

在 Greenplum 中,物理卷被分配为一个文件空间。这是磁盘上存储对象、数据和索引页的物理位置。要定义一个文件空间,primary、mirror和master必须有一个可用的物理位置。

要创建文件空间,请使用 gpfilespace 工具。在创建时,管理员提供文件空间的名称和primary、mirror和master的物理路径以用于对象存储。一旦在集群中创建,管理员就可以创建一个映射到先前创建的文件空间的逻辑表空间。从那里开始,可以在创建表和索引等对象时使用表空间名称。

表空间和文件空间示例

2fef5cb86db5c99a30a3a63913f230ec.png

为了演示此功能的使用,使用在 Ubuntu Server 16.04 LTS 上运行的开源 Greenplum 5.4.0 在 Amazon EC2 中部署了一个三节点集群。这些实例配置了 Thoroughput Optimized 和 Cold 硬盘驱动器 EBS 卷。

499779c3d7ee8263922bc88f43f85d2f.png

彻底优化的 EBS 卷用于标准 /data1 和 /data2 文件系统。冷硬盘 EBS 卷用于 /historical 文件系统,其中创建了用户定义的文件空间。然后可以使用任何支持表空间子句的对象来定位 /historical 磁盘卷中的数据。

47f1c143d772a6a3f3a89bd303e44665.png

一旦在 Greenplum 集群中的所有节点上分配了一个磁盘卷,从主节点以用户 gpadmin 的身份,使用 -o 运行 gpfilespace 实用程序。生成默认配置文件的选项。为文件空间提供名称,为主段和镜像段提供基本路径以定位相关段目录。此外,还提供了主段的路径,以便主进程可以跟踪集群中哪些对象位于指定的文件空间/表空间中。通过向实用程序提供所有必需的参数,它将生成一个配置文件 (gpfilespace_config_yyyymmdd_xxxx) 以用于文件空间创建过程。

f3ec03291ff2280a2246923e426791af.png

使用–gpconfig 选项重新运行 gpfilespace,以及在前面的步骤中生成的配置文件。Greenplum 将尝试在集群中提供的磁盘卷上创建一个新的文件空间。

41eff001bfe4f9232fdac3a03b86ae86.png

一旦创建了文件空间,就需要使用 CREATE TABLESPACE 命令将物理位置映射到逻辑名称。这将创建一个可全局寻址的名称,然后可将其用于在其定义中支持 TABLESPACE 子句的任何对象。pg_tables 和 pg_indexes 系统目录表为每个项目(默认的或命名的表空间)提供表空间位置。

使用表空间进行备份和恢复

8631f811b34024c2a0cc7c60d557e157.png

对于表空间和文件空间,gpcrondump 并行备份在 Greenplum 中的运行方式没有变化。仍然为集群中的每个主数据库段创建生成的 gp_dump 文件,并在主数据库上提供支持段/模式文件。

718546dbd6daa1b74b9b3cab7a8ea837.png

在主节点上,备份目录中有包含逻辑模式对象定义的模式创建文件和后数据文件。正是在这些模式文件中定义了命名表空间。在恢复 Greenplum 备份之前,确保文件空间的底层磁盘卷存在,使用 gpfilespace 实用程序重新创建文件空间(如果需要),所有卷都可以跨集群访问。

在具有文件空间的集群上运行 GPExpand

c8d2e62752fd84518cbd94b81f1238e2.png

在 Greenplum 设置中使用文件空间和表空间的最后一个领域是当集群扩展到更多数据节点时。在新添加的服务器上,确保创建所有必需的磁盘卷并使用在现有数据节点上配置的相同基本目录和权限进行访问。运行初始 gpexpand 进程以生成相关配置文件。

a91488ee421d46571d604e1e023b61d9.png

除了正常的扩展配置文件外,在同一目录下还会创建一个扩展名为.fs 的文件。这包含要用于集群上添加的主段和镜像段的文件空间定义。当 gpexpand 进程第二次运行以在新硬件上执行实际的段扩展时,Greenplum 将自动创建必要的文件空间来存储表空间数据,因为表在新的数据库段上扩展。

原文

https://greenplum.org/greenplum-database-tablespaces/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/349395.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】类与对象(三) 运算符重载 赋值重载 取地址及const取地址操作符重载

前言 本章我们接替前一章继续深入理解类的默认成员函数,赋值重载,取地址重载,及const取地址操作符重载 但是在讲剩下的三个默认成员函数之前,我们要先来了解运算符重载,因为赋值重载,取地址重载&#xff0c…

10分钟学会python对接【OpenAI API篇】

今天学习 OpenAI API,你将能够访问 OpenAI 的强大模型,例如用于自然语言的 GPT-3、用于将自然语言翻译为代码的 Codex 以及用于创建和编辑原始图像的 DALL-E。 首先获取生成 API 密钥 在我们开始使用 OpenAI API 之前,我们需要登录我们的 Op…

Linux 定时任务调度(crontab)整理,太实用了!

crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。可以使用crontab定时处理离线任务,比如每天凌晨2点更新数据等,经常用于系统任务调度。服务启动和关闭…

AWS攻略——创建VPC

文章目录创建一个可以外网访问的VPCCIDR主路由表DestinationTarget主网络ACL入站规则出站规则子网创建EC2测试连接创建互联网网关(IGW)编辑路由表参考资料在 《AWS攻略——VPC初识》一文中,我们在AWS默认的VPC下部署了一台可以SSH访问的机器实…

WRAN翻译

基于小波的图像超分辨残差注意力网络 Wavelet-based residual attention network for image super-resolution 代码: https://github.com/xueshengke/WRANSR-keras 摘要: 图像超分辨率技术是图像处理和计算机视觉领域的一项基础技术。近年来&#xff0c…

【流辰信息技术】做好数据管理,赋能行业全速提升产业效能

在经济快速发展的当下,正是各行各业大展拳脚,全力以赴奔赴产能提升的好契机。做好企业,不仅要有一颗发展雄心,而且还要学会运用正确的技术和发展战略,推动企业向前进。流辰信息技术是低代码开发领域里的服务商&#xf…

自动化测试高频面试题(含答案)

Hello,你们的好朋友来了!今天猜猜我给大家带来点啥干货呢?最近很多小伙伴出去面试的时候经常会被问到跟自动化测试相关的面试题。所以,今天特意给大家整理了一些经常被公司问到的自动化测试相关的面试题。停,咱先收藏起…

「团队管理」前端开发者如何规划并构建UCD的中长期前端开发能力与团队

文章目录 前言一、个人规划1.1 技能和知识的提升1.2 用户研究和用户体验1.3 团队协作能力1.4 项目管理和交付能力1.5 技术创新和开发效率二、构建UCD团队2.1 人才招聘和培养2.2 角色定义和分工2.3 团队文化和价值观前言 UCD(用户中心设计)是一种基于用户需求的设计方法论,将…

五千字总结一枚测试妹纸不平凡的2022

大家好,我是美团程序员,一个混过大厂,待过创业公司,爱给开发同学提Bug的测试妹纸一枚。2022年,是工作的第六年,也是具有突破性成长的一年,一直挺喜欢六这个数字,果然不负期望&#x…

C控制语句(if,switch,goto)

一.if 1.if循环语句格式 if(expression1) statement1 else if(expression2) statement2 else if(expression3) statement3 . . . else statement(n) else if 可以使用也可以不是用。 这里我们用一个例子进行讲解 2.if else 注意事项 If else if else之间只允许有一条语句&…

Shell - 随时启动 + 固定时间启动脚本

一.引言 有一个线上任务需要在每 10 min内的 5min 后执行,例如 5:10、15:10 ...、55: 10,正常情况下需要查看 Clock Time,待时间到达 5min 后手动启动,下面实现随时启动脚本,定时在 x5:10 点执行。 二.实现 A.固定 5…

【第0天】SQL快速入门-了解MySQL存储引擎(SQL 小虚竹)

回城传送–》《32天SQL筑基》 文章目录零、前言一、什么是数据库引擎二、MYSQL中有哪些数据库引擎2.1、MyISAM2.2、Memoey2.3、InnoDB三、MyISAM和InnoDB的区别3.1、MYSQL版本支持默认引擎不同MyISAMInnoDB3.2、数据的存储结构不同MyISAMInnoDB3.3、存储空间的消耗不同MyISAMIn…

新闻稿写作指南

当你想要传达一则新闻,写一份新闻稿是非常必要的。新闻稿的目的是让读者了解某个事件或信息,以及提供与之相关的背景信息和重要细节。以下是新闻稿的写作指南,帮助你写出一份清晰、简洁、有价值的新闻稿。1、选择一个有新闻价值的主题你的新闻…

MySQL参数优化之join_buffer_size

1.查看当前值 show variables like %join_buffer_size%mysql默认该设置为128 或 256 或512k,各个版本有所出入 2.作用范围 在mysql中表和表进行join时候,无论是两个表之间还是多个表之间,join的情况大致分为下面几种情况 join key 有索引 …

leaflet 设置一个图层或者多个图层的透明度(075)

第075个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中如何设置一个图层或者多个图层的透明度,利用了layer的setOpacity方法。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共137行)相关API参考:专…

Windows保护机制GS:原理及SEH异常处理突破

前言 本次文章只用于技术讨论,学习,切勿用于非法用途,用于非法用途与本人无关! 所有环境均为本地环境分析,且在本机进行学习。 GS机制并没有对SEH提供保护,换句话说我们可以通过攻击程序的异常处理达到绕…

【java 高并发编程之JUC】2w字带你JUC从入门到精通

点击查看脑图目录地址,实时更新 1 什么是 JUC 1.1 JUC 简介 在 Java 中,线程部分是一个重点,本篇文章说的 JUC 也是关于线程的。JUC 就是 java.util .concurrent 工具包的简称。这是一个处理线程的工具包,JDK 1.5 开始出现的。 1.2 进程与…

Leetcode_part1

Content [1. Two Sum](https://leetcode.com/problems/two-sum/)Solution 1Solution 2[递归: 17. 电话号码的字母组合](https://leetcode.com/problems/letter-combinations-of-a-phone-number/)Solution 1 暴力Soulution 2 回溯Solution 3 队列[18. 四数之和](https://leetcod…

app截图+识别截图中的文字

在自动化测试的过程中,我们会经常遇到需要进行文字识别的场景,比如 识别验证码、识别截图中的文字、读取截图中的数值 等等,遇到这些情况时我们可以如何处理呢? 本机要有PaddleOCR环境,PaddleOCR可参考我另一篇 Padd…

存储类别、链接与内存管理(二)

0、前言概要 本篇来自于我的另外一篇博客存储类别、链接与内存管理(一)的续篇,主要分析了C语言中的不同存储类别、关键字以及使用的注意事项 1、自动变量 (1)属性 自动存储期、块作用域、无连接 (2&a…