概述
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码的控制符 01,到时候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 【databasetableschemaview】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 【databasestablesschemasviews】 name
4.2查看数据库,表,视图结构
4.3describe/desc 【databasetableschemaview】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
最后
以上就是要减肥冬日为你收集整理的hive 基本命令的全部内容,希望文章能够帮你解决hive 基本命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复