hive对数据库及对表的操作

本文详细介绍了Hive对数据库和表的各种操作,包括创建、查看、删除数据库,内部表与外部表的创建与管理,数据的导入导出,以及复杂的Hive操作如分区表、分桶表、视图、表关联操作等。此外,还涉及到Hive的文件存储格式,如TextFile、SequenceFile、ORCFile和Parquet。
摘要由CSDN通过智能技术生成

目录

一、对数据库的操作

1、创建数据库

2、查看数据库

3、删除数据库

4、切换数据库

二、对表的操作

1、内部表

2、外部表

3、数据的导入导出

4、hive的复杂数据类型

5、hive的文件存储格式

6、查看表信息

7、修改表

8、删除和清空表

9、分区表

10、分桶表

11、视图

12、表关联操作(join)

13、笛卡尔积

14、union和unionall


一、对数据库的操作

1、创建数据库

1.1 直接创建

create table t1;

show databases;

 

 1.2 创建库的时候带注释

create database if not exists t3 comment 'learning hive';

查看

desc database t2;

 

1.3 创建带属性的库

create database if not exists t2 with dbproperties('creator'='hadoop','date'='2019-01-01');

查看

desc database extended t3;

2、查看数据库

2.1 最常用查看库方式。

show databases;

 

2.2 显示数据库的详细属性信息。

desc database t3;

desc database extended t3;

2.3 查看正在使用哪个库。

select current_database();

 

 

3、删除数据库

drop database t3;

默认情况下,hive 不允许删除包含表的数据库。需要使用cascade 关键字。

drop database if exists t3 cascade;

 

4、切换数据库

use t2;

二、对表的操作

1、内部表

表目录hive会自动创建在默认的HDFS目录下/user/hive/warehouse/…

create table work_1(id int,name string,salary bigint,addr string)
row format delimited
fields terminated by ‘,’;

 // 创建 worker_1 内部表 ,字段包括 int 型的 id ,string 型的 name ,bigint 型的 salary,string 型的 addr

create table work_1(id int,name string,salary bigint,addr string)

// 创建表格时支持列分隔符

row format delimited

// 使用的分隔符为逗号(,)

fields terminated by ‘,’;

查看

新建一个正在使用的节点窗口进行查看

hdfs dfs -ls /user/hive/warehouse

 

2、外部表

创建的时候,需要使用external关键字,并指定表对应hdfs上的目录/aa/bb

create external table worker_2(id int,name string,salary bigint,addr string)
row format delimited
fields terminated by ‘,’
location ‘/work2’;

查看

注:

drop一个内部表时,表的元信息和表数据目录都会被删除。

drop一个外部表时,只删除表的元信息,表的数据目录不会被删除。

3、数据的导入导出

3.1 导入

将hive服务器运行所在节点的本地磁盘上的文件导入表中。

注意:

这里load的文件是在开启server的节点上。不是在客户端节点上。

我们编辑的数据如果有中文,必须得是UTF-8编码格式,否则数据会出现乱码现象。

load data local inpath '/opt/testData/hive/worker_1.txt' into table worker_1;

加overwrite可以实现覆盖,不加overwrite是追加到表后面。

load data local inpath ‘/opt/testData/hive/worker_1.txt’ overwrite i
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值