hive 基本命令

1. 创建

create: 创建数据库、表、视图

初级:create [database/table/view/schema] name;   在sql引擎内,均可用schema代替database

高级:create database if not exists name with dbproperties('creator'='binbin','date'='2018-11-15') ;  建立数据库时给库添加其属性字段;也可在后面加 location '路径'  指定存储位置,如果未指定的话其会存在数据库所在的目录位于属hive.metasotre.warehouse.dir 所指定的顶层目录之后;可以用

desc database extended name 

查看数据库的属性:即存储位置,编辑信息等。注意,除 dbproperties属性外,数据库的元数据信息都是不可更改的,包括数据库名和数据库所在的目录位置,没有办法删除或重置数据库属性

create database if not exists hive with dbproperties('creator'='binbin');
use hive;
create table if not exists usr(id bigint,name string,age int);
create view little_usr as select id,age from usr;

BTW:创建表时,未指定分隔符的时候,其默认分隔符为ascii码的控制符\001,到时候load数据操作起来有点麻烦,所以最好在创建表时就把分隔符指定了.我在下面指定的分隔符是空格,你在准备数据文件的时候以空格分割即可。不过一般最后以制表符‘/t’来作为分隔符。

drop table usr;
create table if not exists usr(id bigint,name string,age int)row format delimited fields terminated by ' ';
load data local inpath '/home/binbin/Documents' overwrite into table usr;
hive> select * from usr;
OK
16521	'zhangsan'	20
16522	'lisi;	20
16523	'wangwu'	22

在hive数据库中创建外部表usr1,可以读取路径/usr/local/data下以“,”分隔的数据,还存在分区字段sex

create external table if not exists hive.usr1(id bigint,name string,age int) partitioned by(sex boolean) row format delimited fields terminated by ',' location '/usr/local/data';

2.增

把本地数据文件导入到hive数据库里面,请见上一块代码。加了local就是本地文件系统的数据文件。如果没有加的话就是你的路径就得是hdfs文件系统中的文件。注意分隔符。overwrite关键字是覆盖关键词,没有这个关键词的话它就自动append

3.删

drop 【database\table\schema\view】if exists name

注意删除数据库的时候,如果其中有表的话记得加关键词cascade,他会把数据库和里面的表一起删除,如果不加的话,外部表只会删除表名,表的数据还在,以后可以重建这个表,只要创建的时候location到数据目录即可,然后通过msck repair table table_name命令刷新数据的元信息到hive中,ps:若是分区被删除也能通过这个语句恢复

3.1 表删除分区字段

ALTER TABLE my_partition_test_table DROP IF EXISTS PARTITION (p_loctype='MHA');

4.查

4.1查看数据库,表,视图名

show 【databases\tables\schemas\views】 name

4.2查看数据库,表,视图结构

4.3describe/desc 【database\table\schema\view】name

查看表中数据

select * from table_name;

查看表类型

desc extended table_name

可以查看表是否是管理表或外部表;[如果输出中有 tableType:MANAGED_TALBE表明是托管表,tableType:EXTERNAL_TALBE 外部表]

5.改

5.1 改数据库编辑属性

alter database name set dbproperties(‘edited-by’=’binbin’);

5.2 分区表添加分区字段

alter table my_partition_test_table if not exists add partition (p_hour='2017113003', p_city='573', p_loctype='MHA');

 

 

PS:分区理解:https://www.cnblogs.com/kouryoushine/p/7801924.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值