Hive常用命令大全!

简介: 笔记

(1)进入Hive数据库


hive



(2)查看某个数据库


show databases;


(3)进入某个数据库

use 数据库;

默认使用default数据库:

use default;


(4)查看所有的表

show tables;


(5)显示表结构

desc 表名;


(6)查询表数据

select * from 表名;


(7)显示表名的分区

show partitions 表名;


(8)创建数据库

CREATE SCHEMA userdb;



(9)删除数据库

DROP DATABASE IF EXISTS userdb;
DROP SCHEMA userdb;


(10)创建数据表

use xxdb; create table xxx;              #内部表

创建一个表,结构与其他一样

create table xxx like xxx;

创建一个表,结构数据与其他一样,相当于复制一个表

create table xxx as xxx;


创建内部表

创建内部表,制定分隔符为tab键

create table tb_name(name1 int,name2 string) row format delimited fields terminated by '\t';

创建外部表

创建外部表,制定分隔符为tab键

create external table tb_name(name1 int,name2 string) row format delimited fields terminated by '\t';

创建分区表

创建分区:分区依据(Id int)

create table tb_name(
  id int,
  name string
) partitioned by (Id int) 
  row format delimited fields terminated by '\t';

普通表和分区表区别:有大量数据增加的需要建分区表

内外表转换

内部表转外部表

alter table table-name set TBLPROPROTIES('EXTERNAL'='TURE');

外部表转内部表

alter table table-name set TBLPROPROTIES('EXTERNAL'='FALSE');


删除分区

#注意:若是外部表,则还需要删除文件(hadoop fs -rm -r -f hdfspath)

alter table table_name drop if exists partitions (d='2016-07-01');


(11)加载数据列表


把本地数据装载到数据表,也就是在metastore上创建信息

load data local inpath '/root/a.txt' into table tb_name;


把HDFS上的数据装载到数据表

load data inpath '/target.txt' into table tb_name;

加载数据到分区表必须指明所属分区

load data local inpath './book.txt' overwrite into table tb_name partition (Id = 10);


(12)重命名表名


ALTER TABLE 表名1 RENAME TO 表名2;


(13)删除表


drop table 表名;

或者

drop table if exists 表明;


(14)插入表数据


向有分区的表插入数据

(1)覆盖现有分区数据,如果没有该指定分区,新建该分区,并且插入数据

INSERT OVERWRITE TABLE 库名.表名 PARTITION(dt='2018-09-12',name='Tom', ...)
SELECT ... FROM 库名.表名 where...

(2)向现有的分区插入数据 (之前的数据不会被覆盖)

INSERT INTO TABLE 库名.表名 PARTITION(dt='2018-09-12',name='Tom',...)
SELECT ... FROM 库名.表名  WHERE ...


向无分区的表插入数据

(1) 覆盖原有表里的数据,命令和有分区的表类似,只是去掉后面的PARTITION(dt=’ ‘,name=’ ')

INSERT OVERWRITE TABLE 库名.表名 
SELECT ... FROM 库名.表名 where...

(2) 向现有的表插入数据 (之前的数据不会被覆盖)

INSERT INTO TABLE 库名.表名 
SELECT ... FROM 库名.表名  WHERE ...


(15)表结构修改


增加字段

alter table table_name add columns(newscol1 int conment '新增');

修改字段

alter table table_name change col_name new_col_name new_type;

删除字段

删除字段(COLUMNS中只放保留的字段)

alter table table_name replace columns(col1 int,col2 string,col3string);


(16)字段类型


tinyint ,smallint,int,bigint,float,decimal,boolean,string


(17)复合数据类型


struct,array,map


(18)分桶表


对于每一个表或者分区,Hive可以进一步组织成桶,也就是说桶是更为细精度的数据范围划分。

桶的使用一定要设置如下属性:

hive.enforce.bucketing = true;


创建一个桶:

# 按(id)分为4个bucket 
create table tb_name ( 
  id int, 
  name string 
) clustered by (id) into 4 buckets 
  row format delimited fields terminated by ',';

通过子查询插入数据:

insert into tb_name1 select * from tb_name;



(19)创建一个视图


create view v_name as 
  select table1.column1, table2.column2, table3.column3 
  where table1.column1 = table2.column2;
相关文章
|
SQL 分布式计算 Shell
Hive教程(05)- Hive命令汇总(上)
Hive教程(05)- Hive命令汇总(上)
247 0
|
SQL HIVE
50 Hive显示命令
50 Hive显示命令
44 0
|
4月前
|
SQL 存储 分布式计算
Linux退出Hive命令
【8月更文挑战第14天】
|
7月前
|
SQL 数据库 HIVE
Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
【4月更文挑战第8天】Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
112 0
|
SQL 分布式计算 HIVE
Hive教程(05)- Hive命令汇总(下)
Hive教程(05)- Hive命令汇总(下)
138 0
Hive教程(05)- Hive命令汇总(下)
|
7月前
|
SQL 分布式计算 分布式数据库
Hive命令大全
Hive命令大全
117 2
|
SQL 分布式计算 Hadoop
Hive的安装与配置——第2关:Hive Shell入门基础命令
Hive的安装与配置——第2关:Hive Shell入门基础命令
1453 0
Hive的安装与配置——第2关:Hive Shell入门基础命令
|
SQL 存储 分布式计算
Hive命令使用记录
Hive命令使用记录
108 0
Hive命令使用记录
|
SQL IDE 开发工具
Python脚本执行hive SQL命令
Python脚本执行hive SQL命令
|
SQL 分布式计算 Hadoop
Apache Hive--DDL--修改表&显示命令| 学习笔记
快速学习 Apache Hive--DDL--修改表&显示命令
114 0
Apache Hive--DDL--修改表&显示命令| 学习笔记