Greenplum中所有的表都是必须分布存放的,这样可以充分利用MPP的并发特性。
在创建表时可以指定不同的分布策略,包括三种分布策略:HASH分布、随机分布和复制表。
HASH分布
概念:选择一个列或多个列作为数据表的分布键,通过hash计算,将插入的数据路由到特定的segment上。
HASH分布是默认的分布策略。也可通过指定DISTRIBUTED BY语法来指定使用HASH分布。
注:当建表时未定义分布键时,如果表有主键,使用主键字段作为默认的分布键;如果表上没有主键,默认按照第一个字段来分布。
示例:
=# create table dist1(a int, b text);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'a' as the Database data distribution key for this table.
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE
=# \d dist1
Table "public.dist1"
Column | Type | Modifiers
--------+

本文介绍了Greenplum数据库中表的三种分布策略:HASH分布、随机分布和复制表。默认采用HASH分布,依据指定列进行数据路由。随机分布使数据均匀分散但可能影响SQL性能。复制表则将所有记录复制到每个节点,适用于小表。创建表时,可使用DISTRIBUTED BY、DISTRIBUTED RANDOMLY和DISTRIBUTED REPLICATED语法来指定分布策略。
最低0.47元/天 解锁文章
3483

被折叠的 条评论
为什么被折叠?



