Hive索引
创建索引
CREATE INDEX tableName_index
ON TABLE <tableName> (col1)
AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler'
WITH DEFERRED REBUILD
IDXPROPERTIES('creator' = 'me', 'created_at' = 'some_time')
IN TABLE tableName_index_table //要求索引处理器在一张新表中保留索引数据
PARTITIONED BY (col1, col2)
COMMENT '...';
Bitmap索引
应用于排重后值较少的列
CREATE INDEX tableName_index
ON TABLE <tableName> (col1)
AS 'BITMAP'
WITH DEFERRED REBUILD
IDXPROPERTIES('creator' = 'me', 'created_at' = 'some_time')
IN TABLE tableName_index_table
PARTITIONED BY (col1, col2)
COMMENT '...';
重建索引
ALTER INDEX tableName_index
ON TABLE <tableName>
PARTITION (col1 = '')
REBUILD;
显示索引
SHOW FORMATTED INDEX ON <table>;
//FORMATTED,可以使输出中包含有列名称;INDEXS可以列举出多个索引信息
删除索引
DROP INDEX IF EXISTS tableName_index ON TABLE <table>;
//如果有索引表,删除一个索引将会删除这个索引表
//如果被索引的表被删除,其对应的索引和索引表也会被删除;原始表的某个分区被删除,其对应的分区索引也会被删除