文章目录
  1. Hive-2_DDL使用
  2. 1. DDL (Hive Data Definition Language) 概述
  3. 2. Database 相关
    1. 2.1 Create Database
    2. 2.2 Drop Database
    3. 2.3 Alter Database
    4. 2.4 Use Database
  4. 3. Table 相关
    1. 3.1 Create Table
      1. 3.1.1 Row Format, Storage Format, and SerDe
      2. 3.1.2 Partitioned Tables
      3. 3.1.3 External Tables
      4. 3.1.4 Create Table As Select
      5. 3.1.5 Create Table Like
      6. 3.1.7 Skewed Tables
      7. 3.1.8 Temporary Tables
    2. 3.2 Drop Table
    3. 3.3 Truncate Table
    4. 3.4 Alter Table
      1. 3.4.1 Rename Table
      2. 3.4.2 Alter Table Properties
      3. 3.4.3 Add SerDe Properties
      4. 3.4.4 Alter Table Storage Properties
      5. 3.4.4 Alter Table Skewed or Stored as Directories
    5. 3.5 Alter Partition
      1. 3.5.1 Add Partitions
      2. 3.5.2 Rename Partition
      3. 3.5.3 Exchange Partition
      4. 3.5.4 Recover Partitions (MSCK REPAIR TABLE)
      5. 3.5.5 Drop Partitions
      6. 3.5.6 (Un)Archive Partition
    6. 3.6 Alter Either Table or Partition
      1. 3.6.1 Alter Table/Partition File Format
      2. 3.6.2 Alter Table/Partition Location
      3. 3.6.3 Alter Table/Partition Touch
      4. 3.6.4 Alter Table/Partition Protections
      5. 3.6.5 Alter Table/Partition Compact
      6. 3.6.6 Alter Table/Partition Concatenate
    7. 3.7 Alter Column
      1. 3.7.1 Change Column Name/Type/Position/Comment
      2. 3.7.2 Add/Replace Columns
  5. 4 View 相关
    1. 4.1 Create View
    2. 4.2 Drop View
    3. 4.3 Alter View Properties
    4. 4.4 Alter View As Select
  6. 5. Index 相关
  7. 6. Macro 相关
  8. 7. Function 相关
  9. 8. Roles and Privileges 相关
  10. 9. Show 相关
    1. 9.1 Show Databases
    2. 9.2 Show Tables
    3. 9.3 Show Partitions
    4. 9.4 Show Table/Partition Extended
    5. 9.5 Show Table Properties
    6. 9.6 Show Create Table
    7. 9.7 Show Columns
    8. 9.8 Show Indexes
    9. 9.9 Show Functions
    10. 9.10 Show Granted Roles and Privileges
    11. 9.11 Show Locks
    12. 9.12 Show Conf
    13. 9.13 Show Transactions
    14. 9.14 Show Compactions
  11. 10 Describe 相关
    1. 10.1 Describe Database
    2. 10.2 Describe Table/View/Column
    3. 10.3 Describe Partition

Hive-2_DDL使用

[TOC]

1. DDL (Hive Data Definition Language) 概述

和一般的RDBMS一样,Hive也有自己的DDL语句。且不管是DDL,还是DML,感觉都和mysql很相似。

Hive DDL 大致包括如下:

  • 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, PARTITIONS, FUNCTIONS, INDEX[ES], COLUMNS, CREATE TABLE
  • DESCRIBE DATABASE/SCHEMA, table_name, view_name

partition 语句 经常是 table 语句 的选项,除了 SHOW PARTITIONS

原文参考

关键字参考

Keywords, Non-reserved Keywords and Reserved Keywords

2. Database 相关

2.1 Create Database

语法:

1
2
3
4
5
6
7
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];

-- LOCATION: 指定数据库位于hdfs的路径, 默认位于HDFS的 /user/hive/warehouse 下面的 database_name.db
-- DBPROPERTIES: 创建数据库的 key-value 键值对。
  • DATABASE 和 SCHEMA 的使用是可以互换的(一个东西)。

例子(进入hive的命令行窗口 hive>):

1
2
3
4
5
6
7
8
9
10
-- 输入, 列出所有的数据库
show databases;

-- 输出
OK
default
Time taken: 0.202 seconds, Fetched: 1 row(s)

