【大数据系列】之Hive DDL and DML

Hive DDL and DML

Hive定义了一套自己的SQL,简称HQL,它与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的聚合函数、连接查询、条件查询。
DDL操作(数据定义语言)包括:Create、Alter、Show、Drop等。

(1)create database- 创建新数据库
(2)alter database - 修改数据库
(3)drop database - 删除数据库
(4)create table - 创建新表
(5)alter table - 变更(改变)数据库表
(6)drop table - 删除表
(7)create index - 创建索引(搜索键)
(8)drop index - 删除索引
(9)show table - 查看表

DML操作(数据操作语言)包括:Load 、Insert、Update、Delete、Merge。

(1)load data - 加载数据
(2)insert into - 插入数据
insert overwrite - 覆盖数据(insert … values从Hive 0.14开始可用。)
(3)update table - 更新表(update在Hive 0.14开始可用,并且只能在支持ACID的表上执行)
(4)delete from table where id = 1; - 删除表中ID等于1的数据(delete在Hive 0.14开始可用,并且只能在支持ACID的表上执行)
(5)merge - 合并(MERGE在Hive 2.2开始可用,并且只能在支持ACID的表上执行)
注意:频繁的update和delete操作已经违背了Hive的初衷。不到万不得已的情况,还是使用增量添加的方式最好。

DDL数据库操作

create database 数据库名 创建数据库
desc/describe database 数据库名 查看数据库表结构
drop database if exists 数据库名 删除数据库

DDL数据表操作

show tables; 查看数据库下存在的表
create table cat(cat_id string,cat_name string); 创建内部表
create external cat2(cat_id string,cat_name string); 创建外部表
create table cat4 like cat; 创建与cat结构一致的cat4表
desc cat; 查看表结构
alter table cat2 add columns(group_id string,cat_code string); 修改表结构
drop table cat3; 删除表
select * from cat; 查看表内容

DML数据的导入

先创建一个cat_group,导入内容以‘\t'划分
create table cat_group(group_id string,group_name string)   
           row format delimited fields  
           terminated by '\t' stored as textfile;  
load data local inpath ‘本地文件路径’ into table cat_group; 从本地文件导入
load data inpath ‘hdfs文件路径’ into table cat_group; 从hdfs上文件导入
insert into table cat_group2 select * from cat_group; 表与表之间导入
insert overwrite table cat_group2 select * from cat_group; 导入,覆盖内容
create table cat_group3 as select * from cat_group2; 创建时从表导入

DML数据的导出

insert overwrite local directory ‘本地路径’ select * from cat_group; 导出到本地
insert overwrite local directory ‘本地路径’ select group_id,concat(’\t’,group_name) from cat_group; 导出本地,并指定分割符
insert overwrite directory ‘hdfs路径’ select * from cat_group; 导出到hdfs上
insert into table cat_group3 select * from cat_group; 表与表之间的导出

待完善…

发布了9 篇原创文章 · 获赞 15 · 访问量 1434

猜你喜欢

转载自blog.csdn.net/weixin_40864434/article/details/103232803