kudu表分区


kudu表的数据结构是列式存储,但也支持像mysql那样进行检索,而且与spark、impala等现有的应用完美契合,可以说是是大数据平台上支持快速sql查询的上佳选择了。它的好处这里不多说啦,公司的大数据查询有一部分是用到这个技术,这里就列几个其他博客里不常见的涉及kudu表分区的语句(其实官网里都有,只是中文博客里还没见到)。

分区有两种方式,hash 和range分区,
hash分区的语句:
CREATE TABLE kudu_table ( id BIGINT, name STRING, PRIMARY KEY(id) ) PARTITION BY HASH PARTITIONS 16 STORED AS KUDU;

从别的表拉数据新建kudu表的语句:
CREATE TABLE kudu_table PRIMARY KEY (name,age) PARTITION BY HASH(name,age) PARTITIONS 8 STORED AS KUDU AS SELECT name, age FROM old_table;

这里有一个点就是hash分区是可以指定两个列的,注意hash(a),hash(b)和hash(a,b)的含义并不一样。还有就是主键的设计,主键是不允许重复的,重复时后插入的数据会报错(impala中会导致插入无效)

range分区的语句:
CREATE TABLE new_table PRIMARY KEY (name,age) PARTITION BY range(age) ( PARTITION 1<= VALUES <10, PARTITION 10<= VALUES <20, PARTITION 20<= VALUES <30 ) STORED AS KUDU AS SELECT name, age FROM lol;

与mysql类似的,kudu中range分区的表也是支持增加分区的,增加分区的语句为:
alter table new_table add range partition 30<=values<40

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值