-- default 数据库是Hive自带的数据库, 位于HDFS的 /user/hive/warehouse,
-- 路径由 hive-site.xml 中的 `hive.metastore.warehouse.dir` 指定
1
2
3
4
5
6
7
8
9
10
-- 输入, 创建一个数据库, 名称为 test
CREATE DATABASE IF NOT EXISTS test
COMMENT 'test database'
WITH DBPROPERTIES ('creator'='mimosa', 'data'='2016-09-04');

-- 输出
OK
Time taken: 0.12 seconds

-- 此时就创建了一个test数据库, 位于HDFS的 /user/hive/warehouse/test.db
1
2
3
4
5
6
7
-- 输入
DESCRIBE DATABASE test;

-- 输出
OK
test test database hdfs://localhost:9000/user/hive/warehouse/test.db icemimosa USER
Time taken: 0.027 seconds, Fetched: 1 row(s)

2.2 Drop Database

语法:

1
2
3
4
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];

-- 删除默认行为是 RESTRICT, 此时如果数据库不为空, 则删除失败
-- CASCADE 表示不管数据库是否为空, 都删除

2.3 Alter Database

语法:

1
2
3
ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...);

ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role;

2.4 Use Database

语法:

1
2
3
4
USE database_name;

-- 使用指定的数据库, 如果返回默认数据库使用 USE DEFAULT;
-- 查看当前数据: SELECT current_database();

3. Table 相关

3.1 Create Table

