HIVE Bucketed Table
在建表语句中使用语句 CLUSTERED BY这种类型表,虽说不常用,但是既然存在就会有其存在的价值,这里介绍下。
Bucketed Table
如下创建Bucketed table的示例:
CREATE TABLE page_view(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT 'IP Address of the User')
COMMENT 'This is the page view table'
PARTITIONED BY(dt STRING, country STRING)
CLUSTERED BY(userid) SORTED BY(viewTime) INTO 32 BUCKETS
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
COLLECTION ITEMS TERMINATED BY '\002'
MAP KEYS TERMINATED BY '\003'
STORED AS SEQUENCEFILE;
以上示例中CLUSTERED BY(userid),也就是按照userid进行分桶,一共有32个桶,并且使用了SORTED BY(viewTime),也就是每个桶中按照viewTime进行排序,分桶是比分区更细的粒度,也就是上边例子的分桶是在分区下进行的。以上中的MAP KEYS和COLLECTION ITEMS在有list或者map类型的列时可以使用。
需要注意的是 CLUSTERED BY 和 SORTED BY不会影响数据的导入&