《大数据》Hive分布式数据仓库(2023-03-26)

  1. 启动集群
start-all.sh

元数据:说明信息

物理数据:具体的表

  1. 启动 hive
hive
  1. 展示所有的表
    在这里插入图片描述
  2. 创建一个数据表
    《大数据》Hive分布式数据仓库(2023-03-26)_第1张图片
create table lxl (
	on int,
	name string,
	gender string)
	row format delimited,
	fields terminated by '\t';

《大数据》Hive分布式数据仓库(2023-03-26)_第2张图片

在这里插入图片描述
6. 查看结构

desc lxl;

在这里插入图片描述

  1. 查看内容
select * from lxl;

在这里插入图片描述

  1. 导入数据
gedit ll

输入以下数据:

《大数据》Hive分布式数据仓库(2023-03-26)_第3张图片

导入数据:

load data local inpath '/home/zkpk/ll' overwrite into table lxl;

《大数据》Hive分布式数据仓库(2023-03-26)_第4张图片

再次查询:

《大数据》Hive分布式数据仓库(2023-03-26)_第5张图片

hadoop fs -ls /
hadoop fs -ls /user
hadoop fs -ls /user/hive
hadoop fs -ls /user/hive/warehouse

《大数据》Hive分布式数据仓库(2023-03-26)_第6张图片

在这里插入图片描述

增加一个字段age

alter table lxl add columns (age int);
desc lxl;

在这里插入图片描述
《大数据》Hive分布式数据仓库(2023-03-26)_第7张图片

修改表字段

《大数据》Hive分布式数据仓库(2023-03-26)_第8张图片
修改字段类型、位置

alter table lxl change nianling nianling int after name;
alter table lxl change nianling nianling string after name;

为什么第一个失败了?因为只有string类型的字段可以移动

《大数据》Hive分布式数据仓库(2023-03-26)_第9张图片
删除字段

《大数据》Hive分布式数据仓库(2023-03-26)_第10张图片

复制数据表

create table lxl1 as select * from lxl;

复制以后展示表结构
《大数据》Hive分布式数据仓库(2023-03-26)_第11张图片

加了限定条件后的表复制

create table lxl2 as select * from lxl where 1 = 0;

《大数据》Hive分布式数据仓库(2023-03-26)_第12张图片

《大数据》Hive分布式数据仓库(2023-03-26)_第13张图片

清空表
《大数据》Hive分布式数据仓库(2023-03-26)_第14张图片

在这里插入图片描述

在这里插入图片描述
删完以后:
在这里插入图片描述

insert overwrite local directory '/home/zkpk/lxl' select * from lxl;

《大数据》Hive分布式数据仓库(2023-03-26)_第15张图片

cd lxl
gedit 000000_0

《大数据》Hive分布式数据仓库(2023-03-26)_第16张图片

创建外部表

create external table exlxl(no int);
hadoop fs -ls /user/hive/warehouse

在这里插入图片描述
删表:

drop table exlxl;

《大数据》Hive分布式数据仓库(2023-03-26)_第17张图片
再去hadoop查一下:

在这里插入图片描述
没有被删除,所以结论是:外部表只删除元数据,但是hdfs的数据还是在的 删不掉

分区表创建:

create table palxl(no int, name string)
partitioned by(gender string)
row format delimited
fields terminated by '\t'; 

《大数据》Hive分布式数据仓库(2023-03-26)_第18张图片

show tables
select * from palxl;

《大数据》Hive分布式数据仓库(2023-03-26)_第19张图片

insett overwrite table palxl partition(gender) 

在这里插入图片描述
直接输入会报错,所以我们先要把“严格模式”关掉

在这里插入图片描述

开启动态分区功能

set hive.exec.dynamic.partition=true;

所有分区都是动态的

set hive.exec.dynamic.partition.mode=nostrict;

最大动态分区个数

set hive.exec.max.dynamic.partitions.pernode=10;

然后再执行,就可以啦:

select * from palxl;

检验一下是否为三个 fff,是的话就对啦
在这里插入图片描述
再去hadoop的命令行看一眼:
在这里插入图片描述
查看文件内容:
在这里插入图片描述

桶表(对分区表的进一步划分):

create table clupalxl(no int, name string, gender string)
clustered by(no) sorted by(no) into 3 buckets 
row format delimited
fields terminated by '\t';

《大数据》Hive分布式数据仓库(2023-03-26)_第20张图片
《大数据》Hive分布式数据仓库(2023-03-26)_第21张图片
在这里插入图片描述

向桶表输入数据,

set hive.enforce.bucketing=true;

在这里插入图片描述

insert into table clupalxl select no, name, gender from palxl distribute by(no) sort by(no);


在这里插入图片描述
再去hadoop看

《大数据》Hive分布式数据仓库(2023-03-26)_第22张图片
在这里插入图片描述

复杂类型

create table stu(
no int,
province string,
city array<city: string, area: string>)
row format delimited
fields terminated by '\t'
collection items terminated by ','
map keys terminated by ':';

《大数据》Hive分布式数据仓库(2023-03-26)_第23张图片

《大数据》Hive分布式数据仓库(2023-03-26)_第24张图片

编写数据文件:

gedit st
1	nmg	hs,bt	en:90,cm:89	hs,sh
2	sd	qd,yt	en:80,cm:80	qd,sb

《大数据》Hive分布式数据仓库(2023-03-26)_第25张图片

load data local inpath '/home/zkpk/st' overwrite into table stu;

在这里插入图片描述

在这里插入图片描述

[] 包裹的是 array
{} 包裹的是map或者struct

视图:

在这里插入图片描述
《大数据》Hive分布式数据仓库(2023-03-26)_第26张图片

《大数据》Hive分布式数据仓库(2023-03-26)_第27张图片

在这里插入图片描述
《大数据》Hive分布式数据仓库(2023-03-26)_第28张图片
在这里插入图片描述

《大数据》Hive分布式数据仓库(2023-03-26)_第29张图片

删除数据库:

hive不允许用户删除一个包含有表的数据库

cascade关键字强制

drop database l cascade;

《大数据》Hive分布式数据仓库(2023-03-26)_第30张图片

《大数据》Hive分布式数据仓库(2023-03-26)_第31张图片

《大数据》Hive分布式数据仓库(2023-03-26)_第32张图片

《大数据》Hive分布式数据仓库(2023-03-26)_第33张图片

你可能感兴趣的:(hive,大数据,数据仓库)