【Hive】Hive基本操作

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 - 加载数据

①insert into - 插入数据

②insert overwrite - 覆盖数据(insert … values从Hive 0.14开始可用。)

(2)update table - 更新表(update在Hive 0.14开始可用,并且只能在支持ACID的表上执行)

(3)delete from table where id = 1; - 删除表中ID等于1的数据(delete在Hive 0.14开始可用,并且只能在支持ACID的表上执行)

(4)merge - 合并(MERGE在Hive 2.2开始可用,并且只能在支持ACID的表上执行)

注意:频繁的update和delete操作已经违背了Hive的初衷。不到万不得已的情况,还是使用增量添加的方式最好。

实验步骤

一、实验环境准备

1.首先在Linux本地新建/data/hive2目录。

mkdir -p /data/hive2
mkdir -p /data/hive2

2.切换到/data/hive2目录下,使用wget命令,下载http://59.74.172.143:60000/allfiles/hive2中cat_group和goods文件。

cd /data/hive2
wget http://59.74.172.143:60000/allfiles/hive2/cat_group
wget http://59.74.172.143:60000/allfiles/hive2/goods

3.输入jps检查Hadoop相关进程,是否已经启动。若未启动,切换到/apps/hadoop/sbin目录下,启动Hadoop。

jps
cd /apps/hadoop/sbin
./start-all.sh

4.开启Hive,首先,需要保证Mysql启动。执行以下命令,查看Mysql的运行状态

sudo service mysql status

输出显示Mysql未启动。执行以下启动命令。
在这里插入图片描述
sudo service mysql start
然后切换到/apps/hive/bin目录下,开启Hive。

cd /apps/hive/bin
./hive

二、Hive数据仓库的操作

1.在Hive中创建一个数据仓库,名为DB。

create database DB;
在这里插入图片描述
2.以上简单创建了一个DB库,但是这条sql可以更进一步的优化,我们可以加上if not exists。

create database if not exists DB;
解析:在创建库时,应避免新建的库名与已有库名重复,如果库名重复将会报出以下错误(我在已有DB库的前提下,再次创建了DB库)。
在这里插入图片描述

错误提示数据仓库DB已经存在, 那么加入的if not exists就起了作用,如下(在已有DB库的前提下,再次创建DB库,提示成功不会报错)
在这里插入图片描述

加入if not exists的意思是如果没有DB库就创建,如果已有就不再创建。

3.查看数据仓库DB的信息及路径。

describe database DB;
在这里插入图片描述

4.删除名为DB的数据仓库。

drop database if exists DB;
在这里插入图片描述
三、Hive数据表的操作

Hive的数据表分为两种:内部表和外部表。

Hive创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径, 不对数据的位置做任何改变。在删除表的时候&#

你可能感兴趣的:(【Hive】Hive基本操作)