数据仓库概念
数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。
数据仓库的目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持(Decision Support)。

数据仓库为何而来,解决什么问题的?
为了分析数据而来,分析结果给企业决策提供支撑。

(1)业务数据的存储问题
联机事务处理系统(OLTP)可以满足业务需求开展, 其主要任务是执行联机事务处理。其基本特征是前台接收的用户数据可以立即传送到后台进行处理,并在很短的时间内给出处理结果?
关系型数据库(RDBMS)是OLTP典型应用,比如:Oracle、MySQL、SQL Server等。

(2)分析型决策的制定
随着业务的持续运营,业务数据将会越来越多。由此也产生出许多运营相关的困惑。为了能够正确认识问题,制定相关的解决措施,最稳妥办法就是:基于业务数据开展数据分析,基于分析的结果给决策提供支撑。也就是数据驱动决策的制定。

OLTP环境开展分析可行吗?
可以,但是没必要
OLTP系统的核心是面向业务,支持业务,支持事务。所有的业务操作可以分为读、写两种操作,一般来说读的压力明显大于写的压力。如果在OLTP环境直接开展各种分析,有以下问题需要考虑:
数据分析也是对数据进行读取操作,会让读取压力倍增;
OLTP仅存储数周或数月的数据;
数据分散在不同系统不同表中,字段类型属性不统一...

当分析所涉及数据规模较小的时候,在业务低峰期时可以在OLTP系统上开展直接分析。
但为了更好的进行各种规模的数据分析,同时也不影响OLTP系统运行,此时需要构建一个集成统一的数据分析平台。该平台的目的很简单:面向分析,支持分析,并且和OLTP系统解耦合。
基于这种需求,数据仓库的雏形开始在企业中出现了。

如数仓定义所说,数仓是一个用于存储、分析、报告的数据系统,目的是构建面向分析的集成化数据环境。我们把这种面向分析、支持分析的系统称之为OLAP(联机分析处理)系统。当然,数据仓库是OLAP系统的一种实现。

数仓主要特征

面向主题:主题是一个抽象的概念,是较高层次上数据综合、归类并进行分析利用的抽象
集成性:主题相关的数据通常会分布在多个操作型系统中,彼此分散、独立、异构。需要集成到数仓主题下。
非易失性:也叫非易变性。数据仓库是分析数据的平台,而不是创造数据的平台。
时变性:数据仓库的数据需要随着时间更新,以适应决策的需要。

什么是Hive
Apache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。
Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行。
Hive由Facebook实现并开源。

使用Hive处理数据的好处
操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)
避免直接写MapReduce,减少开发人员的学习成本
支持自定义函数,功能扩展很方便
背靠Hadoop,擅长存储分析海量数据集

Hive和Hadoop关系
从功能来说,数据仓库软件,至少需要具备下述两种能力:存储数据的能力、分析数据的能力。
Apache Hive作为一款大数据时代的数据仓库软件,当然也具备上述两种能力。只不过Hive并不自己实现了上述两种能力,而是借助Hadoop。
Hive利用HDFS存储数据,利用MapReduce查询分析数据。
Hive的最大的魅力在于用户专注于编写HQL,Hive帮您转换成为MapReduce程序完成对数据的分析。

Hive能将数据文件映射成为一张表,这个映射是指什么?
Hive软件本身到底承担了什么功能职责?

映射信息记录
映射在数学上称之为一种对应关系,比如y=x+1,对于每一个x的值都有与之对应的y的值。
在hive中能够写sql处理的前提是针对表,而不是针对文件,因此需要将文件和表之间的对应关系描述记录清楚。
映射信息专业的叫法称之为元数据信息(元数据是指用来描述数据的数据 metadata)。

具体来看,要记录的元数据信息包括:
表对应着哪个文件(位置信息)
表的列对应着文件哪一个字段(顺序信息)
文件字段之间的分隔符是什么

SQL语法解析、编译
用户写完sql之后,hive需要针对sql进行语法校验,并且根据记录的元数据信息解读sql背后的含义,制定执行计划,并且把执行计划转换成MapReduce程序来具体执行,把执行的结果封装返回给用户。

Hive架构图

用户接口
包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)为shell命令行;Hive中的Thrift服务器允许外部客户端通过网络与Hive进行交互,类似于JDBC或ODBC协议。WebGUI是通过浏览器访问Hive。

元数据存储
通常是存储在关系数据库如 mysql/derby中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。

Driver驱动程序,包括语法解析器、计划编译器、优化器、执行器
完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有执行引擎调用执行。

执行引擎
Hive本身并不直接处理数据文件。而是通过执行引擎处理。当下Hive支持MapReduce、Tez、Spark3种执行引擎。

什么是元数据
元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

Hive Metadata即Hive的元数据。
包含用Hive创建的database、table、表的位置、类型、属性,字段顺序类型等元信息。
元数据存储在关系型数据库中。如hive内置的Derby、或者第三方如MySQL等。

Hive Metastore
Metastore即元数据服务。Metastore服务的作用是管理metadata元数据,对外暴露服务地址,让各种客户端通过连接metastore服务,由metastore再去连接MySQL数据库来存取元数据。
有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore服务即可。某种程度上也保证了hive元数据的安全。

metastore配置方式
metastore服务配置有3种模式:内嵌模式、本地模式、远程模式。
区分3种配置方式的关键是弄清楚两个问题:
Metastore服务是否需要单独配置、单独启动?
Metadata是存储在内置的derby或第三方RDBMS,比如MySQL。
企业推荐模式--远程模式。

