HIVE的ddl操作
阿新 • • 發佈:2018-12-13
hive的ddl操作 庫:
修改資料庫不支援
建立資料庫:create database mading;
切換資料庫:use mading;
檢視資料庫列表:show databases;
//模糊查詢:show databases like 'test*';
檢視正在使用的資料庫:show current_database();
檢視資料庫的詳細資訊:desc database mading;
刪除資料庫:drop database mading;//只能刪除空資料庫
drop database cascade mading;// 可以刪除非空資料庫
表:
1. external 外部表 ,刪除時只刪除元資料,保留原始資料,建表指定表的儲存目錄 managed 內部表 ,預設,刪除時和元資料一起,建表用預設路徑可以 2. 分割槽:為了提高查詢效能,對龐大的表進行切分,把經常查詢的欄位作為分割槽欄位,把資料劃分成不同的資料目錄,這樣就避免的全表掃描, 分桶:1可以提升抽樣效率,2可以提升join效能。相對於分割槽表顆粒度更細,按照分桶欄位劃分為不同的檔案,指定分桶欄位和分桶個數,分桶欄位.hashCode&分桶個數 3. fields terminated by 指定列分隔符 lines terminated by 指定行分隔符 items terminated by 指定集合中元素的分隔符
查看錶的描述資訊
desc 表名
desc extended 表名
desc formatted 表名
查看錶的列表資訊
show tables;
show tables in database_1;//檢視資料庫中的表
show tables like '';//模糊查詢
修改表
1.修改表名: alter table 表名 rename to 新表名 2.修改表字段 alter table 表名 change 欄位 新欄位 型別; 3.增加表字段 alter table 表名 add columns (score int); 4.刪除表字段 alter table 表名 delete score; 5.替換全表的所有欄位 alter table 表名 replace columns(xxx string); 6. 清空表資料,但是會保留表結構 truncate table stu; 7.
載入資料到表
load data inpath '/stuin' into table stu;
建表案例 950003,劉梓晨,女,17,IS
1.建內部表
create table if not exsits stu(id int,name string,sex string,age int comment '16-24',department string) comment 'mystudent' row format delimited fields terminated by ',' stored as textfile location '/user/stu';
2.建外部表
create external table if not exsits stu(id int,name string,sex string,age int comment '16-24',department string) comment 'mystudent' row format delimited fields terminated by ',' stored as textfile location '/user/stu';
3.建一個分割槽表
分割槽欄位一定不能是建表語句中的欄位
create table stu(id int,name string,sex string,department string) partitioned by(age int) row format delimited fields terminated by ',';
新增分割槽的語法:
alter table stu add if not exsits partition(age=18);
修改分割槽的儲存路徑
alter table stu partition (age =17) set location '';
刪除分割槽
alter table stu drop if exsits partition (age =17);
4.建一個分桶表
create table stu(id int,name string,sex string,department string) partitioned by(age int) clustered by (name) sorted by (age desc) into 8 buckets row format delimited fields terminated by ',';
5.ctas 建表語句
create table as select ... from ...
6.表複製
like關鍵字
只會複製表結構,不會複製表資料
create table stu1 like stu;
其他輔助命令
show functions;//檢視hive函式列表