Greenplum 数据库开发基础
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
segment host
primary segment mirror segment
segment host
primary segment mirror segment
segment host
primary segment mirror segment
China Construction Bank. | 12
Greenplum 数据库开发基础
2014年10月
学习 ·创造 ·超越 ·共享
1
目录
Greenplum概述和数据分布 数据加载和外部表 客户端工具
Greenplum数据库基础 Greenplum与Oracle
优化策略 其他要ห้องสมุดไป่ตู้及示例
China Construction Bank. | 2
MPP架构
dt date
qty integer product
prc float
part 1
vendor part 1
sale
vendpoarrt 2
vn intceugsetromer vname tpeaxrtt 2 loc text
product part 2
prodvupeacnrdtt o2r
pn integer pname text
China Construction Bank. | 4
Greenplum基本架构
MPP (Massively Parallel Processing) Shared-Nothing Architecture
Master Severs
...
Query planning & dispatch
Network Interconnect
循环分布
CREATE TABLE … DISTRIBUTED RANDOMLY
具有同样数值的行内容并不一定在同一个Segment上
input rows BABCCAAC
master
assign next
segments
S1 CCC S2AAA
S3 BB
segments
S1
C C
A
S3 A B
S2 CA B
MPP
无共享 例如:
Greenplum
Master
网络
DB DB DB DB
磁盘 磁盘 磁盘 磁盘
注:蓝灰色表示共享资源
China Construction Bank. | 3
MPP无共享架构的优势
Interconnect Loading
• 数据分布在所有的并行节点上
– 每个节点只处理其中一部分数据
China Construction Bank. | 9
Segment
Segment Host Segment Host Segment Host
❖ 每段(Segment)存放一部分用户数据 ❖ 一个系统可以有多段 ❖ 用户不能直接存取访问 ❖ 所有对段的访问都经过Master ❖用户查询SQL的执行
Segment Severs
...
Query processing & data storage
External Sources
Loading, streaming, etc.
SQL MapReduce
...
...
China Construction Bank. | 5
Greenplum的并行处理特性
❖ 行或列存储模式 列模式目前只支持Append Only 如果常用的查询只取表中少量字段,则列模式效率更高,如查询需要取 表中的大量字段,行模式效率更高 语法: CREATE TABLE sales2 (LIKE sales) WITH (appendonly=true, orientation=column);
Master/Standby 镜像保护
primary master host
standby master host
System Catalogs
System Catalogs
Transaction Logs
synchronization process
Transaction Logs
Standby 实时与 Master 节点的 Catalog 和事务日志保持同步 Standby 节点用于当 Primary Master 节点损坏时提供 Master 服务
China Construction Bank. | 11
Greenplum 高可用性体系架构
standby master host
standby master
synch process
master host
master instance
client
gigabit ethernet (private LAN)
greenplum基本体系架构segmenthostsegmenthostsegmenthostsegmenthostclientmasterhostlan客户端接口和程序psqlpgadminiiiodbcdatadirectjdbcperldbipythonlibpqoledbclientmasterhost访问系统的入口建立不客户端的连接和管理sql的解析并形成执行计划执行计划向segment的分发收集segment的执行结果协调工作处理过程master丌存储业务数据只存储系统目录表和元数据数据字典masterhost所有对段的访问都经过master用户查询sql的执行segmenthostsegmenthostsegmenthostsegmenthost10interconnectgreenplum数据库之间的连接层进程间协调和管理基于千兆以太网架构属于系统内部私网配置支持两种协议
China Construction Bank. | 15
分布键(Distribution Keys)
❖用于将数据平均分布到Segments之中的一个或者多个字 段 ❖用表的主键作分布键可以使数据分布均匀 ❖建表时使用 DISTRIBUTED BY 子句定义表的分布键
CREATE TABLE sales (dt date,
Hash
Table Scan SLICE 1
Table Scan
SLICE 2
China Construction Bank. | 21
压缩存储和行列存储
❖ 压缩存储 支持ZLIB和QUICKLZ方式的压缩,压缩比可到10:1 压缩表只能是Append Only方式 压缩数据不一定会带来性能的下降,压缩表将消耗CPU资源,而减少I/O 资源占用 语法 CREATE TABLE foo (a int, b text) WITH (appendonly=true, compresstype=zlib, compresslevel=5);
gang
QE process slice 2
gang
QE process slice 1
segment1
QE process slice 2
QE process slice 1
segment2
China Construction Bank. | 20
并行查询计划
SELECT customer, amount FROM sales JOIN customer USING (cust_id) WHERE date=04302008;
Order
43 Oct 20 2005 12 64 Oct 20 2005 11 45 Oct 20 2005 42 46 Oct 20 2005 64 77 Oct 20 2005 32 48 Oct 20 2005 12 50 Oct 20 2005 34 56 Oct 20 2005 21 63 Oct 20 2005 15 44 Oct 20 2005 10 53 Oct 20 2005 82 55 Oct 20 2005 55
Segment Host Segment Host Segment Host Segment Host
China Construction Bank. | 7
客户端接口和程序 Client
psql pgAdmin III ODBC/Datadirect JDBC Perl DBI Python libpq OLE DB
prc float, qty int, cust_id int, prod_id int, vend_id int) DISTRIBUTED BY (dt, cust_id, prod_id);
❖如果表没有主键,或者没有合适的字段作为分布键,可以 使用随机分布键 (DISTRIBUTED RANDOMLY) ❖如果没有明确定义分布键,系统会把第一个字段作为表的 分布键
segment 3
sale part 3
customer part 3
product part 3
vendor part 3
China Construction Bank. | 17
Order # Order Date Customer ID
数据均匀分布- 并行处理的关键
策略: 数据尽可能的均匀分布到每个节点
Segment 2 (primary)
Segment n (mirror)
segment host n
Segment n (primary)
Segment 1 (mirror)
每个Segment的数据冗余存放在另一个Segment上,数据实时同步 当Primary Segment失败时,Mirror Segment将自动提供服务 Primary Segment恢复正常后,使用gprecoverseg –F 同步数据。
China Construction Bank. | 13
数据冗余-Segment 镜像保护
master host
global catalog Greenplum Master
segment host 1
Segment 1 (primary)
Segment 2 (mirror)
segment host 2
MPP (Massively Parallel Processing) Shared-Nothing Architecture
完全共享 例如: SMP服务器
共享磁盘 例如: Informix XPS Oracle RAC DB2 pureScale
网络
DB
DB DB DB DB
SAN/FC
磁盘
SAN/共享磁盘
China Construction Bank. | 8
Master Host
Master Host
访问系统的入口 建立与客户端的连接和管理 SQL的解析并形成执行计划 执行计划向Segment的分发 收集Segment的执行结果 协调工作处理过程 Master不存储业务数据,只存储系 统目录表和元数据(数据字典)
• 最优化的I/O处理
– 所有的节点同时进行并行处理 – 节点之间完全无共享,无I/O冲突
• 自动化的并行处理机制
– 内部处理自动化并行,无需人工分区或优化 – 加载与访问方式与一般数据库相同
• 最易于扩展的架构
– BI和数据分析的最佳选择
• 增加节点实现线性扩展
– 增加节点可线性增加存储、查询和加载性能
SEGMENT 2
SEGMENT 1
SLICE 3
SLICE 3
Gather Motion
Gather Motion
Hash Join
Hash
Redistribute Motion
Table Scan SLICE 2
Table Scan SLICE 1
Hash Join
Redistribute Motion
❖ 客户端访问及第三方工具支持
▪ 完全支持数据库技术接口标准,例如: SQL, ODBC, JDBC, OLEDB等。同时,广泛 地支持各个BI和ETL软件工具。
China Construction Bank. | 6
Greenplum 基本体系架构
LAN Client
Master Host
Interconnect—千兆以太网交换机
China Construction Bank. | 18
查询命令的执行
Client
query plan
Master
Segments Segments Segments Segments
China Construction Bank. | 19
SQL查询处理机制
master
gang
QD process slice 3
China Construction Bank. | 14
表分布的策略-并行计算的基础
Hash分布
CREATE TABLE … DISTRIBUTED BY (column [,…]) 同样数值的内容被分配到同一个Segment上
input rows BABCCAAC
master
hash assign
China Construction Bank. | 16
分布存储
master
segment 1
customer
cn integer cnamseegtemxtent 2
global catalog
sale sale
part 1
cn integer
vn integer customer
pn integer part 1
Segment Host
China Construction Bank. | 10
Interconnect - Gigabit Ethernet Switch
Interconnect
❖ Greenplum数据库之间的连接层 ❖ 进程间协调和管理
LAN
❖ 基于千兆以太网架构 ❖ 属于系统内部私网配置 ❖ 支持两种协议:TCP or UDP
❖ 并行处理由系统自动完成,无需人工干预
▪ 所有数据均匀分布到所有节点,每个节点都计算自己的部分数据,所以并行处理 无需人工干预,系统自动完成。
❖ 无需复杂的调优需求,只需要加载数据和查询
▪ DBA工作量极少,无需复杂的调优工作和维护工作。
❖ 扩展性 ▪ 可线性扩展到10,000个节点
▪ 每增加一个节点,查询、加载性能都成线性增长