我们可以在配置单元中的角色字段上创建bucket吗?例子:
create table EmpTab( emp_id string, emp_name string, emp_city string, emp_grade char );
我可以在emp\u grade列上创建bucket吗?如果没有,那为什么?
brgchamk1#
是的,你可以。你可以用拼图 CLUSTERED BY(emp_grade) INTO 5 BUCKETS 为了这个。创建带扣表的示例:
CLUSTERED BY(emp_grade) INTO 5 BUCKETS
CREATE TABLE user_info_bucketed(user_id BIGINT, firstname STRING, lastname STRING) COMMENT 'A bucketed copy of user_info' CLUSTERED BY(user_id) INTO 256 BUCKETS;
tnkciper2#
配置单元没有显式限制数据所在列的数据类型。以及 char 是一个合法的扣球类型。您需要在创建表时使用指定bucketing列 clustered by .
char
clustered by
create table EmpTab( emp_id string, emp_name string, emp_city string, emp_grade char(10) ) clustered by (emp_grade) into 32 buckets ;
注意, clustered by 创建表时不限制数据插入表的方式。为了确保bucked表的数据按照其ddl进行组织,请强制使用与bucket数相同的reducer数。在2.x之前,只需设置 hive.enforce.bucketing 成为 true .或者您可以手动设置减速器的数量,并添加 cluster by 在 select 条款。在2.x之后,强制是默认的,conf hive.enforce.bucketing 已删除。
hive.enforce.bucketing
true
cluster by
select
2条答案
按热度按时间brgchamk1#
是的,你可以。你可以用拼图
CLUSTERED BY(emp_grade) INTO 5 BUCKETS
为了这个。创建带扣表的示例:
tnkciper2#
配置单元没有显式限制数据所在列的数据类型。以及
char
是一个合法的扣球类型。您需要在创建表时使用指定bucketing列
clustered by
.注意,
clustered by
创建表时不限制数据插入表的方式。为了确保bucked表的数据按照其ddl进行组织,请强制使用与bucket数相同的reducer数。
在2.x之前,只需设置
hive.enforce.bucketing
成为true
.或者您可以手动设置减速器的数量,并添加
cluster by
在select
条款。在2.x之后,强制是默认的,conf
hive.enforce.bucketing
已删除。