索引只是表格特定列上的指针。创建索引意味着在表的特定列上创建指针。如果在表中索引了列,并且在查询该特定列时如何指向该特定列的数据?
答案 0 :(得分:1)
来自文档
Hive索引的目标是提高查询查询的速度 表格的某些列。没有索引,带有谓词的查询 比如'WHERE tab1.col1 = 10'加载整个表或分区 处理所有行。但是如果col1存在索引,则只有a 需要加载和处理文件的一部分。改善 在索引可以提供的查询速度中,代价是 额外的处理来创建索引和磁盘空间来存储 索引。
在场景后面,Hive创建了一个Map,其中包含了索引列的值以及数据位于HDFS中的偏移量+文件,这样,Hive就不需要扫描所有数据了搜索某个值。这是一篇解释基本概念的好文章