语法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name    -- (Note: TEMPORARY available in Hive 0.14.0 and later)
  [(col_name data_type [COMMENT col_comment], ...)]
  [COMMENT table_comment]
  [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
  [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  [SKEWED BY (col_name, col_name, ...)                  -- (Note: Available in Hive 0.10.0 and later)]
     ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
     [STORED AS DIRECTORIES]
  [
   [ROW FORMAT row_format] 
   [STORED AS file_format]
     | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]  -- (Note: Available in Hive 0.6.0 and later)
  ]
  [LOCATION hdfs_path]
  [TBLPROPERTIES (property_name=property_value, ...)]   -- (Note: Available in Hive 0.6.0 and later)
  [AS select_statement];   -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
 
 
-- 解释
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
  LIKE existing_table_or_view_name
  [LOCATION hdfs_path];
 
data_type
  : primitive_type
  | array_type
  | map_type
  | struct_type
  | union_type  -- (Note: Available in Hive 0.7.0 and later)
 
primitive_type
  : TINYINT
  | SMALLINT
  | INT
  | BIGINT
  | BOOLEAN
  | FLOAT
  | DOUBLE
  | STRING
  | BINARY      -- (Note: Available in Hive 0.8.0 and later)
  | TIMESTAMP   -- (Note: Available in Hive 0.8.0 and later)
  | DECIMAL     -- (Note: Available in Hive 0.11.0 and later)
  | DECIMAL(precision, scale)  -- (Note: Available in Hive 0.13.0 and later)
  | DATE        -- (Note: Available in Hive 0.12.0 and later)
  | VARCHAR     -- (Note: Available in Hive 0.12.0 and later)
  | CHAR        -- (Note: Available in Hive 0.13.0 and later)
 
array_type
  : ARRAY < data_type >
 
map_type
  : MAP < primitive_type, data_type >
 
struct_type
  : STRUCT < col_name : data_type [COMMENT col_comment], ...>
 
union_type
   : UNIONTYPE < data_type, data_type, ... >  -- (Note: Available in Hive 0.7.0 and later)
 
row_format
  : DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
        [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
        [NULL DEFINED AS char]   -- (Note: Available in Hive 0.13 and later)
  | SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
 
file_format:
  : SEQUENCEFILE
  | TEXTFILE    -- (Default, depending on hive.default.fileformat configuration)
  | RCFILE      -- (Note: Available in Hive 0.6.0 and later)
  | ORC         -- (Note: Available in Hive 0.11.0 and later)
  | PARQUET     -- (Note: Available in Hive 0.13.0 and later)
  | AVRO        -- (Note: Available in Hive 0.14.0 and later)
  | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname
  • 创建一个名称为 table_name 的表, 如果相同名称的表已经存在, 那么会抛出异常。可以使用 IF NOT EXISTS
  • 表的名称列的名称都是大小写不敏感的。但是 properties 的名称的大小写敏感的。
  • 表和列 的 COMMENT 是单引号字符串。
  • TBLPROPERTIESDBPROPERTIES 一样,可以自定义 key-value 键值对。但是也存在一些Hive预定义好的property,如 last_modified_userlast_modified_time等等。
  • USE database_name 优先于创建表语句 以及使用 database_name.table.name的情况

详情参考 CREATE TABLE

3.1.1 Row Format, Storage Format, and SerDe

创建一个表的时候可以指定 custom SerDe 或者 native SerDe
SerDe 是 Serializer/Deserializer 的缩写

  • native SerDe 可以使用 row_formatDELIMITED

    • DELIMITED 可以指定 FIELDS分隔符, LINES分隔符等等
    • ESCAPED 可以指定以什么符号进行转义(如 ESCAPED BY '\')
    • NULL DEFINED AS char 可以指定自定义的 NULL (默认是 '\N' )
  • file_format 默认是 TEXTFILE 的格式, 但是可以通过 hive.default.fileformat 修改

更多SerDes和Storage Format参考

3.1.2 Partitioned Tables

创建 分区表 可以使用 PARTITIONED BY 语句。

  • 注意 PARTITIONED BY 指定的列只是可以查询的伪列, 且名称不能和表的列名重复, 否则Hive会抛出异常。
1
FAILED: SemanticException [Error 10035]: Column repeated in partitioning columns
  • 例如创建一张如下表:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE TABLE orders (
id BIGINT COMMENT 'id',
buyer STRING COMMENT '买家名称',
item STRING COMMENT '商品名称',
amount INT COMMENT '购买数量',
price DOUBLE COMMENT '商品单价',
date DATE COMMENT '下单时间'
) COMMENT '订单表'
PARTITIONED BY (pt DATE COMMENT '下单时间')
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

-- 创建一张订单表 orders
-- 按 `下单时间` 进行分区, 因为不能和date字段重复, 改为 pt(值可以为另一种格式)
-- 行的字段分隔符是 \t

-- 问题:
-- 1. DESCRIBE orders; 正常, 不会出现中文乱码
-- 2. SHOW CREATE TABLE orders; 中文出现乱码

3.1.3 External Tables

使用关键字 EXTERNAL 并且提供一个 LOCATION, 创建一个外部表。这样Hive就不会使用默认的路径去存储数据。与内部表不同的是, 当删除一个外部表时(只删除表的元数据),数据是 不会被删除 的。

外部表的路径可以指向 HDFS 的任何一个地方, 而不是限制在Hive的默认路径中(hive.metastore.warehouse.dir)。

  • 例子:
1
2
3
4
5
6
7
8
CREATE EXTERNAL TABLE student(
name STRING,
age INT
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '/user/icemimosa/student';

-- 如何目录不存在, Hive会自动在 HDFS 下面创建 `/user/icemimosa/student` 目录
  • 然后创建一个文本(如 s.txt), 内容如下( \t 分隔):
1
2
3
mimosa 	22
张三 23
王五 28

然后使用命令 hadoop dfs -put s.txt /user/icemimosa/student
这样hive就能够读取到数据了。

  • select * from student;
1
2
3
4
5
6
-- 输出
OK
mimosa 22
张三 23
王五 28
Time taken: 0.5 seconds, Fetched: 3 row(s)

3.1.4 Create Table As Select

Hive 可以从一个 select 语句中创建一张表, Hive能够自动从select结果中分析出表的结构。

  • 你可以为 CREATE 的表添加一些属性, 如 SerDestorage format, 但是有一些限制:

    • 不能是 partitioned
    • 不能是 external
    • 不能是 bucketing
  • 例子:

1
CREATE TABLE student_as AS SELECT * FROM student;
  • 注意如果在 select 语句中, 不指定 别名(select count(1) 别名)。那么创建表的列名就会自动的按 _col0, _col1, _col2 … 命名

3.1.5 Create Table Like

Create Table As Select 不同的是, Create Table Like只拷贝已经存在表的结构, 而不拷贝数据。

  • 例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE TABLE student_like LIKE student;
```

* 注意:创建的表只会采用源表的 `fields` 和 `partition columns`, `SerDe` 和 `file formats` 采取Hive默认的配置。

### 3.1.6 Bucketed Sorted Tables
使用 `CLUSTERED BY` 和 `SORTED BY` 来将数据进行打散分桶放置, 并按一定的顺序排列数据。
这样有利于查询效率的提高。

由于数据进行分桶放置, 那么在插入数据的时候要确保reducer的数量和桶的数量一致。

* 例子:

```sql
CREATE TABLE student_bucket(
name STRING,
age INT
) CLUSTERED BY (name) SORTED BY(age) INTO 4 BUCKETS;

在插入数据的时候, HIVE2以前的版本是需要指定 set hive.enforce.bucketing = true;(默认配置是false) ,这样就能根据BUCKETS的数量生成正确的reducers。

参考:
1、Bucketed Sorted Tables
2、BucketedTables Examples

3.1.7 Skewed Tables

TODO

3.1.8 Temporary Tables

TODO

3.2 Drop Table

语法

1
DROP TABLE [IF EXISTS] table_name [PURGE];

注意事项:

    1. DROP TABLE 将会删除元数据和数据(使用 hadoop dfs -rm 命令)。如果配置了 Trash(不指定 PURGE ), 数据将会丢到 hdfs user's 目录的 .Trash 中(防止误删, 便于恢复)。
    1. 如果指定了 PURGE, 那么数据就不会转移到Trash中, 且无法恢复。该属性也可以在 CREATE TABLE 的 tblproperties 中指定 auto.purge=true
    1. In Hive 0.7.0 or later, DROP returns an error if the table doesn’t exist, unless IF EXISTS is specified or the configuration variable hive.exec.drop.ignorenonexistent is set to true.(默认的配置就是 true)

3.3 Truncate Table

语法

1
2
3
4
TRUNCATE TABLE table_name [PARTITION partition_spec];

-- partition_spec:
: (partition_column = partition_col_value, partition_column = partition_col_value, ...)
  • 清空表的所有数据(或指定分区清空), 删除的数据同样是放置在 Trash 中(如果配置了Trash的话)。
  • 被清空的表必须是 managed table (非外部表), 否则会抛出异常。

3.4 Alter Table

Alter Table 可以允许修改已存在的表的结构, 包括 列/分区/SerDe表本身 等等。

3.4.1 Rename Table

修改表名称

语法

1
ALTER TABLE table_name RENAME TO new_table_name;

这个操作在Hive0.6之后同时会移动HDFS的路径。(老版本只修改元数据表的名称)

3.4.2 Alter Table Properties

修改或添加表的属性

语法

1
2
3
4
ALTER TABLE table_name SET TBLPROPERTIES table_properties;

table_properties:
: (property_name = property_value, property_name = property_value, ... )
  • 你可以通过这种方法对表新增自定义的表元数据。last_modified_userlast_modified_time 属性Hive会自动设置。
  • 可以使用 DESCRIBE EXTENDED table_name 获取这些信息

比如你可以修改表的注释

1
ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comment);

3.4.3 Add SerDe Properties

TODO

3.4.4 Alter Table Storage Properties

TODO

3.4.4 Alter Table Skewed or Stored as Directories

TODO

3.5 Alter Partition

通过 alter partition 语句,你可以对表的分区进行 新增, 重命名, 交换(moved), 删除 或者 存档 等操作。

3.5.1 Add Partitions

新增分区

语法

1
2
3
4
5
6
7
ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec 
[LOCATION 'location1'] partition_spec [LOCATION 'location2'] ...;

partition_spec:
: (partition_column = partition_col_value, partition_column = partition_col_value, ...)

## partition_col_value: 如果是String,需要引号括起来
  • 新增分区只是修改了表的元数据, 并不会去加载实际数据。
  • 如果分区存在, 那么会抛出异常(除非使用 IF NOT EXISTS)
  • 注意不同hive版本的使用

3.5.2 Rename Partition

重新命名分区

语法

1
ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;

3.5.3 Exchange Partition

交换(移动)分区

语法

1
2
3
4
5
ALTER TABLE table_name_1 EXCHANGE PARTITION (partition_spec) WITH TABLE table_name_2;
-- multiple partitions
ALTER TABLE table_name_1 EXCHANGE PARTITION (partition_spec, partition_spec2, ...) WITH TABLE table_name_2;

multiple partitions 仅在 Hive versions 1.2.2, 1.3.0, and 2.0.0+ 中有效

3.5.4 Recover Partitions (MSCK REPAIR TABLE)

由于分区也是一个目录,当你手动(hadoop dfs -put)创建分区目录的时候,hive是无法自动识别的,除非你使用 ALTER TABLE table_name ADD PARTITION 来添加分区。

当然你也使用如下名(metastore check repair):

1
MSCK REPAIR TABLE table_name;

3.5.5 Drop Partitions

删除分区

语法

1
2
ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, ...]
[IGNORE PROTECTION] [PURGE]; -- (Note: PURGE available in Hive 1.2.0 and later, IGNORE PROTECTION not available 2.0.0 and later)

命令将会删除分区和数据。

其他不同hive版本说明

3.5.6 (Un)Archive Partition

TODO

3.6 Alter Either Table or Partition

3.6.1 Alter Table/Partition File Format

修改文件存储格式

1
ALTER TABLE table_name [PARTITION partition_spec] SET FILEFORMAT file_format;
  • 改操作只修改元数据,数据的转换必须在hive之外完成

3.6.2 Alter Table/Partition Location

1
ALTER TABLE table_name [PARTITION partition_spec] SET LOCATION "new location";

3.6.3 Alter Table/Partition Touch

TODO

3.6.4 Alter Table/Partition Protections

hive不同版本说明

语法:

1
2
3
ALTER TABLE table_name [PARTITION partition_spec] ENABLE|DISABLE NO_DROP [CASCADE];

ALTER TABLE table_name [PARTITION partition_spec] ENABLE|DISABLE OFFLINE;

3.6.5 Alter Table/Partition Compact

TODO

3.6.6 Alter Table/Partition Concatenate

TODO

3.7 Alter Column

3.7.1 Change Column Name/Type/Position/Comment

语法

1
2
ALTER TABLE table_name [PARTITION partition_spec] CHANGE [COLUMN] col_old_name col_new_name column_type
[COMMENT col_comment] [FIRST|AFTER column_name] [CASCADE|RESTRICT];
  • 修改表的列名,列类型,注释以及列位置。
  • 只会修改表元数据, 不会修改数据。用户使用的时候需要确保数据的一致性。

3.7.2 Add/Replace Columns

语法

1
2
3
4
ALTER TABLE table_name 
[PARTITION partition_spec] -- (Note: Hive 0.14.0 and later)
ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
[CASCADE|RESTRICT] -- (Note: Hive 0.15.0 and later)
  • ADD 会在所有columns ( partition列之前 ) 新增一个 column
  • REPLACE 会移除所有的列, 然后再新增指定的列, 这个需要注意。当然,通过replace可以进行列的删除

4 View 相关

4.1 Create View

语法

1
2
3
4
CREATE VIEW [IF NOT EXISTS] [db_name.]view_name [(column_name [COMMENT column_comment], ...) ]
[COMMENT view_comment]
[TBLPROPERTIES (property_name = property_value, ...)]
AS SELECT ...;
  • 没有创建视图没有指定列,那么会自动从select语句中选取。
  • View是只读的

4.2 Drop View

语法

1
DROP VIEW [IF EXISTS] [db_name.]view_name;
  • 将会删除视图的元数据 (不能对view使用 DROP TABLE )

4.3 Alter View Properties

语法

1
2
3
4
ALTER VIEW [db_name.]view_name SET TBLPROPERTIES table_properties;

table_properties:
: (property_name = property_value, property_name = property_value, ...)

4.4 Alter View As Select

语法

1
ALTER VIEW [db_name.]view_name AS select_statement;
  • 类似于 CREATE VIEW 操作, 当然 CREATE OR REPLACE VIEW 也是有效的

5. Index 相关

6. Macro 相关

7. Function 相关

8. Roles and Privileges 相关

see https://cwiki.apache.org/confluence/display/Hive/SQL+Standard+Based+Hive+Authorization

9. Show 相关

9.1 Show Databases

1
SHOW (DATABASES|SCHEMAS) [LIKE 'identifier_with_wildcards'];
  • identifier_with_wildcards(正则匹配): * 表示任意字符匹配, | 表示或者匹配

9.2 Show Tables

1
SHOW TABLES [IN database_name] ['identifier_with_wildcards'];

9.3 Show Partitions

1
SHOW PARTITIONS [db_name.]table_name [PARTITION(partition_spec)];   -- (Note: Hive 0.13.0 and later)

9.4 Show Table/Partition Extended

1
SHOW TABLE EXTENDED [IN|FROM database_name] LIKE 'identifier_with_wildcards' [PARTITION(partition_spec)];

9.5 Show Table Properties

1
2
SHOW TBLPROPERTIES tblname;
SHOW TBLPROPERTIES tblname("foo");

9.6 Show Create Table

1
SHOW CREATE TABLE ([db_name.]table_name|view_name);

9.7 Show Columns

1
SHOW COLUMNS (FROM|IN) table_name [(FROM|IN) db_name];

9.8 Show Indexes

9.9 Show Functions

9.10 Show Granted Roles and Privileges

9.11 Show Locks

9.12 Show Conf

1
SHOW CONF <configuration_name>;

9.13 Show Transactions

9.14 Show Compactions

10 Describe 相关

10.1 Describe Database

1
2
DESCRIBE DATABASE [EXTENDED] db_name;
DESCRIBE SCHEMA [EXTENDED] db_name; -- (Note: Hive 0.15.0 and later)
  • EXTENDED also shows the database properties.

10.2 Describe Table/View/Column

1
2
3
DESCRIBE [EXTENDED|FORMATTED] 
[db_name.]table_name[ col_name ( [.field_name] | [.'$elem$'] | [.'$key$'] | [.'$value$'] )* ];
-- (Note: Hive 1.x.x and 0.x.x only. See "Hive 2.0+: New Syntax" below)

10.3 Describe Partition

1
2
DESCRIBE [EXTENDED|FORMATTED] [db_name.]table_name [column_name] PARTITION partition_spec;
-- (Note: Hive 1.x.x and 0.x.x only. See "Hive 2.0+: New Syntax" below)
文章目录
  1. Hive-2_DDL使用
  2. 1. DDL (Hive Data Definition Language) 概述
  3. 2. Database 相关
    1. 2.1 Create Database
    2. 2.2 Drop Database
    3. 2.3 Alter Database
    4. 2.4 Use Database
  4. 3. Table 相关
    1. 3.1 Create Table
      1. 3.1.1 Row Format, Storage Format, and SerDe
      2. 3.1.2 Partitioned Tables
      3. 3.1.3 External Tables
      4. 3.1.4 Create Table As Select
      5. 3.1.5 Create Table Like
      6. 3.1.7 Skewed Tables
      7. 3.1.8 Temporary Tables
    2. 3.2 Drop Table
    3. 3.3 Truncate Table
    4. 3.4 Alter Table
      1. 3.4.1 Rename Table
      2. 3.4.2 Alter Table Properties
      3. 3.4.3 Add SerDe Properties
      4. 3.4.4 Alter Table Storage Properties
      5. 3.4.4 Alter Table Skewed or Stored as Directories
    5. 3.5 Alter Partition
      1. 3.5.1 Add Partitions
      2. 3.5.2 Rename Partition
      3. 3.5.3 Exchange Partition
      4. 3.5.4 Recover Partitions (MSCK REPAIR TABLE)
      5. 3.5.5 Drop Partitions
      6. 3.5.6 (Un)Archive Partition
    6. 3.6 Alter Either Table or Partition
      1. 3.6.1 Alter Table/Partition File Format
      2. 3.6.2 Alter Table/Partition Location
      3. 3.6.3 Alter Table/Partition Touch
      4. 3.6.4 Alter Table/Partition Protections
      5. 3.6.5 Alter Table/Partition Compact
      6. 3.6.6 Alter Table/Partition Concatenate
    7. 3.7 Alter Column
      1. 3.7.1 Change Column Name/Type/Position/Comment
      2. 3.7.2 Add/Replace Columns
  5. 4 View 相关
    1. 4.1 Create View
    2. 4.2 Drop View
    3. 4.3 Alter View Properties
    4. 4.4 Alter View As Select
  6. 5. Index 相关
  7. 6. Macro 相关
  8. 7. Function 相关
  9. 8. Roles and Privileges 相关
  10. 9. Show 相关
    1. 9.1 Show Databases
    2. 9.2 Show Tables
    3. 9.3 Show Partitions
    4. 9.4 Show Table/Partition Extended
    5. 9.5 Show Table Properties
    6. 9.6 Show Create Table
    7. 9.7 Show Columns
    8. 9.8 Show Indexes
    9. 9.9 Show Functions
    10. 9.10 Show Granted Roles and Privileges
    11. 9.11 Show Locks
    12. 9.12 Show Conf
    13. 9.13 Show Transactions
    14. 9.14 Show Compactions
  11. 10 Describe 相关
    1. 10.1 Describe Database
    2. 10.2 Describe Table/View/Column
    3. 10.3 Describe Partition