Hive记录-Hive常用命令操作

对着背影说爱祢 提交于 2020-01-27 11:07:56
1.hive支持四种数据模型
• external table ---外部表:Hive中的外部表和表很类似,但是其数据不是放在自己表所属的目录中,而是存放到别处,这样的好处是如果你要删除这个外部表,该外部表所指向的数据是不会被删除的,它只会删除外部表对应的元数据;而如果你要删除表,该表对应的所有数据包括元数据都会被删除。
• table ---表,存储在HDFS的一个目录中。
• partition ---分区:在Hive中,表的每一个分区对应表下的相应目录,所有分区的数据都是存储在对应的目录中。

• bucket ---桶,对指定的列计算其hash,根据hash值切分数据,目的是为了并行,每一个桶对应一个文件(注意和分区的区别)。

2.hive支持的数据类型

• 基本类型:tinyint, smallint, int,bigint, boolean, float, double, string,date

• 复杂类型:struct,map,array

3.创建Create语句

3.1.创建表

create table test (id int, name string); 
3.2.创建外部表

create external table page(id int,page string,  ip string comment 'IP Address of the User')
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\054'  STORED AS TEXTFILE  LOCATION '/usr/hive/external';

3.3.创建分区表

create table pageurl(id int,page string,  ip string comment 'IP Address of the User')
PARTITIONED BY(date STRING, pos STRING) ROW FORMAT DELIMITED ‘\t’  FIELDS TERMINATED BY '\n'  STORED AS SEQUENCEFILE;

3.4.创建bucket表

create table pageu(id int,page string,  ip string comment 'IP Address of the User')
PARTITIONED BY(date STRING, pos STRING)
CLUSTERED BY(userid) SORTED BY(id) INTO 32 BUCKETS
ROW FORMAT DELIMITED ‘\t’
FIELDS TERMINATED BY '\n'
STORED AS SEQUENCEFILE;

3.5 创建数据库:create database test

4.show语句

show databases ---查询数据库

show tables ---查询数据表

show role grant user root ---查询用户拥有的角色

show grant user  root ---查询用户拥有的权限

show functions ---查询hive所有支持的函数

DESCRIBE FUNCTION max---查询max方法的介绍

DESCRIBE FUNCTION EXTENDED max ---查询max方法的详细介绍

DESCRIBE test ---查询test表的结构

describe database test;--- 查询test数据库的结构

use test ---用test数据库

5.drop语句

5.1 删除表 drop table test;

5.2 删除数据库 drop database test;

5.3 删除角色 drop role role1;

6.load语句

load data (local) inpath '/usr/test.txt'  (overwrite覆盖)   into table test;

7.insert语句

insert overwrite local  directory '/opt/test/data'    select * from test;

insert overwrite table test2  select * from test;

insert into table test3 select * from test







易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!