Hive(大数据)- 分桶和索引之间的区别

Posted

技术标签:

【中文标题】Hive(大数据)- 分桶和索引之间的区别【英文标题】:Hive(Bigdata)- difference between bucketing and indexing 【发布时间】:2015-06-13 12:02:40 【问题描述】:

Hive 中表的分桶和索引之间的主要区别是什么?

【问题讨论】:

【参考方案1】:

主要区别是目标:

索引

Hive 索引的目标是提高查询查找表的某些列的速度。如果没有索引,使用诸如“WHERE tab1.col1 = 10”之类的谓词的查询会加载整个表或分区并处理所有行。但是如果 col1 存在索引,则只需要加载和处理文件的一部分。

当表变得非常大时,索引变得更加重要,而且您现在无疑知道,Hive 在大型表上茁壮成长。

分桶

它通常用于连接操作,因为您可以通过按特定的“键”或“ID”对记录进行分桶来优化连接。这样,当你要进行join操作时,具有相同'key'的记录将在同一个bucket中,然后join操作会更快。您可以将其视为一种将数据集分解为更易于管理的部分的技术。这个link 为您提供了 5 个高效 Hive 查询的技巧,其中之一是关于 Bucketing。

【讨论】:

以上是关于Hive(大数据)- 分桶和索引之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Hive - 分桶和分区

深入理解Hive分区与分桶

大数据之hive:hive分桶表

HIVE—索引分区和分桶的区别

Hive 分区、分桶和排序表 - 多个插入

大数据--hive分桶查询&&压缩方式