美文网首页
Greenplum 分布键的选择

Greenplum 分布键的选择

作者: 树十二 | 来源:发表于2018-03-22 10:34 被阅读0次

    由于Greenplum是一个分布式数据库,所以建表时需要指定分布键,将数据平均分布到各个Segment上。

    Greenplum有两种数据分布策略:

    1)Hash分布。选择一个或多个列作为分布键,计算 hash 值,并通过 hash 值路由到特定的Segment节点上。如果不指定分布键,默认将第一个字段作为分布键。

    2)随机分布。数据随机分散在每一个节点中,可以保证数据平均分布,但是在执行 SQL 的过程中,关联等操作都需要将数据重分布,性能较差。

    选择法则:

    1)尽量选择经常需要 JOIN 的列

    当关联键和分布键均一致时,可以在 Segment 中完成 JOIN,不需要重分布或者广播小表。

    当关联键和分布键不一致时,则需要重分布不一致的表或者广播小表,带来额外的开销。

    2)尽量选择分布均匀的列或者多列

    若选择的分布列值分布不均匀,则可能导致数据倾斜。某些 Segment 非常大(压力大),某些 Segment 非常小。根据木桶原理,时间消耗会卡在数据多的节点上。

    3)尽量选择高并发查询的条件列(指该查询条件产生的中间结果集小的,如果中间结果集很大,那就让所有节点都来参与运算更好,因此不选)

    如果数据经常被高并发的键值或离散查询,可以将查询条件的列作为分布列,这样不需要连接到所有的 Segment 去查,可以大大提高并发能力。

    4)不要轻易使用随机分布

    相关文章

      网友评论

          本文标题:Greenplum 分布键的选择

          本文链接:https://www.haomeiwen.com/subject/rhhgqftx.html