Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,下面是Hive的一些核心知识点:
### 基本概念
1. **Hive Metastore**:存储了Hive中所有表和分区的元数据信息。
2. **HiveQL (HQL)**:Hive查询语言,类似SQL,用于查询存储在Hadoop集群中的大数据。
3. **Warehouse**:Hive中数据实际存储的位置。
### 数据模型
1. **数据库**:在Hive中,数据库是一个命名空间,用于组织表。
2. **表**:表由列(列名、类型和数据)组成。
3. **分区**:表可以根据某些列的值进行分区,每个分区的数据通常存储在不同的目录下。
4. **桶(Bucket)**:表的分桶是将表中的数据基于某些列的哈希值进行划分。
### 数据类型
1. **基本数据类型**:如INT、STRING、FLOAT等。
2. **复杂数据类型**:如STRUCT、MAP、ARRAY。
### HQL语法
1. **创建数据库**:`CREATE DATABASE [IF NOT EXISTS] database_name;`
2. **创建表**:`CREATE TABLE [IF NOT EXISTS] table_name ...`
3. **查询数据**:`SELECT [columns] FROM table_name ...`
4. **插入数据**:`INSERT INTO/OVERWRITE [TABLE] table_name ...`
5. **分区操作**:`ALTER TABLE table_name ADD PARTITION ...`
6. **分桶操作**:`CLUSTER BY` 和 `SORT BY`
### 性能优化
1. **分区裁剪**:查询时只扫描相关的分区。
2. **列裁剪**:只查询需要的列。
3. **MapReduce优化**:如调整mapper和reducer的数量。
4. **使用索引**:提高查询效率。
### 高级特性
1. **窗口函数**:如`ROW_NUMBER()`, `RANK()`, `DENSE_RANK()`
2. **视图**:CREATE VIEW语句用于创建视图。
3. **物化视图**:将视图的数据实际存储起来。
4. **UDF/UDAF/UDTF**:用户自定义函数,包括标量函数(UDF)、聚合函数(UDAF)和表生成函数(UDTF)。
### 安全管理
1. **认证**:如LDAP、Kerberos。
2. **授权**:如Hive的内置授权和基于SQL标准的授权。
3. **审计**:记录用户操作。
### 与其他系统集成
1. **Hadoop**:Hive运行在Hadoop之上,使用HDFS存储数据和YARN进行资源管理。
2. **Tez/Oozie**:用于优化执行计划和作业调度。
3. **Pig**、**Spark**:可以与Hive配合使用。
### 常用命令
- `SHOW TABLES`
- `DESCRIBE TABLE`
- `DROP TABLE`
- `LOAD DATA INPATH`
Hive作为一个强大的大数据工具,其知识点非常广泛,这里只列举了部分核心内容。实际使用时还需要结合具体场景进行深入学习。
标签:name,分区,Hive,hive,TABLE,数据,### From: https://www.cnblogs.com/swh666/p/18413266