一、并行和分布式
1、海量并行处理(DBMS)
2、基于pg 8.2
(1)相同的客户端功能。
(2)增加支持并行处理的技术。
(3)增加支持数据仓库和BI的特性:外部表/并行加载
资源管理:查询优化器增强。
3、分布式计算
分布式系统是建立在网络之上的软件系统。分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
(1)内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统。
(2)透明性:是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地的还是远程的。在分布式数据库系统中,用户感觉不到数据是分布的,即用户无需知道关系是否分隔、有无副本、数据存于那个站点以及事务在那个站点上执行等。
(3)分布式计算是演讲如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
二、Greenplum架构分析
GP是一种基于pg的分布式数据库,其采用的Shared-Nothing架构(MPP),主机、操作系统、内存、存储都是自我控制的,不存在共享。gp架构主要由Master Host、Segment Host、Interconnect三大部分组成。
PS:Shared Nothing结构
该结构有多个完全独立的处理节点构成,每个处理节点具有自己独立的处理器、独立的内存(主存储器)和独立的磁盘存储,多个处理节点在处理器由高速通信网络连接,系统中的各个处理器使用自己的内存独立地处理自己的数据。
在这种结构中,每一个处理节点就是一个小型的数据库系统,多个节点一起构成整个的分布式的并行数据库系统。由于每一个处理器使用自己的资源处理自己的数据,不存在内存和磁盘的争用,从而提高了整体性能。另外这种结构具有优良的可扩展性,只需增加额外的处理节点,就可以接近线性的比例增加系统的处理能力。
1、Master Host
Master Host 是 gp 数据库系统的入口,它接受客户端的连接请求、负责权限认证、处理 sql 命令(sql 的解析并形成执行计划)、分发执行计划、汇总 Segment 的执行结果、返回执行结果给客户端。由于 gp 数据库是基于 PostgreSQL 数据库的,终端用户通过 Master 同数据库交互就如同操作一个普通的 PostgreSQL 数据库。用户可以使用 PostgreSQL 或者 JDBC、ODBC等应用程序接口连接数据库。gp 不存储业务数据,仅存储数据字典。
2、Segment Host
Segment Host 负责业务数据的存储和读取、用户查询 sql 的执行。gp 数据库的性能由一组 Segment 服务中最慢的 Segment 决定,因此要确保基本的运行 gp 数据的硬件与操作系统在同一性能级别,同样建议在 gp 数据系统中的所有 Segment 机器有一样的资源与配置。
3、Interconnect
Interconnect 是 gp 数据库的网络层,在每个 Segment 中起到一个 IPC 的作用(Inter-Process Communication)。gp 数据库推荐使用标准的千兆以太网交换机来做 Interconnect。在默认情况下,Interconnect 使用的是 UDP 协议来进行传输,因为在 gp 的软件当中,没有其他包去检查和验证 UDP,所以 UDP 协议在可靠性上等同于 TCP 协议,并且超过了 TCP 的性能和可扩展性,而且使用 TCP 协议会有一个限制,最大只能使用 1000 个 Segment 实例。
三、冗余与故障切换
greenplum数据库配置镜像节点之后,当主节点不可用时会自动切换至镜像节点,集群仍然保持可用状态。当主节点恢复并启动之后,主节点会自动恢复期间的变更。只要Master不能连接上Segment实例时,就会在系统表中将此实例标识为不可用,并用镜像节点来代替。
镜像节点一般需要和主节点位于不同服务器上。
可以为Master节点配置镜像,确保系统的变更信息不会丢失,提升系统的健壮性:
另外,还需要从网络配置上确保节点之间的网络交互的高可用:
四、数据分布及负载均衡
在 gp 数据库中所有表都是分布式的,所以每一张表都会被切片,每个 Segment 实例数据库会存放相应的数据片段。切片规则可由用户定义,可选的方案有根据用户对没一张表指定的 Hash Key 进行 Hash 分片或者选择随机分片。当我们需要进行数据分析时,所有的 Segment 实例同时工作,由于每个 Segment 只需要计算一部分数据,所以计算效率将会大大提升。这正是 gp 数据库分布式计算提升性能的关键所在。
(1)Hash Distribution
当选择Hash Distribution策略时,可指定表的一列或者多列组合。gp会根据指定的Hash Key 列计算每一行数据对应的hash值,并映射至相应的Segment实例。gp数据库默认会采用Hash Distribution,如果创建表是未指定Distribution key,则会选择Primary Key 作为Distributed key,如果Primary key 也不存在,就会选择表的第一列作为Distribution Key。
(2)Random Distribution
当选择 Random Distribution 时,数据将会随机分配至 Segment,相同值的数据行不一定会分发至同一个 Segment。虽然 Random Distribution 策略可以确保平均分散至所有 Segment,但是在进行表关联分析时,仍然会按照关联键重分布数据,所以 Random Distribution 策略通常不是一个明智的选择。
标签:架构,gp,greenplum,节点,Host,Distribution,Segment,数据库 From: https://www.cnblogs.com/xiao-wang-tong-xue/p/16808016.html