hive关键字(hive关键字和字段冲突)

## Hive 关键字

简介

Hive 是建立在 Hadoop 之上的数据仓库基础设施,用于提供数据查询和分析。它使用类似 SQL 的查询语言 HiveQL,用户可以通过 HiveQL 语句进行数据提取、转换和加载 (ETL) 操作。HiveQL 中包含许多关键字,这些关键字定义了 Hive 的语法和功能。了解这些关键字对于编写有效的 HiveQL 查询至关重要。

一、 数据定义语言 (DDL)

CREATE

:用于创建数据库、表、视图、函数和索引等数据库对象。

`CREATE DATABASE database_name;` 创建数据库

`CREATE TABLE table_name (col_name data_type, ...);` 创建表

`CREATE VIEW view_name AS SELECT statement;` 创建视图

`CREATE FUNCTION function_name AS 'function_path';` 创建函数

`CREATE INDEX index_name ON table_name (col_name) AS 'index_handler';` 创建索引

ALTER

:用于修改数据库对象的属性,例如表的列、分区和表的属性。

`ALTER TABLE table_name ADD COLUMNS (col_name data_type);` 添加列

`ALTER TABLE table_name RENAME TO new_table_name;` 重命名表

`ALTER TABLE table_name CHANGE COLUMN old_col_name new_col_name data_type;` 修改列名和数据类型

`ALTER TABLE table_name PARTITION (partition_spec) SET LOCATION 'new_location';` 修改分区位置

DROP

:用于删除数据库对象,例如数据库、表、视图、函数和索引。

`DROP DATABASE database_name;` 删除数据库

`DROP TABLE table_name;` 删除表

`DROP VIEW view_name;` 删除视图

`DROP FUNCTION function_name;` 删除函数

`DROP INDEX index_name ON table_name;` 删除索引

TRUNCATE

:用于清空表中的数据,但保留表结构。

`TRUNCATE TABLE table_name;` 清空表

二、 数据操作语言 (DML)

INSERT

:用于向表中插入数据。

`INSERT INTO TABLE table_name SELECT statement;` 从查询结果插入数据

`INSERT INTO TABLE table_name PARTITION (partition_spec) VALUES (value1, value2, ...);` 向分区插入数据

LOAD

:用于将数据加载到表中。

`LOAD DATA LOCAL INPATH 'local_file_path' OVERWRITE INTO TABLE table_name;` 加载本地数据并覆盖表中原有数据

`LOAD DATA INPATH 'hdfs_file_path' INTO TABLE table_name PARTITION (partition_spec);` 加载 HDFS 数据到指定分区

SELECT

:用于从表中查询数据。

`SELECT col1, col2 FROM table_name WHERE condition;` 查询指定列并根据条件过滤

`SELECT

FROM table_name;` 查询所有列

`SELECT DISTINCT col1 FROM table_name;` 查询去重后的 col1 列

UPDATE

:用于更新表中已有的数据。 (Hive 0.14.0 及之后版本支持)

`UPDATE table_name SET col1 = value1 WHERE condition;` 根据条件更新指定列的值

DELETE

:用于删除表中的数据。 (Hive 0.14.0 及之后版本支持,需要开启事务支持)

`DELETE FROM table_name WHERE condition;` 根据条件删除数据

三、 数据控制语言 (DCL)

GRANT

:用于授予用户访问权限。

`GRANT SELECT ON table_name TO USER user_name;` 授予用户查询权限

REVOKE

:用于撤销用户的访问权限。

`REVOKE SELECT ON table_name FROM USER user_name;` 撤销用户的查询权限

四、 其他重要关键字

AS

: 用于给列或表指定别名.

FROM

: 指定要查询的表.

WHERE

: 用于过滤数据.

GROUP BY

: 用于分组数据.

HAVING

: 用于过滤分组后的数据.

ORDER BY

: 用于排序数据.

JOIN

: 用于连接多个表.

UNION ALL

: 用于合并多个查询结果集.

DISTRIBUTE BY

: 用于指定MapReduce的key.

SORT BY

: 用于指定MapReduce的排序方式.

CLUSTER BY

: 等同于 `DISTRIBUTE BY` 和 `SORT BY` 相同字段.

LIMIT

: 限制查询结果的数量.

PARTITION BY

: 用于分区表.

CLUSTERED BY

: 用于指定表的分桶.

SORTED BY

: 用于指定表分桶内的排序.

INTO BUCKETS

: 指定分桶的数量.

ROW FORMAT

: 指定表的行格式.

STORED AS

: 指定表的存储格式.

LOCATION

: 指定表的数据存储路径.

COMMENT

: 添加注释.

LIKE

: 用于模糊匹配.

BETWEEN

: 用于指定范围.

IN

: 用于指定多个值.

CASE

: 用于条件判断.

VIEW

: 创建视图.

FUNCTION

: 创建函数.

INDEX

: 创建索引.

PROPERTIES

: 设置表的属性.这只是 Hive 关键字的一部分,还有其他一些关键字和函数,可以参考官方文档了解更多详细信息。 理解和熟练运用这些关键字,才能写出高效的 HiveQL 查询,更好地进行数据分析和处理.

