create database db_hive_01;
create database if not exists db_hive_02;
create database if not exists db_hive_03 location '/user/tzhang/hive/warehouse/db_hive_03.db';
show databases;
show databases like 'db_hive*';
use db_hive;
desc database db_hive_02;
desc database extended db_hive_02;
drop database db_hive_02;// 有表无法删除
drop database db_hive_02 cascade;// 级联删除可以
drop database db_hive_02 if exists;
创建表
HIVE中:overwrite如果有数据,重写
load data local inpath ‘/opt/datas/emp.txt’overwrite into table emp;
load data local inpath ‘/opt/datas/dept.txt’overwrite into table dept;
create table if not exists default.dept_cats
as
select * from dept;
truncate table dept_cat;清楚数据
create table is not exists default.dept_like
default.dept;
alter table dept_like rename to dept_like dept_like_rename;
drop table if exists dept_like_rename;
Hive中表的类型有两种,1)管理表2)托管表(外部表)
desc formatted 表名;
在常见表时,create external table....外部表
外部表,放在外部表的目录中去(企业中应用外部表居多80%)
分区表
二级分区
创建一张表,将数据通过hdfs放到对应的目录下,表名与文件名相同,之后便可查询数据了
select * from dept_part;查不到数据
show databases;
use metastore;
select * from PARTITIONS;
输出记录为记录的分区,可见在这张表中不知道刚刚所创建分区的存在
解决方案:
1、
再次查询select * from PARTITIONS;可以看到分区已存在
select * from dept_part;也可以查到数据
2、alter table dept_part add partiotion(day='20160909')