没有合适的资源?快使用搜索试试~ 我知道了~
2. 以上简单创建了一个DB库,但是这条HQL可以更进一步的优化,我们可以加上if not exists 3. 查看数据仓库DB的信息及路径 4. 删除名为DB
资源详情
资源评论
资源推荐
15. 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 的初衷。不到万不得已的情况,还是使
用增量添加的方式最好。
实验内容
(1)数据库的创建与删除。
(2)表的创建、修改、删除。
(3)表中数据的导入导出。
(4)表分区与桶的创建、修改、删除。
实验步骤
一、实验环境准备
1. 首先在 Linux 本地新建/home/hfut/hive-data 目录。
[hfut@master ~]$ mkdir -p /home/hfut/hive-data
2. 复制~/resource/hive-data 中 cat_group 和 goods 文件到~/hive-data。
[hfut@master ~]$ cp ~/resources/hive-data/* ~/hive-data/
3. 输入 jps 检查 Hadoop 相关进程,是否已经启动。若未启动,则启动 Hadoop。
[hfut@master ~]$ start-all.sh
4. 开启 Hive,首先,需要保证 Mysql 启动。执行以下命令,查看 Mysql 的运行状态。
[hfut@master ~]$ su root
[root@master hfut]# service mysqld status
输出显示 Mysql 未启动。执行以下启动命令。
[root@master hfut]# service mysqld start
然后切换到 hfut 用户,开启 Hive。
[root@master hfut]# exit
[hfut@master ~]$ hive
二、Hive 数据仓库的操作
1. 在 Hive 中创建一个数据仓库,名为 DB。
hive> create database DB;
2. 以上简单创建了一个 DB 库,但是这条 HQL 可以更进一步的优化,我们可以加上 if not
exists。
hive> create database if not exists DB;
解析:在创建库时,应避免新建的库名与已有库名重复,如果库名重复将会报出以下错误
(我在已有 DB 库的前提下,再次创建了 DB 库)。
错误提示数据仓库 DB 已经存在, 那么加入的 if not exists 就起了作用,如下(在已有 DB
库的前提下,再次创建 DB 库,提示成功不会报错)
加入 if not exists 的意思是如果没有 DB 库就创建,如果已有就不再创建。
3. 查看数据仓库 DB 的信息及路径。
hive> describe database DB;
4. 删除名为 DB 的数据仓库。
hive> drop database if exists DB;
三、Hive 数据表的操作
Hive 的数据表分为两种:内部表和外部表。
Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所
在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起
删除,而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也
更加灵活,方便共享源数据,生产中常使用外部表。
下面详细介绍对表操作的命令及使用方法:
即将创建的表,表名不能和已有表名重复,否则会报错,现在我们 show tables 一下,查看
已存在的表。
hive> show tables;
现在库中没有表。
1. 创建一个名为 cat 的内部表,有两个字段为 cat_id 和 cat_name,字符类型为 string。
hive> create table cat(cat_id string, cat_name string);
查看是否创建成功。
hive> show tables;
下面我们再次创建一个与刚才表名相同的表,看一下报错。
hive> create table cat(cat_id string, cat_name string);
剩余17页未读,继续阅读
阿汝娜老师
- 粉丝: 21
- 资源: 309
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0