1. Hive数据仓库的操作——2. 数据表的操作

时间:2025-01-18 13:15:34

1. Hive数据仓库的操作

1.在Hive中创建一个数据仓库,名为DB。

create database DB;

1. Hive数据仓库的操作——2. 数据表的操作_外部表

2.以上简单创建了一个DB库,但是这条sql可以更进一步的优化,我们可以加上if not exists。

create database if not exists DB;

解析:在创建库时,应避免新建的库名与已有库名重复,如果库名重复将会报出以下错误(我在已有DB库的前提下,再次创建了DB库)。

错误提示数据仓库DB已经存在, 那么加入的if not exists就起了作用,如下(在已有DB库的前提下,再次创建DB库,提示成功不会报错)

1. Hive数据仓库的操作——2. 数据表的操作_外部表_02

加入if not exists的意思是如果没有DB库就创建,如果已有就不再创建。

3.查看数据仓库DB的信息及路径。

describe database DB;

1. Hive数据仓库的操作——2. 数据表的操作_表名_03

4.删除名为DB的数据仓库。

drop database if exists DB;

1. Hive数据仓库的操作——2. 数据表的操作_表名_04

2. 数据表的操作

Hive的数据表分为两种:内部表和外部表。

Hive创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据,生产中常使用外部表。

下面详细介绍对表操作的命令及使用方法:

即将创建的表,表名不能和已有表名重复,否则会报错,现在我们show tables一下,查看已存在的表。

show tables;

1. Hive数据仓库的操作——2. 数据表的操作_外部表_05

现在库中没有表。

2.1.创建一个名为cat的内部表,有两个字段为cat_id和cat_name,字符类型为string。

create table cat(cat_id string,cat_name string);

1. Hive数据仓库的操作——2. 数据表的操作_外部表_06

查看是否创建成功。

show tables;

1. Hive数据仓库的操作——2. 数据表的操作_表名_07

下面我们再次创建一个与刚才表名相同的表,看一下报错。

create table cat(cat_id string,cat_name string);

1. Hive数据仓库的操作——2. 数据表的操作_表名_08

提示错误,该表已经存在!说明表与库一样,名称不能重复,解决方法是加入if not exists。


2.2.创建一个外部表,表名为cat2,有两个字段为cat_id和cat_name,字符类型为string。

create external table if not exists cat2(cat_id string,cat_name string);

1. Hive数据仓库的操作——2. 数据表的操作_数据仓库_09

查看是否创建成功。

show tables;

1. Hive数据仓库的操作——2. 数据表的操作_表名_10

外部表较内部表而言,只是在create后加了一个external。

2.3.修改cat表的表结构。对cat表添加两个字段group_id和cat_code。

alter table cat add columns(group_id string,cat_code string);

1. Hive数据仓库的操作——2. 数据表的操作_数据仓库_11

使用desc命令查看一下加完字段后的cat表结构 。

desc cat;

1. Hive数据仓库的操作——2. 数据表的操作_数据仓库_12

2.4.修改cat2表的表名。把cat2表重命名为cat3 。

alter table cat2 rename to cat3;

1. Hive数据仓库的操作——2. 数据表的操作_表名_13

这个命令可以让用户为表更名,数据所在的位置和分区名并不改变。

2.5.删除名为cat3的表并查看。

drop table cat3;
show tables;

1. Hive数据仓库的操作——2. 数据表的操作_数据仓库_14

2.6.创建与已知表相同结构的表,创建一个与cat表结构相同的表,名为cat4,这里要用到like关键字。

create table cat4 like cat;

创建完成并查看结果。

show tables;

1. Hive数据仓库的操作——2. 数据表的操作_数据仓库_15