- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Greenplum开源MPP数据库介绍
Greenplum开源MPP数据库介绍 - 李晓亮
- Greenplum的MPP分布式架构
- 分布式优化器、事务和执行器
- Greenplum的存储
- Greenplum的生态和社区
- Greenplum 6.21的新特性以及Greenplum 7前瞻
李晓亮-VMware资深软件工程师、技术经理。自2015年加入Greenplum数据库团队,长期从事Greenplum内核的研发工作,参与了多个内核项目以及PostgreSQL 9.4 ~ 12的内核合并。具有多年基础架构相关开发经验,在加入Greenplum前,曾作为Linux内核开发人员就职于Red Hat和Canonical。
展开查看详情
1 .Greenplum 开源MPP数据仓库介绍 李晓亮 <adlee@vmware.com> Greenplum工程师、内核团队经理
2 .Agenda Ø Greenplum简介 Ø Greenplum的MPP架构 Ø 分布式优化器: Postgres planner 和 ORCA Ø 分布式事务和执行 Ø Greenplum存储 Ø Greenplum生态 Ø Greenplum 7 Confidential │ ©2022 VMware, Inc. 2
3 .Greenplum简介:什么是Greenplum? 基于PostgreSQL、开源、分布式MPP、ACID完备、为OLAP优化的关系型数据仓库。 https://greenplum.org https://github.com/greenplum-db/gpdb Confidential │ ©2022 VMware, Inc. 3
4 .Greenplum的历史 Ø 2003年,Luke Lonergan 和 Scott Yara 发起 Greenplum项目,从 PostgreSQL 8 分支,做成 MPP架构 Ø 2010年被EMC收购 Ø 2012年成为Pivotal的一部分 Ø 2015年开源,可能是世界上第一个成熟商用的开源 MPP数据仓库 Ø 2019年底跟随Pivotal被VMware收购 Confidential │ ©2022 VMware, Inc. 4
5 .谁在用Greenplum? Ø 500多付费企业客户 Ø 成千上万的开源用户 Ø 支撑巨大的生产集群: q 250+ servers q 10+ PetaBytes Ø 十几个甚至几十个国内国外的衍生项 目(我们是真开源,欢迎大家贡献) Confidential │ ©2022 VMware, Inc. 5
6 .Greenplum的MPP架构 Ø Massively: q PB级的数据,单台主机无法处理 q 所以数据分布在多个主机上 q 高效、灵活的数据分布,和实际业务相关 Ø Parallel: q 数据并行处理计算 q 通过网络进行数据交换和汇总 Confidential │ ©2022 VMware, Inc. 6
7 .执行架构 Ø Coordinator: q 管理其它节点 Client q 生成分布式计划 q 下发计划和汇总结果 q 管理分布式事务 Ø Segments: q 存储数据,share-nothing q 产生计算进程 Interconnect Ø Libpq:控制信道 Ø Interconnect: 数据交换信道 Confidential │ ©2022 VMware, Inc. 7
8 .Greenplum的高可用 Ø 数据存两份,Coordinator有standby Ø 自动同步数据 (WAL replication) Ø 自动灾难恢复 (FTS,主备切换) Confidential │ ©2022 VMware, Inc. 8
9 .分布式优化器:OLAP Ø OLTP系统的SQL语句相对简单(CURD) Ø OLAP系统的SQL语句就复杂得多(OLTP则尽量避免) q Join 很复杂(多表, outer join, lateral…) q 子查询、子链接 q 聚集 (grouping sets, 多阶段聚集…) q 窗口函数, (Recursive) CTE q Procedure Languages(Python,R,Perl……) Ø 优化器非常非常重要 Ø 基于规则优化和基于代价优化 Confidential │ ©2022 VMware, Inc. 9
10 .ORCA Ø 历时十年,独立开发 Ø Cascades 架构 Ø OLAP性能很棒 Ø https://db.cs.cmu.edu/events/vaccination-2022-orca-a-modular-query-optimizer- architecture-for-vmware-greenplum-venky-raghavan/ Confidential │ ©2022 VMware, Inc. 10
11 .Greenplum的一些概念 Ø MPP、分布式系统最重要的点是什么? Ø 一个整体的分布式系统,和中间件的区别在哪? Ø Motion q 跨节点的数据交换 q Gather汇集 (n:1), Broadcast广播 (n:n), Redistribute重分布 (n:n) Ø Slice q Motion把计划切片 q 每一片叫Slice,每一个Slice的实体是一组存在于各个节点上的进程 Ø Locus Ø 数据的分布模式 Confidential │ ©2022 VMware, Inc. 11
12 .分布式计划举例 Confidential │ ©2022 VMware, Inc. 12
13 .分布式执行和事务 Ø 火山/流水线模型 Ø QD(query dispatcher)负责下发查询,QE(query executor)负责执行查询 Ø 查询的生命周期: 1) 客户端连接coordinator, coordinator fork出QD 2) QD 拿到纯文本的查询,解析、优化、生成一个树形结构的分布式计划 3) QD 生成slice结构,生成每个slice的一系列进程结构(Gang) 4) QD 连接segment节点,segment节点fork出QE,QE执行分布式计划 5) QD 从QE归集结果,返回给客户端 Confidential │ ©2022 VMware, Inc. 13
14 .分布式执行和事务 Ø MVCC q Xmin, Xmax 是节点本地的 Ø 分布式快照 q QD生成,下发给QE q segment本地事务异步两阶段提交,保持一致性 Ø HTAP 优化 q 全局死锁检测 q 只读事务、只涉及到某个节点的操作、vacuum Ø SIGMOD 2021: Greenplum: A Hybrid Database for Transactional and Analytical Workloads. Confidential │ ©2022 VMware, Inc. 14
15 . CREATE TABLE sales (id int, sdate date, amt numeric) Greenplum的存储 DISTRIBUTED BY (id) PARTITION BY RANGE(sdate) ... TABLE ‘SALES’ Ø Heap: 源自PG,固定页面 Jun Jul Aug Sep Oct Nov Dec Year -1 Year -2 大小, 适合OLTP Ø Append Optimized: 没有 页面的概念,变长,行存、 列存、压缩,适合OLAP Ø 外部表: HDFS,S3,文件, HEAP (row-oriented) Column-oriented External HDFS, S3 ... 网络,命令,流式数据… Suitable for frequent updates and deletes. Per column compression (zstd, gzip, Less accessed, archived data. Use indexes for drill through queries. quicklz, RLE with delta) and block size Supported formats include CSV, can be specified. Binary, Avro, Parquet, etc. Confidential │ ©2022 VMware, Inc. 15
16 .Greenplum生态:Madlib Ø 在数据库内做机器学习 Ø 非常多的算法库 Confidential │ ©2022 VMware, Inc. 16
17 .GPText Ø MPP化的Apache Solr,用于全文检索和文本分析 Ø 举例: q 十个单词内包含Alan和Clinton:“Alan Clinton”~10 Confidential │ ©2022 VMware, Inc. 17
18 .PL Languages/Container Confidential │ ©2022 VMware, Inc. 18
19 .GPCC Greenplum Command Center Ø Web UI 监控和管理 Ø 实时性能监控 Ø 可视化计划 Ø 基于规则的任务管理 Ø 向客户推荐性能优化操作 Ø 报警和通知 Confidential │ ©2022 VMware, Inc. 19
20 .Greenplum Streaming Server Ø ETL工具 (10+TB/hour) Ø 并行导入流式数据 Ø Kafka和其它流式来源 Confidential │ ©2022 VMware, Inc. 20
21 .Greenplum 7的亮点:PostgreSQL v12 和新特性 Ø 6000+ 冲突 Ø 从9.4升级到12 Ø 80多万行改动 Ø Upsert, BRIN, JIT, … Confidential │ ©2022 VMware, Inc. 21
22 .Greenplum 7的亮点:Greenplum to Greenplum Ø 集群间节点直传 Ø 一套纯SQL的API Ø 正在和其它分布式系统进行对接 Confidential │ ©2022 VMware, Inc. 22
23 .谢谢!有问题吗? 23