Hive之DDL详解

本文深入解析Hive的DDL(数据定义语言),涵盖数据库、表、视图等的创建、修改、删除操作,以及如何使用HiveQL进行数据管理。同时,介绍了Hive中常用的表操作,包括数据加载、表结构复制及外部表的创建。

官网:http://hive.apache.org
在这里插入图片描述

1、Hive的DDL

对于DML语言,我们不讲,因为实际工作Hive1.x版本 DML性能太差,基本是用Spark实现;虽然现在Hive2.x支持Spark引擎,但是使用的人还是比较少。
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
HiveQL DDL:

  • CREATE DATABASE/SCHEMA, TABLE, VIEW, FUNCTION, INDEX
  • DROP DATABASE/SCHEMA, TABLE, VIEW, INDEX
  • TRUNCATE TABLE
  • ALTER DATABASE/SCHEMA, TABLE, VIEW
  • MSCK REPAIR TABLE (or ALTER TABLE RECOVER PARTITIONS)
  • SHOW DATABASES/SCHEMAS, TABLES, TBLPROPERTIES, VIEWS, PARTITIONS, FUNCTIONS, INDEX[ES], COLUMNS, CREATE TABLE
  • DESCRIBE DATABASE/SCHEMA, TABLE_NAME, VIEW_NAME

数据库操作

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name  
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];  #[]表示可有可无
 
CREATE DATABASE hive; #创建数据库
desc database hive;  #查看数据库存储数据目录信息的等
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE]; #删除数据库
USE database_name; 使用数据库

数据库元数据查询

mysql -uroot -p  #登录mysql
show databases;
use ruoze_d6
show tablses;
select * from dbs \G  #查看有hive有哪些数据库,\G表示格式化输出

表的操作

#创建员工1信息表,并指定行的格式
create table emp(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm double,
deptno int
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'; 
#加载数据入员工表,local 表示数据从本地获取,未指定则是指hdfs,这是DML语法
LOAD DATA LOCAL INPATH '/home/hadoop/data/emp.txt' OVERWRITE INTO TABLE emp ;
 
#创建员工2拷贝表结构
CREATE TABLE emp2 LIKE emp;
 
#创建员工3拷贝表结构以及表数据,需要跑MR
create table emp3 as select * from emp;
 
 
#创建外部表,用external修饰,其它语法与内部表一致
create external table emp4 like emp;
 
#查看表的结构
desc emp; #查看表的简单信息
desc formatted emp; #查看表的详细信息
drop table emp2 #删除表
alter table emp rename to new_emp; #重名了表

我们可以通过 hive -e “sql 命令”来执行,可以写在shell脚本里面,然后执行shell脚本。
或者是通过 hive -f SQL文件(文件里面就是SQL语句) 这种方式来编写脚本的。

hive sql有些字符需要用“\”进行转义,列如用“.”切割时,得写成“\.”

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值