1.hive

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作为一个强大的大数据工具,其知识点非常广泛,这里只列举了部分核心内容。实际使用时还需要结合具体场景进行深入学习。

posted @ 2024-09-14 09:06  dededea  阅读(11)  评论(0编辑  收藏  举报