Greenplum 精粹文集
Greenplum 的起源 Greenplum 最早是在 10 多年前(大约在 2002 年)出现,基本上 和 Hadoop 是同一时期(Hadoop 约是 2004 年前后出现的,早期的 Nutch 可追溯到 2002 年)。 互联网行业经过之前近 10 年的由慢到快的发展,累积了大量信息和数 据,数据在爆发式增长,这些海量数据急需新的计算方式,需要一场 计算方式的革命。 传统的主机计算模式在海量数据面前,除了造价昂贵外,在技术上也 MapReduce 并行计算框架的理论,分布式计算模式在互联网 行业特别是收索引擎和分词检索等方面获得了巨大成功。 Big Date2.indd 1 16-11-22 下午3:38 2 由此,业界认识到对于海量数据需要一种新的计算模式来支持,这种 模式就是可以支持 Scale-out 横向扩展的分布式并行数据计算技术。 当时,开放的X86服务器技术已经能很好的支持商用,借助高速网络(当 时是千兆以太网)组建的 是必备的利器,缺少这些关键功能非常致命,将难于在 OLAP 领域充当大任。我们最近对基于 MYSQL 的某内存分布式数据库做 对比测试时,发现其优点是 OLTP 非常快,TPS 非常高(轻松搞定 几十万),但一到复杂多表关联性能就立马下降,即使其具有内存 计算的功能也无能为力,就其因估计还是受到 mysql 在这方面限制。 3) 扩展性方面,Postgresql 比 mysql 也要出色许多,Postgres0 码力 | 64 页 | 2.73 MB | 1 年前3Greenplum Database 管理员指南 6.2.1
长期驻场支持,有临时的功能支持,甚至可能会作为用户看不见的后端支持,总之,我 们的目标是,努力解决用户的一切不违背自然规律的诉求,我们跟随着 Greenplum 的 成长,见证了 Greenplum 从闭源到开源的成长历程,一路给 Greenplum 做各种补丁 脚本,也看到了 Greenplum 的大幅进步,甚至我们以前的小技巧也不再需要,持续的 进步,带来的是生态的蓬勃发展。 Greenplum ............................................................................. - 74 - 分配 ROLE(User)到资源队列 ............................................................................... - 77 - 修改资源队列 ..................................................................................... - 119 - 插入数据到分区表 ................................................................................................0 码力 | 416 页 | 6.08 MB | 1 年前3Greenplum数据仓库UDW - UCloud中立云计算服务商
Copyright © 2012-2021 UCloud 优刻得 8/206 如上图所⽰: 1. Compute Node 中任⼀ Segment 都会有⼀个 Mirror Segment 备份到其他的 Compute Node 上,当 Primary Segment 出现不可⽤的时候会⾃动切换到 Mirror Segment, 当 Primary Segment 恢复之后,Primary Segment ⽤postgresql的insert和copy⽅式导⼊数据到udw 2. ⽤外部表的⽅式,把⽂件并⾏的导⼊到udw 3. 创建hdfs的外部表,把hdfs中的数据导⼊到udw 4. 通过sqoop把hdfs中的数据导⼊到udw 5. ⽤mysql2udw把mysql中的数据导⼊到udw 6. 创建ufile的外部表、把ufile中数据导⼊到udw 在导⼊⼤量的数据的时候我们建议不要使⽤inser t⼀条条的导⼊数据、强烈建议使⽤copy、udwfile导⼊数据。 insert加载数据 加载数据 我们可以通过insert插⼊数据到udw,语法如下所⽰: INSERT INTO 表名 [ ( 字段 [, ...] ) ] { DEFAULT VALUES | VALUES ( { 表达式 | DEFAULT } [, ...] ) | ⼦查询 } 每次插⼊⼀条的效率会⽐较低、我们建议0 码力 | 206 页 | 5.35 MB | 1 年前3Pivotal Greenplum 最佳实践分享
统,建议每个Segment配置4个或以下Instance, 这样来保证每个Instance所需资源,保证系统 系统运行稳定性,例如,减少OOM发生的概率; • 对于以批处理、串行工作为主的系统,可以配 置到8个Instance,这样可以尽可能的发挥每个 CPU的处理性能。 Master query plan Client Segments Segments Segments Segments Analyze, 只在结果中返回的列无需收集统计信息; 对于频繁创建表删表的系统,可关闭gp_autostate_mode(on_no_stats=> on_change) ,数据变化量达 到一定阀值才收集统计信息; – gp_autostats_mode = on_change – gp_autostats_on_change_threshold = 5000000(资料依据项目而定) 注:delete all用truncate代替,truncate无需回收垃圾空间 垃圾空间回收 Vacuum:标记垃圾空间为可再利用 Vacuum用于将数据表垃圾空间标记到FSM(自由空间映射),一般也不回收空间,当往该表插入新数据时,数据库会重 新这些空间。 FSM驻留在内存中,FSM的大小必须足够标记数据库中的所有过期记录。如果尺寸不够大,超出自由映像空间的过期记录0 码力 | 41 页 | 1.42 MB | 1 年前3Greenplum 新一代数据管理和数据分析解决方案
• 高性价比 • 高效率 数据库管理系统(DBMS)的 规模/容量 11 需要采用一种新的方法 •“一切皆可商用”:商业即用型x86 服务器、存储设备、网络 •通过软件很容易将处理能力扩展到 1000s的内核/系统 Greenplum • “黑盒子” • “大铁箱” • 大磁盘 过去Google™ 曾经用来实现信息搜索功能的技术, 现在被Greenplum用于数据仓库 现在的解决方案 通过Greenplum超级数据处 理引擎增强竞争优势 Greenplum数据引擎:内容和方式 价值主张 – 性价比: 性能可达到传统方案(Oracle、Teradata)的 10到100倍, 而成本只是其一小部分 – 可伸缩性:从较低的万亿字节扩展到千万亿字节 – 开放式系统:在通用系统和开放源软件的基础上创建 前提条件 – 硬件:基于开放式标准硬件 – 软件:Postgres和Greenplum – 统一的分析处理功能 • 为数据仓库、市场、 ELT、文本挖掘、统计 运算提供统一的平台 • 可以使用SQL、 MapReduce、R等在 所有层次上对任何数 据进行并行分析 19 通过经济的方案扩展 到千万亿字节规模 • 不用担心数据增长或 者开始的规模太小 • 在商用硬件上通过线 性、经济的方式扩展 Greenplum数据引擎体系 主机 网络互连 并行查询规划和调度 区段服务器0 码力 | 45 页 | 2.07 MB | 1 年前3Greenplum 编译安装和调试
master -b 1 -C -1 -z 0 -m 2.2.5 启动Segment出错 如果启动 segment 时出错,并且看不到具体错误信息(通常由于错误信息被重定向到 /dev/null 了),则可以尝试手动启动 segment。 手动启动segment的命令参加下面,需要根据自己的环境修改某些路径或者参数: export LD_LIBRARY_P 执行 ExecMotion() 函数为 ExecAgg 获得下一个 tuple。 ExecMotion() 等待来自于 Segment 的结果。结果类型为 TupleTableSlot,执行到 ExecMotion 返回时可以看 返回的结果内容。 (lldb) print tup2str(result) (char *) $16 = 0x00007fe7e3014060 "\t 1: 10:39PM 0:00.11 postgres: 40001, yydzero test **(51491) con9 seg1 idle 知道了 QE 的进程号,使用 lldb attach 到该进程,重新执行 SQL 就可以进行调试了。 Gang/QEs 的重用时间由 GUC gp_vmem_idle_resource_timeout 控制。 4.3 使用 IDE 调试 常用0 码力 | 15 页 | 2.07 MB | 1 年前3Greenplum 分布式数据库内核揭秘
Hash/Randomly/Replicated Confidential │ ©2021 VMware, Inc. 8 数据存储分布化是分布式数据库要解决的第一个问题。 通过将海量数据分散到多个节点上,一方面大大降低了单个节点处理的数据量,另一方面也为处理 并行化奠定了基础,两者结合起来可以极大的提高系统的性能。譬如在 100 个节点的集群上,每 个节点仅保存总数据量的 1/100,100 中,tuple 要么保留在原有节点中,要么迁移至新的节点中,从而实现最小数据迁移。 Confidential │ ©2021 VMware, Inc. 11 随机分布则采用随机的方式将数据存储到不同的节点。当不确定一张表的哈希分布键,或者是不存 在合理的避免数据倾斜的分布键时,即可采用随机分布的方式。 随机分布与复制分布 复制分布则表示整张表在每个节点上都有一份完整的拷贝,假设我们有 100 持多级分区。 Greenplum 目前支持的分区方法有: l 范围分区:根据某个列的时间范围或者数值范围对数据进行分区。譬如以下 SQL 将创建一个按天分区的 分区表,将 2021-01-01 到 2022-01-01 这一年的数据分成 366 个分区: l 列表分区:按照某个列的数值列表,将数据分到不同的分区。譬如以下 SQL 将根据性别创建一个分区表, 共有 3 个分区: 一个分区存储男0 码力 | 31 页 | 3.95 MB | 1 年前3Greenplum介绍
库仍然可以继续工作。但由于segment的primary与 mirror端的数据不同步了,所以恢复的时候需要花比较 长的时间。对于Greenplum 3.X的版本,恢复时,需要 把好的节点上的所有数据都copy到坏的机器上。而 Greenplum4.0版本增加了功能,当备份节点坏的时 候,主节点可以把增量数据记下来,这样当备份节点的 主机恢复时,只需要恢复增量数据就可以了。 要让原先已offline的节点再加入集群中,需要重启集 GP提供了对工作负载和资源控制的功能。 在GP可以建一个资源队列(resource queue),然后把 用户加入到这个队列中,然后就可以控制: 1. 所有活动的SQL的cost值最多是多少? 2. 活动的SQL最多是多少个 3. 控制活动的SQL的优先级(4.0的新功能) GP的查询处理 用户提交一个SQL到master,master解析这个SQL, 生成一个分布式的执行计划,然后把这个分布式的执行 行这些操作时都 不依赖其它的segment。 除了上面这引起典型的数据库操作,Greenplum的 数据库有一个额外的操作类型,称为的motion。 motion操作就是把查询处理过程中涉及到的其它节点 上的数据在各个节点中做移动。 GP的查询处理 为了提高执行的性能,Greenplum把执行计划进行切片 (slice)。 例如: SELECT customer, amount0 码力 | 38 页 | 655.38 KB | 1 年前3完全兼容欧拉开源操作系统的 HTAP 数据平台 Greenplum
PowerPC、SW64 等更多芯片架构支持,持续 完善多样化算力生态体验。 openEuler 社区面向场景化的 SIG 不断组建,推动 openEuler 应用边界从最初的服务器场景,逐步拓展到云计算、边 缘计算、嵌入式等更多场景。openEuler 正成为覆盖全场景的操作系统,将发布面向边缘计算的版本 openEuler 21.09 Edge、面向嵌入式的版本 openEuler 21 数据库或其他同类平台高出数十甚 至数百倍。其多种分析扩展功能支持 ANSI SQL,并通过封装扩展提供多种内置语言和附加功能。Greenplum 能够 管理各种规模的数据容量,数据量从数 GB 到数 PB 不等。 Greenplum 环境适用性强与其开放性、真正开源、社区活跃有密不可分的关系,一方面 Greenplum 能够独立于专用 硬件加速提供高性能的纯软件数据平台,无需专用硬 Greenplum 6 实现了不停库在线增加新节点, 期间不会中断正在运行的所有查询;另外采用了 Jump Consistent Hash 的一致性哈希算法, 在数据重分布期间,每个旧节点仅移动出需要移动的数据到新节点上, 得益于创新的分布式死锁检测, 对于大量小表做并行重分布性能提升非常明显。 Greenplum VACUUM 提升 将在 Greenplum 7 中实现此功能,能够做到:0 码力 | 17 页 | 2.04 MB | 1 年前3Greenplum数据库架构分析及5.x新功能分享
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 64 77 Oct 20 2005 Segment 3C Segment 3D 10 Pivotal Confidential–Inter nal Use Only 多级分区存储 • 哈希Distribution:数据均 匀的分布到各个数据节点 • 范围分区: 数据节点内部, 根据多种规则分区,降低扫 描量 数据集 Segment 1A Segment 1C Segment 1D Segment 2A Segment 2B 大规模并行数据加载 • 高速数据导入和导出 – 主节点不是瓶颈 – 10+ TB/小时/Rack – 线性扩展 • 低延迟 – 加载后立刻可用 – 不需要中间存储 – 不需要额外数据处理 • 导入/导出 到&从: – 文件系统 – 任意 ETL 产品 – Hadoop 发行版 外部数据源 Interconnect ... ... ... ... 主节点 查询优化和调度 数据节点 存储数据0 码力 | 44 页 | 8.35 MB | 1 年前3
共 26 条
- 1
- 2
- 3