Greenplum中查看数据分布情况

声明:文中观点为作者的个人观点、不代表官方、如需更多帮助,请联系Pivotal官方·转载必须注明出处
用过GP的都清楚GP是一个并行数据仓库系统,数据是分散在不同的instance(磁盘|目录)的,这种架构
很多时候我们必须小心注意数据的分布情况,包括instance上的平坦性,以及partition上的平坦性,如果
数据集中在少数instance上,那么我们的分布策略是低效的甚至是失败的,如果分布在个别的partition上,
那么我们的分区策略是低效的或者失败的,当然人为生成的测试数据不在其列。
很多时候我们很想知道数据到底是怎么分布的:
关于instance的标识,GP的table中包含一个隐藏字段gp_segment_id,其在gp_segment_configuration中
有详细定义信息,该字段标识了数据在哪个instance上存储。
于是我们可以使用这样的语句来查看数据在instance上的分布情况:
select gp_segment_id,count(*) fom $tablename group by 1 order by 1;
关于partition的标识,我们没有太好的办法,GP基于Postgresql而来,在GP中partition表实现了类似PG
中的inherits,在parent级别的表中并没有存储实际的数据,实际数据是存储在最低层定义的表中的,也就是
我们最关心的底层分区表,这样我们就可以用表信息包含的一个隐藏字段tableoid来区分数据来自不同的分区
表了,比如:
select tableoid::regclass,count(*) from $partitiontablename group by 1 order by 1;
还可以将两者结合使用:
select gp_segment_id,tableoid::regclass,count(*) from $partitiontablename group by 1,2 order by 1,2;

声明:文中观点为作者的个人观点、不代表官方 、如需更多帮助,请联系Pivotal官方 ·转载必须注明出处

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11022757/viewspace-719840/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11022757/viewspace-719840/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值