数据仓库服务 GAUSSDB(DWS)-SMP并行执行:SMP适用场景与限制
SMP适用场景与限制
SMP适用场景:
- 支持并行的算子
- Scan:支持行存普通表和行存分区表顺序扫描、列存普通表和列存分区表顺序扫描、HDFS内外表顺序扫描;支持GDS数据导入的外表扫描并行。以上均不支持复制表。
- Join:HashJoin、NestLoop
- Agg:HashAgg、SortAgg、PlainAgg、WindowAgg(只支持partition by,不支持order by)
- Stream:Redistribute、Broadcast
- 其他:Result、Subqueryscan、Unique、Material、Setop、Append、VectoRow、RowToVec
- SMP特有算子
为了实现并行,新增了并行线程间的数据交换Stream算子供SMP特性使用。以下新增的算子可以看做Stream算子的子类:
- Local Gather:实现DN内部并行线程的数据汇总
- Local Redistribute:在DN内部各线程之间,按照分布键进行数据重分布
- Local Broadcast:将数据广播到DN内部的每个线程
- Local RoundRobin:在DN内部各线程之间实现数据轮询分发
- Split Redistribute:在集群跨DN的并行线程之间实现数据重分布
- Split Broadcast:将数据广播到集群所有DN的并行线程
上述新增算子可以分为Local与非Local两类,Local类算子实现了DN内部并行线程间的数据交换,而非Local类算子实现了跨DN的并行线程间的数据交换。
- 示例说明
在这个计划中,实现了Hdfs Scan以及HashAgg算子的并行,并且新增了Local Gather和Split Redistribute数据交换算子。
其中6号算子为Split Redistribute算子,上面标有的“dop: 4/4”表明Split Redistribute的发送端和接收端线程的并行度均为4。4号算子为Local Gather,上面标有“dop: 1/4”,该算子的发送端线程并行度为4,而接收端线程并行度为1,即下层的5号Hash Aggregate算子按照4并行度执行,而上层的1~3号算子按照串行执行,4号算子实现了DN内并行线程的数据汇总。
通过计划Stream算子上标明的dop信息即可看出各个算子的并行情况。
非适用场景:
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- GaussDB(for MySQL)并行查询_GaussDB(for MySQL)内核_GaussDB(for MySQL)并行执行_PQ
- GaussDB MPP_高斯数据库查看建表语句_高斯数据库 MPP_华为云
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- GaussDB华为版本_大数据开发之Hadoop家族都有谁_高斯数据库华为版本_华为云
- GaussDB优势_GaussDB数据库优势_高斯数据库优势_华为云
- GaussDB递归_层次递归查询函数_高斯数据库递归-华为云
- GaussDB架构_GaussDB分布式形态_高斯数据库架构-华为云