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(大数据)- 分桶和索引之间的区别的主要内容,如果未能解决你的问题,请参考以下文章