Hive索引与模式设计全解析
1. Hive索引概述
Hive的索引功能有限,它不像传统关系数据库那样有键的概念,但可以在列上创建索引来加速某些操作。表的索引数据存储在另一个表中。而且该功能相对较新,目前可选的选项不多。不过,索引过程可以通过插件式Java代码进行定制,团队可以根据自身需求扩展该功能。
索引适用于逻辑分区过多且过小而无法有效使用分区的情况,它可以帮助在MapReduce作业中对表的某些块进行剪枝。但并非所有查询都能从索引中受益,可以使用 EXPLAIN 语法和Hive来确定给定查询是否能借助索引。
创建和维护索引需要额外的磁盘空间和处理成本,用户在查询表时必须权衡这些成本与索引带来的好处。
2. 创建索引
2.1 示例表定义
假设我们有一个托管的、分区的员工表,定义如下:
CREATE TABLE employees (
name STRING,
salary FLOAT,
subordinates ARRAY<STRING>,
deductions MAP<STRING, FLOAT>,
address STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>
)
PARTITIONED BY (country STRING, state STRING);
2.2 创建索引
我
超级会员免费看
订阅专栏 解锁全文
919

被折叠的 条评论
为什么被折叠?



