关于gp数据库的DK(GP)

对于gp数据库,DK(Distributed key)遵循以下原则:

数据均匀分布原则:

为达到最好性能,实例应当尽量存储等量的数据。如数据的分布不均匀,不平衡,倾斜,那些储存了较多数据的实例在处理自己的那部分数据时,会耗费更多的工作量。对于此,可以考虑选择具备唯一性的DK, 如主键。

 

本地操作原则:

在处理查询时,例如 关联,排序,聚合,可以先做的先做。 跨越系统级别的操作效率低。当不同的TABLE 的 DK相同时,在DK上的关联会 最高效的方式把大部分工作在本地完成。同时,总分父子表的DK应当保持一致。中间过程表,临时表的DK应尽可能的保持和源表的一致性,避免发生重分布。

 

均衡的查询负载均衡原则:

当发生查询的时候,期望使得所有的实例处理等量的数据。所以通过合理的DK设计,尽可能的使得查询的处理负载均衡在每一个节点,并保证where的结果集在各个节点上也是均匀的。

DK字段越少越好.

 

DK设计规范如下:

每个表必须通过distributed by显示指定分布键。不允许使用默认DK建立。对于无法确定的采用随机分布。

分布键原则上是一个,最多尽量不超过3个。

相关联的表分布键应该尽量一致,例如账户主档,账户明细档,账户资金余额档存在关联查询的需求,可以把 账号作为三张表的分布键。

对于维表,代码表,应选择其主键作为分布键。

对于实体表,选择逻辑主键作为分布键。

对于协议主题的所有表,以及协议主题和其他的主题的关系表,应采用协议编号作为分布键。

对于当事人主题的表,采用当事人编号作为分布键。

对于事件主题表,采用事件编号作为分布键。

对于其他的主题,采用逻辑主键作为分布键。

分布键字段不可执行 update 操作

尽量不要使用随机分布,因为数据在节点之间交换迁移的时候影响性能。

为了保证数据分布均匀,在没有合适的字段作为分布键的情况下,应选择数据表的主键作为分布键。

对于没有逻辑主键,又没有合适的字段作为分布键的数据表,才会采用设置其分布策略为 distributed randomly。

随机分布的适合使用场景:查询时不需要跟其他的表关联,或者只会跟小表关联的数据表,才会采用随机分布策略。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值