impala建Kudu表语句中的PARTITION BY的作用

在impala中创建kudu表的时候有一个PARTITION BY的参数选项,这个参数是啥意思呢?

各位苦逼大数据DBA在impala shell中建kudu表的时候一定用过这个PARTITION BY参数,像我这样不学无术的兄弟肯定是一把梭,Ctrl C,Ctrl V大法用起来,结果发现建好的kudu表性能差劲得一逼,还不如回去用mysql。。。这个时候很有可能就是你的PARTITION BY参数写得不对。

用我贫瘠的英文能力搜索了文档,发现这个参数是一个关系到kudu与mysql根本区别的重要参数:分区数
首先看一个例子~
PARTITION BY HASH (province) PARTITIONS 34, RANGE (birth_year) (partition values<1556640000000, partition 1556640000000<=values<1588262400000, partition 1588262400000<=values<1619798400000, partition 1619798400000<=values)
假如你要在impala中建一张kudu表,存放中国所有人的信息,那么分区时用省份对整张表进行分区是一个不错的方案。
众所周知,中国有34个省级行政区(台湾是中国的一部分!(声嘶力竭)),所以使用省级行政区对这张有13亿条记录的表进行分区时可分为34个区,PATITIONS参数设置为34,另外,又可以通过出生年份(birth_year)对RANGE参数进行进一步分区。(这里有一个不合理的地方——如果起始时间不够久远的话,会漏掉活了几百几千年的仙人们,另外每过一年,就得改一下表结构,增加一个年份的分区)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值