168大数据

标题: Greenplum MPP核心架构 [打印本页]

作者: 168主编    时间: 2021-6-4 15:11
标题: Greenplum MPP核心架构
本节主要从MPP架构入手,结合gp核心架构设计理念为深入理解snova打基础。
参考文章:https://doc.huodongjia.com/detail-3839.html  Hashdata 简丽荣
目录:

基本概念:





MPP

大规模并行处理





1.psql基础
2.gp数仓平台概览
大致上可以分为四层:从下至上依次为

多级容错

在线扩展

任务管理




3.核心架构设计:MPP无共享架构



(一)数据均匀分布
在Greenplum数据库中所有表都是分布式的,所以每一张表都会被切片,每个segment实例数据库会存放相应的数据片段。切片(分布)规则可以由用户定义,可选的方案有根据用户对每一张表指定的hash key进行的Hash分布或者选择随机分布。

(二)分布和分区  分布(DISTRIBUTE)与分区(PARTITION)
数据分布
数据分区
目的:
1. 把大数据切片,便于查询
2. 便于数据库维护

分区创建时,每个分区会自带一个Check约束,来限定数据的范围。Check约束也用于 执行查询时定位分区。
支持分区类型:
1. 范围分区 range partition
2. 列表分区 list partition
3. 组合分区
(三)存储:多级分区表

(四)多态存储< 用户自定义存储格式>

行存小结:
全表扫描要扫描更多的数据块。
压缩比较低。
读取任意列的成本不一样,越靠后的列,成本越高。
不适合向量计算、JIT架构。(简单来说,就是不适合批处理形式的计算)
需要REWRITE表时,需要对全表进行REWRITE,例如加字段有默认值。
列存小结:
压缩比高。
仅仅支持AO存储(后面会将)。
读取任意列的成本是一样的。
非常适合向量计算、JIT架构。对大批量数据的访问和统计,效率更高。
读取很多列时,由于需要访问更多的文件,成本更高。例如查询明细。
需要REWRITE表时,不需要对全表操作,例如加字段有默认值,只是添加字段对应的那个文件。
(五)大规模并行数据加载
copy工具源于PostgreSQL数据库,copy命令支持文件与表之间的数据加载和表对文件的数据卸载。使用copy命令进行数据加载,数据需要经过Master节点分发到Segment节点,同样使用copy命令进行数据卸载,数据也需要由Segment发送到Master节点,由Master节点汇总后再写入外部文件,这样就限制了数据加载与卸载的效率,但是数据量较小的情况下,copy命令就非常方便。
gpload是一种数据装载工具,它扮演着Greenplum外部表并行装载特性的接口的角色。gpload使用定义在一个YAML格式的控制文件中的规范来执行一次装载。

高速数据导入和导出
     主节点不是瓶颈,线性扩展
低延迟
      加载后立刻可用,不需要中间存储,不需要额外数据处理
导入导出类型多样
      外部数据源多样:ETL +文件系统+hadoop






欢迎光临 168大数据 (http://www.bi168.cn/) Powered by Discuz! X3.2