logo logo
您的位置 :首页 > 新闻中心
GreenPlum数据库研究与架构简介
发布时间 : 2021-04-02 01:12:13 浏览: 74次 来源:【jake推荐】 作者:-=Jake=-

简介

Greenplum数据库是大规模并行处理(MPP)数据库服务器。它的体系结构专为管理大型分析数据仓库和商业智能工作负载而设计。

Greenplum数据库基于PostgreSQL开源技术。它本质上是一个紧密集成的数据库管理系统(DBMS),由多个PostgreSQL面向磁盘的数据库实例协同工作构成。在大多数情况下,它的SQL支持,功能,配置选项和最终用户功能与PostgreSQL非常相似。与Greenplum Database进行交互的数据库用户会觉得他们正在使用常规的PostgreSQL DBMS。

Greenplum数据库与PostgreSQL之间的主要区别是:

Greenplum数据库还包含旨在针对商业智能(BI)工作负载优化PostgreSQL的功能。例如,Greenplum添加了并行数据加载(外部表),资源管理,查询优化和存储增强功能,而这在PostgreSQL中是找不到的。 Greenplum开发的许多功能和优化已在PostgreSQL社区中占有一席之地。例如,表分区最初是Greenplum开发的功能,现在已经出现在标准PostgreSQL中。

总体类别

计算

计算+接口

计算+存储+界面

存储

Greenplum数据库可以使用附加优化(AO)的存储格式来批量加载和读取数据,并且可以在HEAP表上提供性能优势。附加的优化存储为数据保护,压缩和行/列方向提供校验和。可以压缩为添加行或列而优化的表。

Greenplum数据库支持多种存储模型和混合存储模型。用户创建表时,用户选择如何存储其数据。

堆存储

默认情况下,Greenplum数据库使用与PostgreSQL相同的堆存储模型。堆表存储在OLTP类型的负载下表现最佳,在这种情况下,数据在初始加载后经常被修改。 UPDATE和DELETE操作需要存储行级版本信息006直播 ,以确保可靠的数据库事务处理。堆表最适合较小的表,例如维表,这些表在加载初始数据后会经常更新。

其他优化存储(AO表)

其他优化表(存储在数据仓库环境中的非标准表)表现最佳。非规范表通常是系统中最大的表。事实表通常成批加载BG真人 ,并由只读查询访问。将大型事实表更改为其他优化的存储模型可以消除更新每行中可见性信息的负担,这可以为每行节省约20个字节。这样可以使页面结构更简洁,更容易优化。附加优化表的存储模型针对批量数据加载进行了优化,因此不建议使用单行INSERT语句。

选择面向行或面向列的存储

Greenplum提供了面向存储的模型选择:行,列或两者的组合。

对于大多数常见用途或混合负载,面向行的存储提供了灵活性和性能的最佳组合。但是,在某些情况下,面向列的存储模型可以提供更有效的I / O和存储。在确定表的存储方向模型时,请考虑以下要求:

对于其他优化表,Greenplum数据库中提供了两种类型的基础压缩:

下表总结了可用的压缩算法。

表1.用于添加和优化表的压缩算法。表格方向可用的压缩类型支持的算法

jdbc获取表字段注释_greenplum 获取表结构_sql server 获取视图结构

ZLIB,ZSTD和QUICKLZ1

列和表

RLE_TYPE,ZLIB,ZSTD和QUICKLZ1

注意:1QuickLZ压缩在Greenplum数据库的开源版本中不可用。

为附加优化表选择压缩类型和级别时,请考虑以下因素:

外部表:外部表的数据存储在外部(该数据不受Greenplum管理),并且Greenplum中仅存在外部表的元数据信息。 Greenplum支持许多外部数据源,例如S 3、 HDFS,文件,Gemfire,各种关系数据库等,以及多种数据格式,例如Text,CSV,Avrogreenplum 获取表结构,Parquet等。

存储引擎

我没有发现使用了什么数据结构,但是压缩,分区和索引编制全部可用