在生产环境中,建议用远程模式来配置Hive Metastore。在这种情况下,其他依赖hive的软件都可以通过Metastore访问hive。由于还可以完全屏蔽数据库层,因此这也带来了更好的可管理性/安全性。

Hive SQL(HQL)

--创建数据库并切换使用
create database if not exists itheima;
use itheima;
--ddl create table
create table t_archer(
id int comment "ID",
name string comment "英雄名称",
hp_max int comment "最大生命",
mp_max int comment "最大法力",
attack_max int comment "最高物攻",
defense_max int comment "最大物防",
attack_range string comment "攻击范围",
role_main string comment "主要定位",
role_assist string comment "次要定位"
) comment "王者荣耀射手信息"
row format delimited
fields terminated by "\t";

Hadoop 4:Hive相关推荐

  1. Hadoop最常用的工具(SQL on Hadoop):Hive

    认识Hive 对十Hadoop的出现,无论是业界还是学术界对其都给予了极高的关注度,Hadoop及其生态圈提供了一个成熟高效的处理海量数据集的解决方案.随着Hadoop越来越流行,一个问题也随之产生: ...

  2. Hadoop集群的基本操作(四:Hive的基本操作)

    实验 目的 要求 目的: (1)掌握数据仓库工具Hive的使用: 要求: 掌握数据仓库Hive的使用: 能够正常操作数据库.表.数据: 实 验 环 境 五台独立PC式虚拟机: 主机之间有有效的网络连接 ...

  3. Hadoop集群搭建(八:Hive的安装配置)

    实验 目的 要求 目的: (1)掌握数据仓库工具Hive的安装和配置: 要求: 完成Hive工具的安装和配置: Hive工具能够正常启动运行: Hive控制台命令能够正常使用: 能够正常操作数据库.表 ...

  4. Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别

    Pig 一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了.当初雅虎自己慢慢退出pig的维护之后将它开源贡献到开源社区由所有爱好者来维护.不过现在还是有些公司在用,不过我 ...

  5. Hadoop学习之第七章节:Hive安装配置

    环境要求: mysql hadoop hive版本为:apache-hive-1.2.1-bin.tar 1.设置hive用户 进入mysql命令行,创建hive用户并赋予所有权限: mysql -u ...

  6. HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介

    本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...

  7. 急性子的开源​​大数据,第 1 部分: Hadoop 教程:Hello World 与 Java、Pig、Hive、Flume、Fuse、Oozie,以及 Sqoop 与 Informix、DB2 和

    如何开始使用 Hadoop 和自己喜欢的数据库 本文的重点是解释大数据,然后在 Hadoop 中提供简单的工作示例,Hadoop 是在大数据领域的主要开源选手.您会很高兴地听到,Hadoop 并不是 ...

  8. 错误解决:hive报错Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

    临时生效: # 开启本地模式,并执行查询语句 set hive.exec.mode.local.auto=true; 永久生效: <property><name>hive.ex ...

  9. 2021年大数据Hive(十二):Hive综合案例!!!

    全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hive综合案例 一.需求描述 二.项目表的字段 三.进 ...

最新文章

  1. sudo spctl --master-disable_Φ560加长哈夫节--南宫哈夫节定做厂家
  2. python编程if语法-python if控制流语句 语法笔记
  3. 北京计算机科学与技术学院,计算机科学与技术学院
  4. 很多程序员都在抱怨加班多,觉得该做的都做了,别人没做的,自己都做了。为什么?为什么别人能拿到几万的工资,自己只能拿到零头呢?
  5. php mysql html 转义字符_php, html, javascript, mysql 之间的特殊字符处理
  6. 和合符放枕头下的作用_深度解析:记忆棉枕头好,还是乳胶枕头好?
  7. v$sql、v$sqlarea 、v$sqltext
  8. 到底工资要多少合适?
  9. mysql配置ip和端口_连接(Connectivity)选项中,“TCP/IP”复选项选中表示启用TCP/IP网络协议,配置连接MySQL服务器的默认端口号为“3306”。_学小易找答案...
  10. 51nod 1791 合法括号子段
  11. Excel批量生成minitab图表(自动化)
  12. 服务器运行cad慢,cad启动很慢的三种解决方法
  13. MB/s MiB/s之间换算
  14. python显示gif图片_利用Python制作GIF图片
  15. 谢文的yiqi有戏没?
  16. MT6575芯片原理图MT6575原理图及量产板
  17. 生物信息学(3)——双序列比对之BLAST算法简介
  18. 汉堡菜单html加logo,HTML+Sass实现HambergurMenu(汉堡包式菜单)
  19. SMC 真空发生器 ZK2A 电气接线接气方法
  20. 电脑爱好者计算机杂志,电脑爱好者杂志

热门文章

  1. HQL语法与详细解释[整理]
  2. 利用 Redis Bitmap 统计用户在线次数
  3. Redis学习之基础知识
  4. 解决飞Q 在win7下 找不到的问题
  5. 口袋精灵加速版java_口袋妖怪TCG!口袋对决加速版教程(免ROOT)
  6. 项目经理:衡量项目成功与否的关键,在于这三个要素
  7. https不能访问时的解决方案
  8. 简单认识c语言的概念
  9. HashMap?面试?我是谁?我在哪?
  10. excel学习打卡(二)