Hive是处理数据仓库的一种工具。
数据库
操作型数据库(OLTP),不适合做分析。
分析型数据库(OLAP),分析型数据库有Doris、StarRocks。
MySQL是操作型数据库(OLTP)
数据仓库主要特征: 面向主题的(Subject-Oriented )、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Variant )
数据仓库架构可分为三层 源数据层(ODS)、数据仓库层(DW)、数据应用层(DA)。
数据库操作
创建数据库
create database [if not exists] 表名 [LOCATION position];
查看数据库详细信息
desc database 表名 [CASCADE];
创建数据库并指定hdfs存储位置
create database myhive2 location '/myhive2'
删除一个空数据库,如果数据库下面有数据表,那么就会报错
drop database 表名;
强制删除数据库,包含数据库下面的表一起删除
drop database 表名 cascade;
Hive表的类型?
内部表(MANAGED_TABLE)
•
分区表
•
分桶表
外部表(EXTERNAL_TABLE)
•
分区表
•
分桶表
内部表区别?
删除内部表:
直接删除元数据(metadata)及存储数据
删除外部表:
仅仅是删除元数据(表的信息),不会删除数据本身
内部表
创建内部表:
create table [if not exists] 内部表名(
字段名 字段类型 , ...
)...;
复制内部表:
复制表结构: CREATE TABLE 表名 like 存在的表名;
复制表结构和数据: CREATE TABLE 表名 as select语句;
删除内部表:
drop table 内部表名;
查看表格式化信息:
desc formatted 表名;
truncate清空内部表数据:
truncate table 内部表名;
外部表
创建外部表:
create external table [if not exists] 内部表名(
字段名 字段类型 , ...
)...;
复制外部表:
复制表结构: CREATE EXTERNAL TABLE 表名 like 存在的表名;
删除外部表:
drop table 外部表名;
查看表格式化信息:
desc formatted 表名;
注意: 外部表不能使用
truncate
关键字清空数据
查看表操作
查看所有表
:
show tables;
查看建表语句
:
show create table 表名;
查看表结构信息
:
desc 表名;
查看表格式化信息
:
desc formatted 表名;
修改表操作
修改表名
:
alter table 旧表名 rename to 新表名;
修改表路径
:
alter table 表名 set location 'hdfs中存储路径';
注意: 建议使用默认路径
修改表属性
:
alter table 表名 set tblproperties ('属性名'='属性值');
注意: 经常用于内外部表切换
修改表操作
内外部表转换
•
内部表转外部表
alter table stu set tblproperties('EXTERNAL'='TRUE');
•
外部表转内部表
alter table stu set tblproperties('EXTERNAL'='FALSE');
通过stu set tblproperties来修改属性
要注意:('EXTERNAL'='FALSE') 或 ('EXTERNAL'='TRUE')为固定写法,区分大小写!!!