平台管理架构

Greenplum数据库查询使用火山查询引擎模型,执行引擎获取执行计划并使用它来生成物理运算符树,然后通过物理运算符计算表,最后将结果作为查询响应返回。

Greenplum数据库通过在多个服务器或主机上分配数据和处理负载来存储和处理大量数据。 Greenplum数据库是由基于PostgreSQL 9. 4的数据库组成的数组。阵列中的数据库一起工作以呈现单个数据库。 Master是Greenplum数据库系统的入口。客户端将连接到该数据库实例并提交SQL语句。主机将与系统中称为“段”的其他数据库实例进行协调并一起工作。段负责存储和处理数据。

图1. Greenplum高级数据库体系结构

greenplum 获取表结构

关于Greenplum Master

Greenplum数据库主数据库是整个Greenplum数据库系统的入口。它接受连接和SQL查询,并将工作分配给分段实例。当Greenplum数据库的最终用户(通过Master)与Greenplum数据库进行交互时,他们会感觉到他们正在与典型的PostgreSQL数据库进行交互。

主目录是全局系统目录的位置。全局系统目录是一组系统表,其中包含有关Greenplum数据库系统本身的元数据。主服务器不包含任何用户数据,该数据仅存在于段中。主服务器将对客户端连接进行身份验证,处理传入的SQL命令,在各段之间分配工作量,协调每个段返回的结果,并将最终结果呈现给客户端程序。

Greenplum数据库使用预写日志(WAL)来实现主/备用镜像。在基于WAL的日志中,所有修改都会在应用之前写入日志,以确保所处理的任何操作的数据完整性。

关于Greenplum细分

Greenplum数据库的Segment实例是独立的PostgreSQL数据库,每个数据库都存储一部分数据并执行查询处理的主要部分。

当用户通过Greenplum Master连接到数据库并发出查询时,将在每个段数据库上创建一些过程来处理查询的工作。

段在称为段主机的服务器上运行。段主机通常运行2到8个Greenplum段,具体取决于CPU内核,RAM,存储,网络接口和工作负载的数量。段在称为段主机的服务器上运行。分段主机通常运行2到8个Greenplum分段,具体取决于CPU内核,RAM,存储,网络接口和工作负载的数量。

关于Greenplum的互连

Interconect是Greenplum数据库体系结构中的网络层。

互连是指段与该通信所依赖的网络基础结构之间的进程间通信。 Greenplum的互连使用标准的以太网交换网络。出于性能原因,建议使用10 Gb网络或更快的系统。

默认情况下,互连使用带有流控制的用户数据报协议(UDPIFC)在网络上发送消息。 Greenplum软件在UDP之上执行数据包验证。这意味着它的可靠性等同于传输控制协议(TCP),并且其性能和可伸缩性超过TCP。如果将互连更改为TCP,则Greenplum数据库将具有1000个Segment实例的可伸缩性限制。对于互连的默认协议UDPIFC,没有这样的限制。

关于表分区

分区不会更改表数据在段之间的物理分布。表分布是物理的:Greenplum Database在物理上将分区表和未分区表划分为多个段,以实现并行查询处理。表分区是合乎逻辑的:Greenplum Database在逻辑上划分了大表,以提高查询性能并简化数据仓库维护任务。

Greenplum数据库支持:

关于数据分发策略

Greenplum 6提供以下数据分发策略。

部署

安装

没有自动安装,您需要手动配置集群的各种选项

文档

提供了完整的安装,操作和维护文档

升级

如果是6. x,则可以使用该工具升级到最新版本,如果是旧版本,则需要使用数据迁移

高可用性

Greenplum数据库系统的高可用性可以通过提供容错硬件平台,启用Greenplum数据库高可用性功能或执行常规监视以及操作和维护操作来确保整个系统的所有组件来实现。系统保持健康。

