Hive基本操作

目的

1.了解Hive的基本操作

2.了解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的初衷。不到万不得已的情况,还是使用增量添加的方式最好。

环境

Linux Ubuntu 16.04

jdk-7u75-linux-x64

hive-1.1.0-cdh5.4.5

hadoop-2.6.0-cdh5.4.5

mysql-5.7.24

内容

1.数据库的创建与删除。

2.表的创建、修改、删除。

3.表中数据的导入导出。

4.表分区与桶的创建、修改、删除。

步骤

一、环境准备

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

  1. mkdir -p /data/hive2  

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

  1. cd /data/hive2  
  2. wget http://172.16.103.12:60000/allfiles/hive2/cat_group  
  3. wget http://172.16.103.12:60000/allfiles/hive2/goods  

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

  1. jps  
  2. cd /apps/hadoop/sbin  
  3. ./start-all.sh  

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

  1. sudo service mysql status  

输出显示Mysql未启动。执行以下启动命令。

  1. sudo service mysql start  

然后切换到/apps/hive/bin目录下,开启Hive。

  1. cd /apps/hive/bin  
  2. ./hive  

二、Hive数据仓库的操作

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

  1. create database DB;  

2.以上简单创建了一个DB库,但是这条sql可以更进一步的优化,我们可以加上if not exists。

  1. create database if not exists DB;  

解析:在创建库时,应避免新建的库名与已有库名重复,如果库名重复将会报出以下错误(我在已有DB库的前提下,再次创建了DB库)。

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

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

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

  1. describe database DB;  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值