DMMPP 支持随机分布、复制分布 (fully)、哈希分布、范围分布、LIST 列表分布等多种分布表的类型,用户可根据实际情况选择合适的分布类型。
指定随机分布:CREATETABLE T1(C1 INT) DISTRIBUTED RANDOMLY;
普通语句在 MPP 模式下建分布表,如果未指定列则默认为 RANDOMLY (随机)分布表:CREATE TABLE T1(C1INT);
注意:当使用 DTS 迁移或用户提供的 SQL 脚本进行 DMMPP 环境表结构创建时一定要了解应用业务情况,评估使用默认随机分布是否可满足需求。
适用于无关联、无要求的表,分布相对均匀。
指定复制分布:CREATETABLE T1(C1 INT) DISTRIBUTED FULLY;
维度表。
指定 hash 分布:CREATE TABLE T1(C1 INT) DISTRIBUTED BY HASH(C1);
也可以省略HASH:CREATE TABLE T1(C1 INT) DISTRIBUTED BY (C1);
数据质量相对均匀且要求均匀分布,要使用主键。
选择分布列的原则:根据应用业务逻辑,需要进行关联查询的表应该选择同一种分布方式且分布列应选择关联列作为分布列,此时可以使得数据进行节点内关联减少节点间数据搬迁的MAL交互;当一个表要和多个表使用不同的列进行关联查询时选择分布列要有针对性的取舍。
指定范围分布:CREATETABLE T1(C1 INT) DISTRIBUTED BY RANGE(C1) (VALUES EQU OR LESS THAN (2) ON EP01,VALUES EQU OR LESS THAN (4) ON EP02, VALUES EQU OR LESS THAN (6) ON EP03,VALUES EQU OR LESS THAN (MAXVALUE) ON EP04);
带有明显范围特性的数据且针对不同范围操作不相互影响。
指定 LIST 列表分布:CREATE TABLE T1(C1 INT)DISTRIBUTED BY LIST(C1)(VALUES(1,8) ON EP01,VALUES(2,7) ON EP02, VALUES(3,6) ON EP03, VALUES(4,5) ON EP04);
带有明显属性特征的数据,列表项不建议过多。
文章
阅读量
获赞