Greenplum 分布式数据库内核揭秘VMware, Inc. Greenplum 分布式数 据库内核揭秘 Greenplum内核开发工程师 2022-03-16 李正龙 Confidential │ ©2021 VMware, Inc. Agenda 2 - Greenplum 分布式数据库简介 - Greenplum 集群化概述 - 分布式数据存储与多态存储 - 分布式查询优化器与执行器 - Greenplum Greenplum 中文社区 3 Confidential │ ©2021 VMware, Inc. Greenplum 分布式数据库简介 Features Confidential │ ©2021 VMware, Inc. 4 Greenplum 是基于 PostgreSQL 所实现的大规模并行处理(MPP)开源数据平台,具有良好的弹性 和线性拓展能力,内置并行存储、并行通信、并行计算和并行优化功能,兼容 容 SQL 标准。拥有独 特的高效的 ORCA 优化器,具有强大、高效的 PB 级数据存储、处理和实时分析能力,同时支持 OLTP 型业务的混合负载。 Greenplum 分布式数据库简介 5 Confidential │ ©2021 VMware, Inc. Greenplum 集群化概述 Coordinator/Segment, Primary/Mirror Confidential0 码力 | 31 页 | 3.95 MB | 1 年前3
Greenplum分布式事务和两阶段提交协议Greenplum中文社区 https://cn.greenplum.org 博文 资料 文档 项目 全新的问答论坛 分布式事务和 两阶段提交协议 6 ● 事务实现原理和Write Ahead Logging(WAL) ● 分布式事务和两阶段提交的原理 ● Greenplum两阶段提交协议的实现 ● Greenplum两阶段提交协议的优化 Outline 7 事务的属性:ACID 事务的属性:ACID 属性 含义 数据库系统的实现 Atomic 原子性 事务中的操作要么全部正确执行,要么完全不 执行。 Write Ahead Logging,分布式事务:两阶段提交协议 Consistency 一致性 数据库系统必须保证事务的执行使得数据库 从一个一致性状态转移到另一个一致性状态。 (满足完整性约束) 实现对A、I、D三个属性的支持 Isolation 隔离性 多个事务并发地执行,对每个事务来说,它并 事务的实现原理和Write Ahead Log(WAL) ● 分布式事务和两阶段提交的原理 ● Greenplum两阶段提交协议的实现 ● Greenplum两阶段提交协议的优化 Outline 22 分布式事务 ● 分布式事务,分布式环境下的事务, 是一个典型的嵌套式事务,一个事务 由多个工作节点的子事务组成。 ● 必须保证参与分布式事务的各个场地 (节点)的事务,要么全部提交,要么 全0 码力 | 42 页 | 2.12 MB | 1 年前3
Greenplum数据仓库UDW - UCloud中立云计算服务商3800G(SSD) 选择数据仓库类型:Greenplum 是 EMC 开源的数据仓库产品、Udpg 是基于 PostgreSQL 开发的⼤规模并⾏、完全托管的 PB 级数据仓库服务。 选择节点个数:UDW 是分布式架构、所有节点数据都是双机热备,实际可⽤总容量略⼩于节点个数*节点磁盘⼤⼩/2,请根据实际数据⼤⼩选择合适的节点。 3.设置数据仓库信息 必选项有数据仓库名称、DB管理员⽤⼾名、管理员密码。可选项有默认DB UCloud 优刻得 41/206 操作指南 Greenplum数据仓库 UDW Copyright © 2012-2021 UCloud 优刻得 42/206 数据仓库扩容过程中需要对数据进⾏重分布,因此,扩容完成的时间根据数据量的⼤⼩⽽不同。⽬前,暂时不⽀持数据仓库的缩容。 更改数据仓库密码 更改数据仓库密码 操作指南 Greenplum数据仓库 UDW Copyright © 2012-2021 CASCADE; 4、表格设计 、表格设计 udw 的表格创建类似于 postgresql,由于 udw 采⽤ mpp 数据,创建表格的时候可以选择不同的数据分布策略,不同的存储⽅式等等。创建表格的时候可以定义下⾯信息: 数据类型 表约束 数据分布策略 表存储模型 分区策略 外部表:udwfile、udwhdfs 下⾯分别根据上⾯的可选信息对表格设计进⾏分析。 4.1 数据类型 数据类型 开发指南0 码力 | 206 页 | 5.35 MB | 1 年前3
Greenplum Database 管理员指南 6.2.1...................................................................................... - 19 - 第二章:分布式数据库概念 ............................................................................................ .................................................................................... - 21 - 解读 GP 分布策略 ................................................................................................ .................................................................................. - 160 - 第八章:数据的分布与倾斜 ...............................................................................................0 码力 | 416 页 | 6.08 MB | 1 年前3
Greenplum 精粹文集SMP(对称多处理)架构难于扩展,并且在 CPU 计算和 IO 吞吐上不 能满足海量数据的计算需求。 分布式存储和分布式计算理论刚刚被提出来,Google 的两篇著名论文 发表后引起业界的关注,一篇是关于 GFS 分布式文件系统,另外一篇 是关于 MapReduce 并行计算框架的理论,分布式计算模式在互联网 行业特别是收索引擎和分词检索等方面获得了巨大成功。 Big Date2.indd 1 16-11-22 下午3:38 2 由此,业界认识到对于海量数据需要一种新的计算模式来支持,这种 模式就是可以支持 Scale-out 横向扩展的分布式并行数据计算技术。 当时,开放的X86服务器技术已经能很好的支持商用,借助高速网络(当 时是千兆以太网)组建的 X86 集群在整体上提供的计算能力已大幅高 于传统 SMP 主机,并且成本很低,横向的扩展性还可带来系统良好 的成长性。 MPP(海量并行处理)计算框架,最终还 是需要软件来实现,Greenplum 正是在这一背景下产生的,借助于分 布式计算思想,Greenplum 实现了基于数据库的分布式数据存储和并 行计算(GoogleMapReduce 实现的是基于文件的分布式数据存储和 计算,我们会在后面比较这两种方法的优劣性)。 话说当年 Greenplum(当时还是一个 Startup 公司,创始人家门口有 一棵青梅 ——0 码力 | 64 页 | 2.73 MB | 1 年前3
Greenplum数据库架构分析及5.x新功能分享Confidential–Inter nal Use Only GPDB:为大数据存储、计算、挖掘而设计 标准 SQL 数据库:ANSI SQL 2008 标准,OLAP,JDBC/ODBC 支持ACID、分布式事务 分布式数据库:线性扩展,支持上百物理节点 企业级数据库:全球大客户超过 1000+ 安装集群 百万行源代码,超过10年的全球研发投入 开源数据库(greenplum.org),良性生态系统 MPP Scatter/Gather 流处理 在线系统扩展 任务管理 服务 加载 & 数据联邦 高速数据加载 近实时数据加载 任意系统数据访问 存储 & 数据访问 混合存储引擎(行存&列存) 多种压缩,多级分区表 索引(B树,位图,GiST) 安全性 语言支持 标准SQL支持,SQL 2003 OLAP扩展 支持 MapReduce 扩展编程语言 (Python,R, Instance Segment Instance Segment Instance 节点N 8 Pivotal Confidential–Inter nal Use Only 数据分布: 并行化的根基 最重要的策略和目标是均匀分布数据到各个数据节点。 43 Oct 20 2005 12 64 Oct 20 2005 111 45 Oct 20 2005 42 46 Oct 20 2005 640 码力 | 44 页 | 8.35 MB | 1 年前3
Pivotal Greenplum 最佳实践分享base的,统计信息的准确性对查询 计划的优劣有很大影响; 对于字段数较多的表,可关闭gp_autostate_mode (on_no_stats=>none),仅对必要列执行Analyze, 只在结果中返回的列无需收集统计信息; 对于频繁创建表删表的系统,可关闭gp_autostate_mode(on_no_stats=> on_change) ,数据变化量达 到一定阀值才收集统计信息; 内对象不要超过10 0000个 最佳实践是出于对系统性能和稳定性因素建议对pg_class 所维护的对象数进行约束 减少对象数的方法: – 提高分区粒度 – 避免大范围使用列存储 pg_class对象数如果不进行约束,可能会产生以下问题: – gprecoverseg –F效率低,数据库实例修复如果增量同步失败,我们一般会建议使用gprecoverseg –F进行全量同 多,将这些目的档重分布到新扩展的节 点时间会很长 – 系统表(pg_class,pg_attribute)太大,影响系统工作效率 – 系统元数据检查pg_checkcat等工具运行时间比较长 物理模型经验分享 物理模型对于系统性能有很大影响,因此需要我们特别关注。 以下来自于在某大型银行的使用经验: 行存储和列存储: • 避免过多使用列存储的原因是防止小档数过多。0 码力 | 41 页 | 1.42 MB | 1 年前3
Greenplum 6新特性:
在线扩容工具GPexpand剖析集群部署 • gp_distribution_policy 字段名 描述 localoid 表的OID policytype 分布类型 ‘p’ 分区 ‘r’ 复制表 numsegments 表分布在多少个节点上 diskkey 分布列的序号 distclass 分布列的操作类 GPExpand简介与具体用法 • GPExpand是Greenplum的扩容工具,可以为集群增加新的节 点来支持更大容量的存储和更高的计算能力。 gpactivatestandby一样,是一个 用python写的命令行脚本。 GPExpand简介与具体用法 • GPExpand工作流程 – 建立并添加新节点 – 数据重分布 GPExpand简介与具体用法 • 增加新节点 – gpexpand –i 配置文件 • 数据重分布 – gpexpand • 清理 – gpexpand -c GPExpand简介与具体用法 • 增加新节点 – gpexpand –i —扩容状态 ▪ status_detail —将所有需要扩容的表都存到这个表里 ▪ expansion_progress —记录扩容时的状态 GPExpand简介与具体用法 • 数据重分布 – GPExpand – 会遍历postgres数据库下面gpexpand.status_detail表对所有表执行 ALTER TABLE {schema.table} EXPAND TABLE;0 码力 | 37 页 | 1.12 MB | 1 年前3
Greenplum 6: 混合负载的理想数据平台Greenplum 6: 混合负载的理想数据平台 高小明 全球领先的开源MPP大数据平台 可扩展性 ACID事务 VS 分布式 简单易用 VS 结构化 半结构非结构化 VS 事务型 分析型 VS MPP - massively parallel processing - 大规模并行处理 master standby primary primary segment mirror segment 6 Pivotal Confidential–Internal Use Only 数据分布: 并行化的根基 最重要的策略和目标是均匀分布数据到各个数据节点。 43 Oct 20 2005 12 64 Oct 20 2005 111 45 Oct 20 2005 42 46 Oct 20 2005 64 77 Oct 20 2005 32 48 完备生态、支撑核心生产系统 13 Pivotal Confidential–Internal Use Only 列式存储 表‘SALES’ 表‘SALES’ ■ 更适合压缩 ■ 查询部分列时速度快 ■ 不同列可以使用不同压缩方式 amount cust_id 表 orders 14 Pivotal Confidential–Internal Use Only Segment 1A Segment 1B0 码力 | 52 页 | 4.48 MB | 1 年前3
并行不悖- OLAP 在互联网公司的实践与思考数据从Disk上的I/O吞吐性能 Ø master管理节点 Ø segment数据节点 • greenplum的核心功能 Ø 无共享MPP Ø 多态存储 Ø 高效数据加载 (gpfdist+外部表,每小时4TB+) Ø 分布分区 Ø 数据压缩 Ø 外部访问 15 Greenplum现状说明 三 Greenplum体系架构 二 数据仓库体系架构 一 Greenplum开发规范 五 Greenplum运维体系 四 Ø 公司IDC_02机房Greenplum体系 Ø 公司IDC_03机房Greenplum体系 • 服务器资源 Ø 三大Greenplum集群,共用 422 个postgresql实例 Ø 实例分布成为 28 个Greenplum集群或postgresql单实例 • 服务器资源 Ø 三大Greenplum集群,共使用 51 台服务器资源 Ø 12台虚拟机,39台物理机 17 Greenplum现状说明 库表使用易出现问题 Ø 表定义过大 Ø 表类型单一 Ø 表的散列键不恰当 Ø 分区表的分区键性能不佳 • 加载易出现问题 Ø 文件加载出现特殊字符 Ø 数据校验标准问题 35 Greenplum开发规范 业务库表设计规范 • GP中表的范围 Ø 最大时间为年表 Ø 数据量小,可用单表 • 多种表类型 Ø 堆表 (选好常用列作为三列键) Ø 分区表 (按照 yyyymmdd 分区,建议都添加0 码力 | 43 页 | 9.66 MB | 1 年前3
共 24 条
- 1
- 2
- 3













