在分块列

时间:2017-03-17 05:58:45

标签: hive bucket

我在时间段列上创建了一个bucketed表,其值为0到23,而时间段列的数据类型为int

我在分段表中创建了24个桶并加载了10000000行(6GB数据)

同时我使用相同的数据集

创建了一个普通的非bucketed表

后来我查询了下面的表格以及非下划线的表格,如下所示

select * from bucketed_table where timeslot = 15;

select * from non-bucketed_table where timeslot = 15;

这两个查询的时间几乎相同

我假设bucketed table的性能远远优于非bucketed table

任何人都可以告诉我,如果我做错了或者我的假设是完全错误的吗?

1 个答案:

答案 0 :(得分:0)

根据我的理解,bucketed table仅在与其他bucketed table连接时表现更好。如果我们只是在bucketed列上查询就不会有任何性能提升,因为在这种情况下,bucketed table和non-bucketed table扫描整个表(数据文件),这就是为什么在这两种情况下启动相同数量的映射器