大数据基础之HIVE(一)——基础知识,初学必看

什么是HIVE?

1、基于Hadoop的数据仓库解决方案
将结构化的数据文件映射为数据库表
提供类sql的查询语言HQL(Hive Query Language)
Hive让更多的人使用Hadoop
2、Hive成为Apache顶级项目
HIve始于2007年的Facebook
官网:hive.apache.org

HIVE的优势和特点

1、提供了一个简单的优化模型
2、HQL类SQL语法,简化MR开发
3、支持在不同的计算框架上运行
4、支持在HDFS和HBase上临时查询数据
5、支持用户自定义函数、格式
6、成熟的JDBC和ODBC驱动程序,用于ETL和BI
7、稳定可靠(真实生产环境)的批处理
8、有庞大活跃的社区

HIVE元数据管理

HIVE将数据结构存储在关系数据库中,默认为Derby,但Derby只适用于测试和演示,不适合生产环境。实际在一般的生产环境中会存储在MySQL中。
HCatalog:将HIVE的元数据分享给其他应用程序。
HIVE的存储的数据也不是存储在HIVE里的,而是存储在HDFS上的。

HIVE体系架构

在这里插入图片描述

HIVE命令窗口模式:

有两种工具:Beeline和HIVE命令行
有两种模式:命令模式和交互模式
在这里插入图片描述
在这里插入图片描述

HIVE工具操作

使用HIVE:
hive
使用beeline:
hiveserver2
beeline -u jdbc://hive2://192.168.56.101:10000 -n root

HIVE数据类型

基本数据类型:
在这里插入图片描述
复杂数据类型:
在这里插入图片描述

HIVE元数据结构

在这里插入图片描述

HIVE数据表

分为内部表和外部表
内部表(管理表)
HDFS中为所属数据库目录下的子文件夹
数据完全有HIVE管理,删除表(元数据)会删除数据

创建内部表(就跟在mysql里建表同样):

create table TABLE_NAME(FIELDS_NAME);

外部表(External Tables)
数据保存在指定位置的HDFS路径中
HIVE不完全管理数据,删除表(元数据)不会删除数据
在这里插入图片描述

创建外部表:

create external table TABLE_NAME(
FIELDS_NAME....
)
//如何分割列(字段)
row format delimited fields terminated by ','  
//如何分割集合和映射
collection items terminated by ',' 
map keys terminated by ','
//文件存储格式
stored as textfile
//数据再HDFS上的存储路径
location '/usr/root/mydata';

HIVE建表高阶语句-ctas and with

ctas-as select方式建表

create table TABLE_NAME as select * from OTHER_TABLE_NAME

cte(ctas with common table expression)

create table TABLE_NAME as 
with
r1 as (select name from r2 where name='Mike'),
r2 as (select name from TABLE_NAME where sex='male'),
r3 as (select name from TABLE_NAME where sex='female')
select * from r1 union all select * from r3;

like(创建与其他表相同的表结构的表)

create table TABLE_NAME like OTHER_TABLE_NAME;

创建临时表

create temporary table TABLE_NAME.....

HIVE表删除和修改

删除表:

drop table TABLE_NAME        //删除表
truncate table TABLE_NAME    //删除表数据

修改表:

//修改表名
alter table TABLE_NAME rename to NEW_TABLE_NAME;
//修改列名
alter table TABLE_NAME change old_name new_name string;
//添加列
alter table TABLE_NAME add columns (name string);
//替换列
alter table TABLE_NAME replace columns (name string);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值