Hive 关键字**简介**Hive 是建立在 Hadoop 之上的数据仓库基础设施,用于提供数据查询和分析。它使用类似 SQL 的查询语言 HiveQL,用户可以通过 HiveQL 语句进行数据提取、转换和加载 (ETL) 操作。HiveQL 中包含许多关键字,这些关键字定义了 Hive 的语法和功能。了解这些关键字对于编写有效的 HiveQL 查询至关重要。**一、 数据定义语言 (DDL)*** **CREATE**:用于创建数据库、表、视图、函数和索引等数据库对象。* `CREATE DATABASE database_name;` 创建数据库* `CREATE TABLE table_name (col_name data_type, ...);` 创建表* `CREATE VIEW view_name AS SELECT statement;` 创建视图* `CREATE FUNCTION function_name AS 'function_path';` 创建函数* `CREATE INDEX index_name ON table_name (col_name) AS 'index_handler';` 创建索引* **ALTER**:用于修改数据库对象的属性,例如表的列、分区和表的属性。* `ALTER TABLE table_name ADD COLUMNS (col_name data_type);` 添加列* `ALTER TABLE table_name RENAME TO new_table_name;` 重命名表* `ALTER TABLE table_name CHANGE COLUMN old_col_name new_col_name data_type;` 修改列名和数据类型* `ALTER TABLE table_name PARTITION (partition_spec) SET LOCATION 'new_location';` 修改分区位置* **DROP**:用于删除数据库对象,例如数据库、表、视图、函数和索引。* `DROP DATABASE database_name;` 删除数据库* `DROP TABLE table_name;` 删除表* `DROP VIEW view_name;` 删除视图* `DROP FUNCTION function_name;` 删除函数* `DROP INDEX index_name ON table_name;` 删除索引* **TRUNCATE**:用于清空表中的数据,但保留表结构。* `TRUNCATE TABLE table_name;` 清空表**二、 数据操作语言 (DML)*** **INSERT**:用于向表中插入数据。* `INSERT INTO TABLE table_name SELECT statement;` 从查询结果插入数据* `INSERT INTO TABLE table_name PARTITION (partition_spec) VALUES (value1, value2, ...);` 向分区插入数据* **LOAD**:用于将数据加载到表中。* `LOAD DATA LOCAL INPATH 'local_file_path' OVERWRITE INTO TABLE table_name;` 加载本地数据并覆盖表中原有数据* `LOAD DATA INPATH 'hdfs_file_path' INTO TABLE table_name PARTITION (partition_spec);` 加载 HDFS 数据到指定分区* **SELECT**:用于从表中查询数据。* `SELECT col1, col2 FROM table_name WHERE condition;` 查询指定列并根据条件过滤* `SELECT * FROM table_name;` 查询所有列* `SELECT DISTINCT col1 FROM table_name;` 查询去重后的 col1 列* **UPDATE**:用于更新表中已有的数据。 (Hive 0.14.0 及之后版本支持)* `UPDATE table_name SET col1 = value1 WHERE condition;` 根据条件更新指定列的值* **DELETE**:用于删除表中的数据。 (Hive 0.14.0 及之后版本支持,需要开启事务支持)* `DELETE FROM table_name WHERE condition;` 根据条件删除数据**三、 数据控制语言 (DCL)*** **GRANT**:用于授予用户访问权限。* `GRANT SELECT ON table_name TO USER user_name;` 授予用户查询权限* **REVOKE**:用于撤销用户的访问权限。* `REVOKE SELECT ON table_name FROM USER user_name;` 撤销用户的查询权限**四、 其他重要关键字*** **AS**: 用于给列或表指定别名. * **FROM**: 指定要查询的表. * **WHERE**: 用于过滤数据. * **GROUP BY**: 用于分组数据. * **HAVING**: 用于过滤分组后的数据. * **ORDER BY**: 用于排序数据. * **JOIN**: 用于连接多个表. * **UNION ALL**: 用于合并多个查询结果集. * **DISTRIBUTE BY**: 用于指定MapReduce的key. * **SORT BY**: 用于指定MapReduce的排序方式. * **CLUSTER BY**: 等同于 `DISTRIBUTE BY` 和 `SORT BY` 相同字段. * **LIMIT**: 限制查询结果的数量. * **PARTITION BY**: 用于分区表. * **CLUSTERED BY**: 用于指定表的分桶. * **SORTED BY**: 用于指定表分桶内的排序. * **INTO BUCKETS**: 指定分桶的数量. * **ROW FORMAT**: 指定表的行格式. * **STORED AS**: 指定表的存储格式. * **LOCATION**: 指定表的数据存储路径. * **COMMENT**: 添加注释. * **LIKE**: 用于模糊匹配. * **BETWEEN**: 用于指定范围. * **IN**: 用于指定多个值. * **CASE**: 用于条件判断. * **VIEW**: 创建视图. * **FUNCTION**: 创建函数. * **INDEX**: 创建索引. * **PROPERTIES**: 设置表的属性.这只是 Hive 关键字的一部分,还有其他一些关键字和函数,可以参考官方文档了解更多详细信息。 理解和熟练运用这些关键字,才能写出高效的 HiveQL 查询,更好地进行数据分析和处理.

标签列表