更新时间:2024-04-18 GMT+08:00
分享

数据分布式存储

DWS采用水平分表的方式,将业务数据表的元组散存储到各个节点内该优势在于,查询中通过查询条件过滤不必要的数据,快速定位到数据存储位置,可极大提升数据库性能。

水平分表方式将一个数据表内的数据,按合适分布策略分散存储在多个节点内,DWS支持如表1所示的数据分布策略。用户可在CREATE TABLE时增加DISTRIBUTE BY参数,对指定的表应用数据分布功能。

表1 分布式策略

策略

描述

适用场景

优势与劣势

复制表(Replication)

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

小表、维度表。

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

哈希表(Hash)

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

数据量较大的事实表。

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

轮询表(Roundrobin)

8.1.2及以上版本支持

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

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

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

    相关文档

    相关产品