HIVE

一. 数据仓库和数据库的区别

数据库和数据仓库在本质没有区别,都是用来存储数据的,只不过从数据量上讲,数据仓库的数据存储量要比数据库大很多,数据库用于存储一些基本的业务数据,而数据仓库则用于数据的分析和挖掘。

二. hive的基本概念

  1. hive是基于hadoop生态圈的数据仓库,通过hive,我们可以方便地进行ETL(数据的提取、转化、加载)的工作。
  2. hive本身不存储数据,数据真正存储在hdfs上,hive定义了一个类似于SQL的查询语言:HQL,能够将用户编写的QL转化为相应的Mapreduce程序基于Hadoop执行。可以理解hive就是MapReduce的客户端。
  3. 由于大部分人对MapReduce不熟悉,但是对于sql语句熟悉,所以hive就因此诞生,帮助大家把sql转成mapreduce在hadoop中执行。

三. hive的操作语句

  1. 创建一个hive库:
create database my_hive;
  1. 创建hive表:
create table my_table(
    id      int,
	name    string
)
#将HDFS上的文件映射成Hive表结构,通过分隔符来区分列
row format delimited fields terminated by ','   
 #HDFS文件存放的格式
stored as TEXTFILE;  
  1. 数据准备:student.txt
1,xiaoming
2,zhangsan
3.lisi
  1. 插入hive中:
load data local inpath "/home/temp/student.txt" into table my_table;
  1. 查询:
select * from my_table;

在这里插入图片描述

四. hive表结构及数据的存储

hive可以创建表结构,但是表中不存储数据,数据的存储实际上是在hdfs上, hive数据库对应的相关元数据表(hive数据库元素是存储在mysql中的,mysql是在hive-site.xml文件中配置),hdfs和hive的映射。

  1. hive版本的元数据表:version
    在这里插入图片描述

  2. hive库对应的mysql表:dbs
    在这里插入图片描述

  3. hive表对应的mysql表:tbls
    在这里插入图片描述

  4. 表字段
    在这里插入图片描述

  5. 数据在hdfs中的存储:
    在这里插入图片描述

五. HQL语句执行流程

用户输入hql语句,hive根据mysql中的表结构存储信息,将hql语句转换成MapReduce程序,MapReduce计算HDFS中符合条件的数据返回给hive客户端。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

victor-维克特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值