索引是标准的数据库技术,hive 0.7版本之后支持索引。hive索引采用的不是'one size fites all'的索引实现方式,而是提供插入式接口,并且提供一个具体的索引实现作为参考。
hive索引具有以下特点:
1.索引key冗余存储,提供基于key的数据视图
2.存储设计以优化查询&检索性能
3.对于某些查询减少IO,从而提高性能。
hive索引创建语句:
注意:
1.index的partition默认和数据表一致
2.视图上不能创建index
3. index可以通过stored as配置存储格式
重建索引:
假如在创建索引是我们使用“ WITH DEFERRED REBUILD ”语句,则索引创建是为空,可以通过“Alter index ... REBUILD”在一个partition上或所有partition上构建索引。
注意:
1.当hive数据更新时,必须调用该语句更新索引。
2. index rebuild操作时一个原子操作,因此,当rebuild失败时,先前构建的索引也无法使用
删除索引:
示例:
创建表&索引
查看索引数据:
$ hadoop fs -ls /user/hive/warehouse/default__index_test_index1_index_test__
Found 3 items
drwxr-xr-x - work supergroup 0 2012-08-16 18:27 /user/hive/warehouse/default__index_test_index1_index_test__/dt=2012-08-10
drwxr-xr-x - work supergroup 0 2012-08-16 18:27 /user/hive/warehouse/default__index_test_index1_index_test__/dt=2012-08-11
drwxr-xr-x - work supergroup 0 2012-08-16 18:28 /user/hive/warehouse/default__index_test_index1_index_test__/dt=2012-08-12
$ hadoop fs -cat /user/hive/warehouse/default__index_test_index1_index_test__/dt=2012-08-10/000000_0
5,hdfs://localhost:9000/user/hive/warehouse/index_test/dt=2012-08-10/000000_0,0
6,hdfs://localhost:9000/user/hive/warehouse/index_test/dt=2012-08-10/000000_0,10
7,hdfs://localhost:9000/user/hive/warehouse/index_test/dt=2012-08-10/000000_0,20
删除索引:
索引数据也被删除
$ hadoop fs -ls /user/hive/warehouse/default__index_test_index1_index_test__
ls: Cannot access /user/hive/warehouse/default__index_test_index1_index_test__: No such file or directory.
reference:
Hive IndexDev
Hive Index
hive索引具有以下特点:
1.索引key冗余存储,提供基于key的数据视图
2.存储设计以优化查询&检索性能
3.对于某些查询减少IO,从而提高性能。
hive索引创建语句:
注意:
1.index的partition默认和数据表一致
2.视图上不能创建index
3. index可以通过stored as配置存储格式
重建索引:
假如在创建索引是我们使用“ WITH DEFERRED REBUILD ”语句,则索引创建是为空,可以通过“Alter index ... REBUILD”在一个partition上或所有partition上构建索引。
注意:
1.当hive数据更新时,必须调用该语句更新索引。
2. index rebuild操作时一个原子操作,因此,当rebuild失败时,先前构建的索引也无法使用
删除索引:
示例:
创建表&索引
查看索引数据:
$ hadoop fs -ls /user/hive/warehouse/default__index_test_index1_index_test__
Found 3 items
drwxr-xr-x - work supergroup 0 2012-08-16 18:27 /user/hive/warehouse/default__index_test_index1_index_test__/dt=2012-08-10
drwxr-xr-x - work supergroup 0 2012-08-16 18:27 /user/hive/warehouse/default__index_test_index1_index_test__/dt=2012-08-11
drwxr-xr-x - work supergroup 0 2012-08-16 18:28 /user/hive/warehouse/default__index_test_index1_index_test__/dt=2012-08-12
$ hadoop fs -cat /user/hive/warehouse/default__index_test_index1_index_test__/dt=2012-08-10/000000_0
5,hdfs://localhost:9000/user/hive/warehouse/index_test/dt=2012-08-10/000000_0,0
6,hdfs://localhost:9000/user/hive/warehouse/index_test/dt=2012-08-10/000000_0,10
7,hdfs://localhost:9000/user/hive/warehouse/index_test/dt=2012-08-10/000000_0,20
删除索引:
索引数据也被删除
$ hadoop fs -ls /user/hive/warehouse/default__index_test_index1_index_test__
ls: Cannot access /user/hive/warehouse/default__index_test_index1_index_test__: No such file or directory.
reference:
Hive IndexDev
Hive Index