greenplum的分布键
gp的分布键主要功能就是为了避免数据倾斜:
1.分布键必须自己主动指定,不能使用默认分布键(建表语句中没写分布键)
2.分布键必须能够使数据均匀的分布到各个节点上
我曾做过数据倾斜的操作
环境:测试环境,建表的分布键为日期,对表没有进行压缩
状态:进行数据抽数(向我自己建的表),测试数据仓库只给了一天的,数据量过亿
结果:一期数据全部怼到一个节点,占了1.6T的存储空间
影响:崩掉了两个节点,对此表进行查询时跑死,truncate操作时也跑死
1.表是为了存储而生:gp表的分布键应该做到能使数据分布均匀的功能,用主键字段,或联合主键字段作为分布键。
2.表是为了计算而生:gp表的分布键应该做到关联键为分布键的功能,切不宜超过三个,这是为效率考虑。