深入学习《Programing Hive》:Hive的DDL数据定义操作

本文深入介绍了Hive的DDL操作,包括复制表结构、查看表结构、删除表、创建视图、删除视图、定制表存储方式、修改表结构等关键步骤,同时详细解释了视图的概念、使用限制以及如何进行表结构的增删改查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一节《深入学习《Programing Hive》:Hive的数据模型(表)》中,已经学习过表的定义,接下来接着学习Hive的DDL操作。
[b]复制表结构:[/b]

CREATE TABLE IF NOT EXISTS students2 LIKE students;

[b]查看表结构:[/b]

DESCRIBE TABLE students;

[b]删除表:[/b]

DROP TABLE students;

[b]创建视图:[/b]
Hive中的视图(view)的概念和传统数据库中的表是相同的,是只读的,目前还不支持不支持物化视图。
如果在创建试图后,再将基本表中被视图引用的列修改,那么修改后的数据列将不会体现在视图中;如果基本表被删除或以不兼容的方式被修改,则查询该视图时会失败。

CREATE VIEW IF NOT EXISTS view_students (user_no,name,score)
AS
SELECT user_no,name,score FROM students;

[b]删除视图:[/b]

DROP VIEW view_students;

[b]定制表存储方式:[/b]

CREATE TABLE IF NOT EXISTS employees(
no STRING,
name STRING,
salary FLOAT,
subordinates ARRAY<STRING>,
deductions MAP<STRING,FLOAT>,
address STRUCT<street:STRING,district:STRING,city:STRING,province:STRING,ZIP:STRING>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
COLLECTIN ITEMS TERMINATED BY '\002'
MAP KEYS TERMINATED '\003'
LINES TERMINATED BY '\n'
STORED AS
INPUTFORMAT 'org.linkedin.haivvreo.AvroContainerInputFormat'
OUTPUTFORMAT 'org.linkedin.haivvreo.AvroContainerOutputFormat';

[b]修改表结构:[/b]
1)、重命名表

ALTER TABLE table_name RENAME TO new_table_name;

只修改了表名,不会改变表结构和数据存放的位置。
2)、修改列名、类型、位置及注释

CREATE TABLE IF NOT EXISTS test(a INT,b STRING,c FLOAT);//创建测试表
//修改列名
ALTER TABLE test CHANGE a a2 INT;
/*将a列的名字改为a2,并将其数据类型改为STRING,然后将之放在b列之后;修改
* 后的表结构为:b INT,a2 STRING,c FLOAT
*/
ALTER TABLE test CHANGE a a2 STRING AFTER b;
/*
* 将b列的名字改为b2,并将其数据类型由FLOAT改为DOUBLE,然后将之
* 放在第一列;修改后的表结构为:
* b2 DOUBLE,a STRING,c FLOAT
*/
ALTER TABLE test CHANGE b b2 DOUBLE FIRST;

列的改变只会修改Hive的元数据,而不改变实际的数据。
[b]用户应该确保元数据的定义和实际的数据结构保持一致。[/b]
3)、增加新列

ALTER TABLE test ADD COLOMNS(d INT,e STRING);

4)、改变表的数据存储格式

ALTER TABLE test SET FILEFORMAT SEQUENCEFILE;

5)、添加分区Partition

ALTER TABLE students ADD PARTITION(ds = '2013-05-07',country = 'china')
LOCATION '/usr/test/data/test.txt';

6)、删除分区Partition

ALTER TABLE students DROP PARTITION(ds = '2013-05-07',country = 'china');

7)、创建函数

CREATE TEMPORARY FIUNCTION aFunc as class_name;

8)、删除函数

DROP TEMPORARY FIUNCTION aFunc;

9)、显示表

SHOW TABLES students;

9)、显示分区

SHOW PARTITIONS students;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值