硬件平台的最终故障可能是由于常见的持续性操作故障或意外的操作环境引起的。异常电源故障将导致该组件暂时不可用。系统可以为即使在发生异常情况下也无法确保不中断服务提供的节点配置冗余备份节点。在某些情况下,系统冗余的成本高于用户的服务终端容忍度。此时,可以更改高可用性的目标greenplum 获取表结构,以确保可以在预期的时间内恢复服务。

Greenplum数据库的容错性和高可用性是通过以下方式实现的:

硬件级RAID

Greenplum数据库部署的最佳实践是在单个磁盘出现故障的情况下,使用硬件级RAID提供高性能的磁盘冗余,而仅避免了数据库级的容错机制。这种方法可以在磁盘级别提供低级别的冗余保护。

数据存储总和检查

Greenplum数据库使用总和检查机制来验证从磁盘加载到内存的数据在文件系统上是否没有损坏。

greenplum 获取表结构_jdbc获取表字段注释_sql server 获取视图结构

Greenplum数据库有两种存储用户数据的方法:堆表和追加优化表。两种存储模型都使用总和检查机制来验证从文件系统读取的数据。在默认配置下,这两种存储模型使用总和检查机制以基本相似的方式验证错误。

Greenplum数据库主实例和细分实例在其管理的自己的内存中更新页面上的数据。更新内存页面并将其刷新到磁盘后,将执行总和检查并保存。下次从磁盘读取页面数据时,首先执行总和检查,只有成功通过验证的数据才能进入管理内存。如果总和检查失败,则表示文件系统已损坏等。这时,Greenplum数据库将生成错误并中断事务。

段镜像

Greenplum数据库将数据存储在多个细分实例中。每个实例都是Greenplum数据库的PostgreSQL实例。数据根据表创建语句中定义的分配策略在段节点之间分配。启用段镜像后,每个段实例均由一对主镜像组成。镜像段采用预写日志(WAL)流复制方法,以使数据与主段保持一致。

主镜

在高可用性群集中,有两种类型的主实例,即主实例和备用实例。像段一样,主服务器和备用服务器应部署在不同的主机上,以确保群集不会出现单节点故障。客户端只能连接到主主机并在其上执行查询。备用主服务器使用预写日志(WAL)流复制来使数据与主主服务器保持一致。

双集群

可以通过维护两个Greenplum数据库集群来提供额外的冗余,这两个集群都存储相同的数据。

备份和还原

建议经常备份数据库,以确保一旦出现问题就可以轻松地重新生成数据库集群。备份可以很好地防止误操作,软件错误和硬件错误。

监视和控制

Greenplum数据库提供了标准的命令行工具来执行常见的监视和管理任务。

Greenplum的命令行工具位于$ GPHOME / bin目录中凤凰彩票 ,并在主控主机上执行。 Greenplum提供了用于以下管理任务的实用工具:

在管理和控制方面:

监控:

监控数据库的活动和性能

Greenplum数据库包括一个可选的系统监视和管理数据库gpperfmon,管理员可以选择启用它。

监控系统状态

Greenplum数据库系统由多台机器上的多个PostgreSQL实例(主实例和段实例)组成。要监视Greenplum数据库系统,您需要了解整个系统的信息以及各个实例的状态信息。 gpstate工具提供有关Greenplum数据库系统状态的信息。

(还有SQL标准错误代码)

错误查询

如果由于段故障导致整个Greenplum数据库系统无法运行(例如,如果未启用镜像或没有足够的段在线访问所有用户数据),则用户在尝试连接到数据库时将看到错误。数据库。返回到客户端程序的错误可能表示失败。

如果启用了镜像,则在主网段关闭后,Greenplum数据库将自动故障转移到镜像网段。镜像的网段承担着主网段的角色和功能,发生故障的主网段成为镜像,用户不会感觉到该网段是由故障引起的。

检测子进程时出错

在Greenplum数据库主控主机上,Postgres的postmaster进程创建一个错误检测子进程ftsprobe。此过程也称为FTS(容错服务器)过程。如果FTS进程失败,则邮局主管将重新启动该进程。 FTS过程是循环执行的,每个循环之间会有一个暂停。在每个周期中,FTS从gp_segment_configuration系统表中获取每个主要网段实例的主机名和端口号,并通过建立TCP套接字连接以检测网段状态来连接到网段实例。

