目录
一、对数据库的操作
1、创建数据库
1.1 直接创建
create table t1;
show databases;
1.2 创建库的时候带注释
create database if not exists t3 comment 'learning hive';
查看
desc database t2;
1.3 创建带属性的库
create database if not exists t2 with dbproperties('creator'='hadoop','date'='2019-01-01');
查看
desc database extended t3;
2、查看数据库
2.1 最常用查看库方式。
show databases;
2.2 显示数据库的详细属性信息。
desc database t3;
desc database extended t3;
2.3 查看正在使用哪个库。
select current_database();
3、删除数据库
drop database t3;
默认情况下,hive 不允许删除包含表的数据库。需要使用cascade 关键字。
drop database if exists t3 cascade;
4、切换数据库
use t2;
二、对表的操作
1、内部表
表目录hive会自动创建在默认的HDFS目录下/user/hive/warehouse/…
create table work_1(id int,name string,salary bigint,addr string)
row format delimited
fields terminated by ‘,’;
// 创建 worker_1 内部表 ,字段包括 int 型的 id ,string 型的 name ,bigint 型的 salary,string 型的 addr
create table work_1(id int,name string,salary bigint,addr string)
// 创建表格时支持列分隔符
row format delimited
// 使用的分隔符为逗号(,)
fields terminated by ‘,’;
查看
新建一个正在使用的节点窗口进行查看
hdfs dfs -ls /user/hive/warehouse
2、外部表
创建的时候,需要使用external关键字,并指定表对应hdfs上的目录/aa/bb
create external table worker_2(id int,name string,salary bigint,addr string)
row format delimited
fields terminated by ‘,’
location ‘/work2’;
查看
注:
drop一个内部表时,表的元信息和表数据目录都会被删除。
drop一个外部表时,只删除表的元信息,表的数据目录不会被删除。
3、数据的导入导出
3.1 导入
将hive服务器运行所在节点的本地磁盘上的文件导入表中。
注意:
这里load的文件是在开启server的节点上。不是在客户端节点上。
我们编辑的数据如果有中文,必须得是UTF-8编码格式,否则数据会出现乱码现象。
load data local inpath '/opt/testData/hive/worker_1.txt' into table worker_1;
加overwrite可以实现覆盖,不加overwrite是追加到表后面。
load data local inpath ‘/opt/testData/hive/worker_1.txt’ overwrite i