Hive系列(2) - Hive数据定义操作(DDL)

本文详细介绍了Hive的DDL(数据定义语言)操作,涵盖了创建数据库、表、分区,以及数据库和表的管理、查询和维护。主要内容包括创建表的各种方式,如CTAS、分区添加与修改,以及数据清理与权限设置。

Hive DDL语句主要和database/schema, table/view, function等有关,全部的操作可以查看Hive Confluence, 包括:

  • CREATE DATABASE/SCHEMA, TABLE, VIEW, FUNCTION, INDEX
  • DROP DATABASE/SCHEMA, TABLE, VIEW, INDEX
  • TRUNCATE TABLE
  • ALTER DATABASE/SCHEMA, TABLE, VIEW
  • MSCK REPAIR TABLE (or ALTER TABLE RECOVER PARTITIONS)
  • SHOW DATABASES/SCHEMAS, TABLES, TBLPROPERTIES, VIEWS, PARTITIONS, FUNCTIONS, INDEX[ES], COLUMNS, CREATE TABLE
  • DESCRIBE database/schema, table, view

1. Database Statements

Database作为命名空间,用于避免表,视图,分区,列等的命名冲突。

1.1 Create Database

CREATE [REMOTE] (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[MANAGEDLOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];
  • 参数

    • LOCATION: 为EXTERNAL TABLE指定默认的路径。
    • MANAGEDLOCATION: 为MANAGED TABLE指定默认的路径。
  • 例子

hive> CREATE DATABASE IF NOT EXISTS `test_db`;
OK
Time taken: 0.079 seconds

1.2 Drop Database

DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
  • 参数
    • RESTRICT: 默认行为,如果数据库不为空,DROP DATABASE会失败。
    • CASCADE: 同时删除数据库中的表。

1.3 Alter Database

ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...);   -- (Note: SCHEMA added in Hive 0.14.0)

ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role;   -- (Note: Hive 0.13.0 and later; SCHEMA added in Hive 0.14.0)

ALTER (DATABASE|SCHEMA) database_name SET LOCATION hdfs_path; -- (Note: Hive 2.2.1, 2.4.0 and later)

ALTER (DATABASE|SCHEMA) database_name SET MANAGEDLOCATION hdfs_path; -- (Note: Hive 4.0.0 and later)

只有上面描述的数据库元数据可以被修改。

  • 参数
    • SET LOCATION: 不会改变已经存在的表/分区的路径,只会影响新建的表的路径。

4. Use Database

USE database_name;

USE为后续HiveQL语句设置当前查询的数据库。
检查当前在使用的数据库可以使用:

SELECT current_database()

1.4 Query Databases

1. Show Databases

SHOW (DATABASES|SCHEMAS) [LIKE 'identifier_with_wildcards'];

列出所有的数据库。

  • 参数
    • LIKE: 使用正则表达或通配符过滤数据库。

2. Describe Database

DESCRIBE (DATABASE|SCHEMA) [EXTENDED] db_name;

显示数据库的名称,注释和根路径。

  • 参数
    • EXTENDED: 同时显示数据库的属性。

2. Table Statements

表指具有相同schema的同质数据单元。

2.1 Create Table

有多种方式创建表,包括:

1. CREATE TABLE


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值