Greenplum数据仓库UDW - UCloud中立云计算服务商(product_no); 4.3 选择数据分布策略 选择数据分布策略 UDW 表的记录有两种分布策略,分别是哈希分布(DISTRIBUTED BY(key))和随机分布(DISTRIBUTED RANDOMLY)。如果不指定分布策略则默认按primary key或者第⼀个column 做哈希分布。 为了尽可能的并⾏处理数据,需要选择能够最⼤化地将数据均匀分布到所有计算节点的策略,⽐如选择 primary 分布式操作快很多,采⽤随机分布的策略⽆法享受到这个优势。 开发指南 Greenplum数据仓库 UDW Copyright © 2012-2021 UCloud 优刻得 84/206 创建⼀个哈希分布的表: CREATE TABLE products ( name varchar(40), prod_id int, supplier_id int ) DISTRIBUTED BY (prod_id); 数据表⾜够⼤:⼤表格是⽐较适合做分区的、如果你的表格有上亿⾏或者更多的的数据,可以通过分区把数据通过分区分为很多⼩的部分、从⽽提⾼性能。如果⼀个表只有⼏千⾏和⼏ 万⾏就不需要再做分区。 查询模式固定:例如你经常按照⽇期去查找表格数据、我们可以按照每⽉或者每天做分区;如果你需要按照地区去访问数据,我们可以按照地区去做分区。 数据仓库保留⼀个时间窗⼝的数据:例如您数据仓库需要保留⼀年的数据、如果按⽉做分区、可以通过分区很0 码力 | 206 页 | 5.35 MB | 1 年前3
Greenplum 分布式数据库内核揭秘种数据分布策略: l 哈希分布 (Hash Distribution) l 随机分布 (Randomly Distribution) l 复制分布 (Replicated Distribution) 数据分布策略 Confidential │ ©2021 VMware, Inc. 10 哈希分布是分布式数据库最为常用的数据分布方式。根据用户自定义的分布键计算哈希值,然后将 哈希结果映射到某个 Segment Segment 上。在 Greenplum 6 中,默认采用一致性哈希(Jump Consistent Hash)分布策略。 哈希分布 当增加一个新的节点时,需要对原有数据进行重新映射。一致性哈希则保证了在重新映射的过程追 中,tuple 要么保留在原有节点中,要么迁移至新的节点中,从而实现最小数据迁移。 Confidential │ ©2021 VMware, Inc. 11 随机分布则 随机分布则采用随机的方式将数据存储到不同的节点。当不确定一张表的哈希分布键,或者是不存 在合理的避免数据倾斜的分布键时,即可采用随机分布的方式。 随机分布与复制分布 复制分布则表示整张表在每个节点上都有一份完整的拷贝,假设我们有 100 个节点,复制表则会将 数据保存 100 份。复制表可避免生成分布式查询计划,而是生成本地计划,从而避免数据在集群的 不同节点间移动。 Confidential │ ©20210 码力 | 31 页 | 3.95 MB | 1 年前3
Greenplum 排序算法● Greenplum的聚集节点使用两种聚集方式:哈希聚集和分组聚集。 ● 分组聚集应用了排序的思想,如果数据基于分组键有序,那么聚集可以拆解为 若干个朴素聚集的组合。 ● SELECT avg(score) FROM student GROUP BY grade; 分组聚集 44 ● Greenplum连接算法包括:嵌套循环连接,哈希连接和归并连接。 ● 归并连接同样应用了排序的思想0 码力 | 52 页 | 2.05 MB | 1 年前3
Greenplum 6新特性:
在线扩容工具GPexpand剖析6中因为全局死锁检测的引入可以对heap表做并行更新 改进与实现 • 扩容期间对查询的影响 – 新增节点阶段无法修改catalog – 对于正在重分布的表的读写访问均会被阻塞 – 对于分布状态不相同的哈希分布表的Join无法做优化 Q&A Thank you0 码力 | 37 页 | 1.12 MB | 1 年前3
Greenplum数据库架构分析及5.x新功能分享Segment 3A Segment 3B Segment 3C Segment 3D 10 Pivotal Confidential–Inter nal Use Only 多级分区存储 • 哈希Distribution:数据均 匀的分布到各个数据节点 • 范围分区: 数据节点内部, 根据多种规则分区,降低扫 描量 数据集 Segment 1A Segment 1C Segment 1D0 码力 | 44 页 | 8.35 MB | 1 年前3
完全兼容欧拉开源操作系统的 HTAP 数据平台 Greenplum两阶段提交(2PC)。 集群在线扩容 Greenplum 6 实现了不停库在线增加新节点, 期间不会中断正在运行的所有查询;另外采用了 Jump Consistent Hash 的一致性哈希算法, 在数据重分布期间,每个旧节点仅移动出需要移动的数据到新节点上, 得益于创新的分布式死锁检测, 对于大量小表做并行重分布性能提升非常明显。 Greenplum VACUUM 提升0 码力 | 17 页 | 2.04 MB | 1 年前3
Greenplum Database 管理员指南 6.2.1Master 端都安装有 OpenSSL。在 设置参数 ssl=on(在 Master 的 postgresql.conf 文件)后重新启动集群就开启了 SSL。在使用 SSL 模式启动时,数据库会查找 Master 目录下的 server.key(服务器 密钥)文件和 server.crt(服务器证书)文件。这些文件必须被正确的安装,否则数据 库系统将无法启动。 重要提示:不要为 server myschema, public, pg_catalog; 设置了模式搜索路径之后,在未明确指明模式名称的情况下访问DB对象,将会按 照search_path列表的顺序依次在相应的Schema中查找对应的Object,直到找到为 止,若在不同的Schema中存在相同Name的Object,DB优先匹配search_path中靠 前的Schema下的Object。 查看当前的模式 参见"拆分分区"相关章节。编者建议,尽可能避免添加默认分区,因为维护更困难。 另外,在真实的生产中,所有的新增分区都要明确指定分区名称,因为不指定的情况下, 数据库将会自动产生一个随机的名称,当需要查找分区表的relation name或者在不 同的集群之间比对分区结构时,将是很大麻烦。 修改分区名称 子表的名称同样是受唯一性约束和长度限制的,GP中对象长度限制为63个字符,0 码力 | 416 页 | 6.08 MB | 1 年前3
共 7 条
- 1













