hive笔记(一)

hive笔记(一)

jdbc连hive服务:
首先先开启hiveserver2
后开启beeline !connect jdbc:hive2://master:10000
hive可能添加了权限认证,则要在hadoop的core-site.xml修改

DDL
创建表
1.创建数据库b不在默认的hdfs位置存放
create database external hive_db location ‘/source/hive_db.db’;
2.创建数据库时判断是否已存在,否则会error
create database if not exists hive_db;
3.创建表并把模式结构复制
create table student1 as select * from student;(结构和数据)
create table student1 like student;(只有结构)
4.删除数据库(数据库有表时必须加上CASDADE)–强制删除
drop database if exists hive_db CASCADE;
5.修改属性
alter database hive_db set dbproperties(“CTtime”=“2021-02-11”);
6.查详细的扩展信息
desc database extended hive_db
7.查看内外部表的类型
desc formatted student1;

修改表
1.修改表名
alter table stu2 rename to stu3
2.增加和修改替换列
增加:alter table stu3 add columns(age int);
修改:alter table stu3 change age sex string;
alter table stu3 change column id temperature int; --修改后的列名和数据类型
替换:alter table stu3 replace column(id int); (将表的所有替换)

管理表(内部表)
Hive会(或多或少地)控制着数据的生命周期。当我们删除一个管理表时,Hive也会删除这个表中数据。管理表不适合和其他工具共享数据
外部表
因为表是外部表,所以Hive并非认为其完全拥有这份数据。删除该表并不会删除掉这份数据,不过描述表的元数据信息会被删除掉。
管理表和外部表互相转换
1.将管理表改为外部表(大写)
alter table student set tblproperties(‘EXTERNAL’=‘TRUE’);
2.外部表改为内部表(大写)
alter table student2 set tblproperties(‘EXTERNAL’=‘FALSE’)
分区表
分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多
1.创建分区表
create table stu_partition(id int,name string)
partitioned by(month string)
row format delimited fields terminated by ‘\t’;
存储数据
load data local inpath ‘/usr/p/student.txt’ into table stu_partition partition(month=“20210213”);
不存储数据加载分区(多个分区用空格)
alter table stu_partition add partition(month=“20210213”);
alter table stu_partition add partition(month=“20210215”) partition(month=“20210216”);
删除分区(多个分区用,)
alter table stu_partition drop partition(month=“20210213”);
alter table stu_partition drop partition(month=“20210215”),partition(month=“20210216”);
2.二级分区
create table stu_partition(id int,name string)
partitioned by(month string,day string)
row format delimited fields terminated by ‘\t’;
存储数据
load data local inpath ‘/usr/p/student.txt’ into table stu2 partition(month=“202102”,day=“13”);
3.分区字段不能与表字段重复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值