数据仓库服务 GAUSSDB(DWS)-创建和管理GaussDB(DWS)表:表分布的定义

时间:2024-11-28 17:37:19

表分布的定义

GaussDB (DWS)支持的分布方式:复制表(Replication)、哈希表(Hash)和轮询表(Roundrobin)。

轮询表(Roundrobin)分布方式仅8.1.2及以上集群版支持。

策略

描述

适用场景

优势与劣势

复制表(Replication)

集群中每一个DN实例上都有一份全量表数据。

小表、维度表。

  • Replication优点是每个DN上都有此表的全量数据,在join操作中可以避免数据重分布操作,从而减小网络开销,同时减少了plan segment(每个plan segment都会起对应的线程)
  • Replication缺点是每个DN都保留了表的完整数据,造成数据的冗余。一般情况下只有较小的维度表才会定义为Replication表。

哈希表(Hash)

表数据通过hash方式散列到集群中的所有DN实例上。

数据量较大的事实表。

  • 在读/写数据时可以利用各个节点的IO资源,大幅度提升表的读/写速度。
  • 一般情况下大表(1000000条记录以上)定义为Hash表。

轮询表(Roundrobin)

表的每一行被轮番地发送给各个DN,数据会被均匀地分布在各个DN中。

数据量较大的事实表,且使用Hash分布时找不到合适的分布列。

  • Roundrobin优点是保证了数据不会发生倾斜,从而提高了集群的空间利用率。
  • Roundrobin缺点是无法像Hash表一样进行DN本地化优化,查询性能通常不如Hash表。
  • 一般在大表无法找到合适的分布列时,定义为Roundrobin表,若大表能够找到合适的分布列,优先选择性能更好的Hash分布。
support.huaweicloud.com/devg-dws/dws_04_0028.html