当系统中只有主段是正常的并且其相应的镜像失败时,主段将进入不同步状态并继续记录数据库日志更改。修复镜像后,可以同步这些更改亚博直播 ,而无需从主段执行。完整副本。

gpstate工具

使用-e选项运行gpstate工具,以显示单个主段和镜像段实例的所有问题。 gpstate的其他一些选项还可以显示有关所有主要段或镜像段实例的信息。

系统表

您还可以从系统表gp_segment_configuration中查看当前模式:s(同步状态)n(非同步状态)和当前状态u(在线)ord(离线)。

检查日志文件

日志文件可以提供信息,以帮助确定错误原因。 Master和Segment的每个实例在其数据目录的pg_log中都有其自己的日志文件。主日志文件包含大多数信息,应始终首先检查它。

gplogfilter工具可用于检查Greenplum数据库日志文件。如果要检查段日志文件,请使用gpssh在段主机上执行gplogfilter工具。

性能

Greenplum:4个8核56G,9段表:列存储,无索引

tidb:6个8核56G,固态硬盘

greenplum 获取表结构

greenplum 获取表结构

greenplum在3亿级多表关联查询比较测试中表现良好,当时是5. 7版,现在已更新为6. 10版,速度应该更快

接口

全部支持添加,删除,修改和检查,并且文档非常全面。

应用程序优势

SQL标准

它通过SQL 2003 OLAP控制功能完全支持SQL-92和SQL-99。所有查询信息都在整个系统上并行执行。

统一的分析和处理

所有查询和分析(SQL,MapReduce,R等)操作都可以在同一并行数据流引擎上执行,从而使分析人员,开发人员和统计人员可以使用相同的基础结构进行数据分析。

可编程并行分析

为从事计算和统计的人员提供更高级的并行分析功能,并支持R,线性代数和机器学习功能。

数据库内压缩

采用行业领先的压缩技术,以提高性能,同时大大减少存储数据所需的空间。客户可以将使用的空间减少3到10倍,并提高有效的I / O性能。

十亿字节规模的数据加载操作

高性能并行数据加载器可以在所有节点上同时执行操作,并且加载速度超过4. 5TB /小时。

随时随地访问数据

无论数据的位置,格式或存储介质如何,都可以从数据库到外部数据源执行查询操作,并且可以并行地将数据返回数据库。

动态扩展

帮助公司进行便利的小规模或大规模数据仓库扩展,同时避免高成本的设备或SMP服务器升级。

工作量管理

允许管理员创建基于角色的资源队列以划分资源并管理系统负载。

集中管理

提供集群级管理工具和资源,以帮助管理员像服务器一样管理整个Greenplum数据库平台。

性能监控

通过图形性能监视功能,用户可以确定当前的运行状况和历史查询信息,并跟踪系统使用情况和资源信息。

支持索引

Greenplum支持二进制搜索树,哈希,位图,GiST和GIN,它们可以实现各种索引功能,并为数据架构师提供实现优化设计所必需的工具。

行业标准界面

支持标准数据库接口(SQL,ODBC,JDBC,DBI),并且可以与市场上的高级商业智能和提取/转换/加载(ETL)工具进行互操作。

约束

(我在互联网上找不到任何相关信息)

1.根据我发现的性能测试,GP数据库支持的数据量处于gb和tb级别。当数据量达到pb级别时,gp的性能将达不到如此之快

2.由于gp数据库会将每个查询分发到每个节点以进行并发执行,因此当SQL并发性相对较高时,gp数据库的性能将下降很多。

3.由于体系结构本身的问题凤凰彩票app ,群集在扩展期间需要等待数据重新分发。尽管提出了一致的哈希算法,但是此过程非常缓慢(以前甚至无法在线扩展,而在版本6之后可以在线扩展。上一页)

返回新闻资讯