https://www.cnblogs.com/qingyunzong/p/8710356.html
hive常用DDL+命令
一、常用DDL
以下代码块都是运行了hive后所在的界面代码复制
1.查看数据库
show databases;
2.创建库
最基础的创建库
hive> create database hive_db;
创建库标准写法
hive> create database if not exists hive_db;
创建库指定hdfs路径
(指定/hive/db路径后,生成的表文件将在该hdfs路径/hive/db下)
hive> create database hive_db2 location '/hive/db';
3.创建表
hive> create table users (id int,name string);
如果指定了hdfs路径 创建的表存在于这个路
4.查看数据库结构
hive> desc database hive_warehouse;
OK
hive_warehouse hdfs://bigdata121:9000/hive_warehouse root USER
Time taken: 0.047 seconds, Fetched: 1 row(s)
5.添加额外的描述信息
注意查看使用desc database extended hive_warehouse
hive> alter database hive_warehouse set dbproperties ('createUser'='oodp','createDate'='2020-08-27');
OK
Time taken: 1.007 seconds
hive> desc database extended hive_warehouse;
OK
hive_warehouse hdfs://bigdata121:9000/hive_warehouse root USER {createUser=oodp, createDate=2020-08-27}
Time taken: 0.335 seconds, Fetched: 1 row(s)
hive>
6.查询使用通配符 * 的表
hive> show databases like '*db*';
OK
hive_db
hive_db2
Time taken: 0.036 seconds, Fetched: 2 row(s)
7. 删除库
删除空库
hive> drop database hive_db2;
OK
Time taken: 0.424 seconds
如果删除的是非空库,这样写会报错
hive> drop database hive_warehouse;
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Database hive_warehouse is not empty. One or more tables exist.)
删除非空库
hive> drop database hive_warehouse cascade;
OK
Time taken: 0.987 seconds
删除非空库标准写法
hive> drop database if exists hive_warehouse cascade;
8.创建表
create [external] table [if not exists] table_name(字段信息) [partitioned by (字段信息)] [clustered by (字段信息)] [sorted by (字段信息)] row format delimited fields terminated by '切割符';
管理表
默认不加external创建的就是管理表,也称为内部表。
外部表
创建时添加了 external ,就是外部表
区别:如果是管理表删除hdfs中数据即被删除;如果是外部表删除,hdfs数据不会被删除
查看表结构
hive> desc formatted users;
- 不带formatted ,查看的属性内容少
hive> desc users;
导入数据
load data [local] inpath ‘’ into table itstar;
load data加载数据
local可选操作,如果写了local,代表的是本地路径,如果没有local代表的是hdfs的路径
示例:创建表
hive> create table users(id int,name string,password string,desc string)
> row format
> delimited fields
> terminated by '\t';
导入数据
hive> load data local inpath '/opt/software/users.txt' into table users;
二、hive 命令
不登录hive客户端直接输入命令操作
Hive bin/hive -e “select * from itstar;”
直接把sql写入到文件中
bin/hive -f /root/hived.sql
查看hdfs文件
dfs -ls /; dfs -cat /wc/in/words.txt;
查看历史操作
cat ~/.hivehistory