免费注册
帮助文档(华北一、二)

  • DW表的记录有两种分布策略,分别是哈希分布(DISTRIBUTED BY(key))和随机分布(DISTRIBUTED RANDOMLY)。如果不指定分布策略默认使用哈希分布,并且选择primary key或者第一个column。

    为了尽可能的并行处理数据,需要选择能够最大化地将数据均匀分布到所有计算节点的策略,比如选择primary key;分布式处理中将会存在本地和分布式协作的操作,当不同的表使用相同的分布键的时候,大部分的排序、连接关联操作工作将会在本地完成,本地操作往往比分布式操作快很多,采用随机分布的策略无法享受到这个优势。

    创建一个哈希分布的表:

     

    CREATE TABLE products (name varchar(40),prod_id int,

    supplier_id int) DISTRIBUTED BY (prod_id);

    创建一个随机分布的表:

     

    CREATE TABLE randomTable (things text,content text,

    etc text) DISTRIBUTED RANDOMLY;

    修改分布策略:

    1)分区策略修改为随机分布:

     alter table test set with (reorganize=true) distributed randomly;

    2)分区策略修改为按照id的hash分布:

     alter table test set with (reorganize=true) distributed by (id);

    备注:更多关于分区策略的的使用可以通过命令行执行\h create table 或者 \h alter table 查看


文档是否已解决您的问题?

  已解决   未解决

如您有其它疑问,您也可以与我们技术专家联系探讨。

联系技术专家