hive的索引包括三种:Local Index、Cube和Global Index。接下来分别进行介绍。
通俗的说:global index,标记记录在哪个文件。local index,标记记录在单个文件里哪个位置。cube,类似local index,同时对多个字段做索引。
Local Index是将列式存储的每个单元看作整体建立的。Local Index的创建采用了字典编码技术。相对于通过遍历每一条记录进行条件过滤的手段,使用Local Index大幅度缩短了过滤时间。
Cube是对相关字段聚合信息的整理,Cube对于聚合率高的情况有很好的优化效应。如果没有采用Cube,有可能要依次读取出每个block中的记录。而创建了Cube之后,可以直接获取需要的聚合信息,减少对原表的读取(最差情况数量相同),所以创建有效的Cube可以使查询效率更高。
Local Index和Cube支持的数据类
型:boolean,byte,short,int,float,double,long,date,timestamp,decimal,string,varchar,
不支持嵌套类型。
以下将分别介绍创建Local Index和Cube的语法。
1. 创建Local Index的语法:
CREATE TABLE <holodesk_table_name>(
<column_name1> <DATATYPE1>,
<column_name