达梦技术社区:https://eco.dameng.com
01| MPP
DM-MPP( DM Massively Parallel Processing)大规模并行处理
- 完全对等无共享式集群组建–这里可以理解为类似MongoDB 的分片集群,将数据分散到多个节点,基于高速的内部网络,已达到减少IO的效果,同时不在局限于硬件存储的限制
- 【适用场景】olap或TB/PB 级海量数据场景
MPP主备集群:将MPP集群和DM数据守护主备集群结合,为每个EP添加1到多个实时备库
02| EP
EP(Executive Point)执行节点:
- DM-MPP中的每个DM数据库实例作为一个执行节点,简称EP
- 客户端可以连接任意一个EP节点进行操作,所有EP对于用户来说是对等的
- 每个EP只负责自身数据的读写,执行计划在所有EP并行执行
- 数据根据用户指定的规则分布在不同的EP上
MPP的核心功能:用户请求可并行执行
- 用户选择一个EP登录,此EP作为用户的主EP,集群中其他EP作为此用户的从EP
- 主EP接收用户SQL请求,生成并行执行计划
- 主EP将执行计划分发给从EP,从EP并行执行
- 主EP收集所有EP的执行结果集,汇总后发送给客户
03| MPP 数据分布方式
MPP数据分布支持的方式:
- HASH
- LIST:指定一个或多个列的离散值集作为分布项
- 随机分布:可达到均衡分布的效果
- 复制分布:将常用的、数据量不大的表复制到每个EP,以提高查询效率;
- 范围分布:指定一个或多个列的列值范围作为分布项
常用随机分布和HASH分布
# MPP中创建使用hash分布的表
CREATE TABLE T1(C1 INT, C2 INT) DISTRIBUTED BY HASH(C1);
04| MPP连接方式
- 全局连接:(通常使用的方式)使用全局连接时要求所有EP都运行正常
- 本地连接:仅连接到某个EP,所有增删改查操作只能针对此EP上的数据,涉及其他EP将报错
disql的参数MPP_TYPE指定连接方式,local 表示本地连接,global表示全局连接
05| 优化方向
最优的情况,整个执行计划不包含任何通信操作符
优化的原则是尽量减少节点之间的通信交互
06| dmfldr工具数据导入
- 客户端分发模式
- 数据在dmfldr客户端分发好之后按分布项规则发送到指定的EP
- 本地分发模式
- 忽略分布项设置
- 导入时,dmfldr客户端将所有数据发送并存储到当前连接的EP上
- 导出时,仅能导出此EP上的数据
达梦技术社区:https://eco.dameng.com