hive程序员工具癖

Hive基础知识整理(1)

2018-02-22  本文已影响545人  花生花二三说

参考链接:视频教程
慕课网--走进Hive

一、数据仓库

数据仓库是一个面向主题的(有特定需求)、集成的(来自多个源)、不可更新的(只做查询操作)、随时间不变化的数据集合。它用于支持企业或组织的决策分析处理。

1、数据仓库的结构和建立过程: 数据仓库的结构和建立过程

2、OLTP && OLAP

OLTP:联机事务处理过程,面向事物,如银行转账系统
OLAP:联机事物分析,面向查询,如商品推荐系统

3、数据仓库中的数据模型:

星型模型——》雪花模型


星型模型
雪花模型

二、Hive

1、什么是Hive

(1) 建立在Hadoop HDFS上的数据仓库基础架构
(2) 可以用来进行ETL
(3) 定义了类似于SQL,成为HQL
(4) 允许MapReduce自定义

Hive是SQL解析引擎,将SQL——》M/R job

Hive的表其实就是HDFS的目录/文件

2、Hive的体系结构

hive体系结构

Hive的元数据:


Hive元数据

HQL的执行过程:


HQL执行过程

3、Hive的安装

Hive依赖于Hadoop的安装

Hadoop的安装:
(1)单机环境
(2)伪分布式环境
(3)集群环境

Hive的安装模式:三种

(1)嵌入模式
(2)本地模式
(3)远程模式

4、Hive的启动方式:

(1) CLI命令行方式
(2) Web界面方式
默认端口号:9999
启动方式:

hive --service hwi &

通过浏览器来访问:http://<ip地址>:9999/hwi/
(3) 远程服务启动方式
端口号:10000
启动方式:

hive --service hwi &

5、Hive的数据类型

(1)基本数据类型

6、Hive的数据存储

(1)基于HDFS
(2)没有专门的数据存储格式
(3)存储结构主要包括:数据库、文件、表、试图
(4)可以直接加载文本文件(.txt)
(5)创建表时,可以指定Hive的列分隔符与行分隔符(默认无分隔符)

7、Hive的数据模型

(1)内部表(table)

例:

Create table T1
(Tid int,tname string,age int)

Create table T2
(Tid int,tname string,age int)
Location ‘/mytable/hive/t2’
--指定表存储位置

Create table T3
(Tid int,tname string,age int)
Row format delimited fields terminated by ‘,’
--指定行的分隔符是逗号

Create table T4
as
select * from sample_data
--创建表的同时创建数据,用查询语句创建数据,t4表内容与结构与表sample_data相同

Create table T5
Row format delimited fields terminated by ‘,’
as
select * from sample_data

Alter table T1 add columns(English int)
--T1表加了一列,改变表的结构

(2)分区表

例:

Create table Partion_table
(sid int,sname,string)
Partition by (gender string)
Row format delimited fields terminated by ‘,’
---创建分区表

Insert into table partition_table partition(gender=’F’)
Select sid,sname from sample_data where gender=’F’

分区表作用:在查询操作时,降低扫描次数,提高查询效率

如何知道查询效率提高,生成执行计划

explain select * from T where gender=‘M’

(3)外部表(extennal table)

例:

Create external table external_student
(Tid int,tname string,age int)
Row format delimited fields terminated by ‘,’
Location ‘/input’

(4) 桶表(Bucket table)

Create table bucket_table
(Tid int,tname string,age int)
clusterd  by(sname) into 5 buckets;
--根据sname字段进行哈希运算,放入5个桶中

(5) 视图(view)

Create View empinfo
as
select e.emptno,e.ename,e.sale,e.sale*12 annlsal d.dname
from emp e,dept d
where e.deptno=d.deptno

其他知识点:

静默模式:不显示map/reduce过程
命令行:

hive -S

上一篇下一篇

猜你喜欢

热点阅读