teradata 预先探查数据分布

teradata是一款MPP架构的数据库,数据装载到数据库的时候会被切分到不同的节点,计算数据的时候每个节点负责计算各自的数据并返回给MPL(Message Passing Layer)做最后的计算。

使用teradata以来总有一个困惑,数据装载到数据库后才发现表的倾斜度不在我们规定的阀值之内(尽管从技术角度讲选择一个重复值低的字段做PI比较合理 ),特别是大表,数据倾斜影响MPP的性能。因此我们需要为我们所选择的PI负责任,那是否可以预先探查一下我们数据的分布情况呢。

假设我们teradata总共有146个AMP,并且PI字段CNAME DISTINCT以后的值小于我们AMP的个数,我们可以使用下面简单的SQL基本确我们的数据分布:

SELECT CNAME, COUNT(CNAME)
  FROM TNAME
 GROUP BY 1
 ORDER BY 2;

但是假如CNAME DISTINCT以后的值远远大于我们AMP的个数,是否能探查我们数据的分布呢?

翻看了teradata的文档终于找到了有关hash function的片段

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值