Hive数据仓库笔记

Hive课程介绍

前言:Hive是数据仓库工具

MySQL基本知识回顾:

  • DDL:数据定义语言
    • 增删改查数据库/表
    • create database 库名;
    • dorp database 库名;
    • create table 表名(字段 类型。。)
    • drop table 表名
  • DML:数据操作语言
    • 对表数据的增删改
    • insert into …
    • delete …
    • update …
  • DCL:数据操纵语言
  • DQL:数据查询语言
    • 对表数据的查
    • select * from 表名

Hive的语句:HQL:Hive sql:使用HQL写类sql语句,达到数据分析的目的,

数据仓库:存储数据的仓库,一般做集群,数据分析

hive包括以下内容:

  • hive基本概念
    • hive和数据库对比
    • hive特点
  • hive架构原理
  • hive安装
  • hive数据类型
  • DDL:数据定义语言
  • DML:数据操作语言
  • DQL:数据查询语言
  • 分区和分桶
    • 分区表
    • 分桶表
  • hive函数
    • 系统内置函数(自带)
    • 自定义函数
  • hive数据压缩
  • hive优化
  • hive综合案例

Hive基本概念

1、Hive简介

Hive:由 Facebook 开源用于解决海量结构化日志的数据统计工具

Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能。

Hive本质:将HQL转换成Mapreduce程序,Hive的数据存储在HDFS里面,

mysql和hive的对比:

​ 数据库MySQL:存储数据的仓库,单个机器能够存储的数据量小, 可以增删改查数据 引擎:InnDB

​ 数据仓库Hive:存储数据的仓库,一般集群部署,存储的数据量大,可以增删改查数据 引擎:MapReduce

sql语言:是数据库的语言,结构化查询语言

  • Hive 处理的数据存储在 HDFS
  • Hive 分析数据底层的实现是 MapReduce
  • 执行程序运行在 Yarn 上

2、Hive优缺点

优点:

  • 能够存的数据比传统的数据库大
  • 不用去写复杂的MapReduce代码了
  • 容错性高…

缺点:

  • 运行速度慢,效率低
  • 不是所有的MR程序都能用Hive去写(所有的Hive语句都可以好用MR去写)

3、Hive架构原理

在这里插入图片描述

  • 1) 用户接口: Client
    CLI(command-line interface)、 JDBC/ODBC(jdbc 访问 hive)、 WEBUI(浏览器访问 hive)
  • 元数据: Metastore
    元数据包括:表名、表所属的数据库(默认是 default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等

HDFS 的元数据:将Linux本地文件和HDFS文件系统做映射,建立映射关系

HIVE元数据:将HDFS的元数据和HIVE的表做映射

  • Hadoop
    使用 HDFS 进行存储,使用 MapReduce 进行计算
  • 驱动器: Driver
    • 解析器(SQL Parser):将 SQL 字符串转换成抽象语法树 AST,这一步一般都用第三方工具库完成,比如 antlr;对 AST 进行语法分析,比如表是否存在、字段是否存在、 SQL语义是否有误。
    • 编译器(Physical Plan):将 AST 编译生成逻辑执行计划。
    • 优化器(Query Optimizer):对逻辑执行计划进行优化。
    • 执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于 Hive 来说, 就是 MR/Spark。

Hive 通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的 Driver,结合元数据(MetaStore),将这些指令翻译成 MapReduce,提交到 Hadoop 中执行,最后,将执行返回的结果输出到用户交互接口

4、Hive和数据库的比较

  • 查询语言:
    • 数据的语言叫做sql(结构化查询语言)
    • hive的语言叫做hql(hive sql)
  • 数据更新
    • 数据库一般存储业务数据,数据库中的数据通常频繁的更新
    • hive作为数据仓库,主要通过写hql做数据分析,虽然可以修改hive中的数据,但是一般不会这样做
  • 执行延迟
    • 数据库的CRUD(增删改查)操作延迟很小,通常在几毫秒
    • hive的底层是引擎是MR,执行延迟慢很多
  • 数据规模
    • 数据库单机存储量较小,(可以做集群)
    • 数据仓库一般为集群部署,数据规模可以无限扩展
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值