大数据-什么是Hive?&&Hive中ETL的实战&&HQL介绍&&数据仓库的特征&&Hive的适用场景

一、什么是Hive?


1、Hadoop开发存在的问题

只能用java语言开发,如果是c语言或其他语言的程序员用Hadoop,存在语言门槛。

需要对Hadoop底层原理,api比较了解才能做开发。

2、Hive概述

Hive是基于Hadoop的一个数据仓库工具。可以将结构化的数据文件映射为一张表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过SQL语句快速实现MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

二、ETL(数据提取、转化、加载)


Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取、转化、加载(ETL Extract-Transform-Load ,这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类SQL 查询语言,称为 HiveQL,它允许熟悉 SQL 的用户查询数据。

三、Hive的HQL


HQL - Hive通过类SQL的语法,来进行分布式的计算。HQL用起来和SQL非常的类似,Hive在执行的过程中会将HQL转换为MapReduce去执行,所以Hive其实是基于Hadoop的一种分布式计算框架,底层仍然是MapReduce,所以它本质上还是一种离线大数据分析工具。

 四、数据仓库的特征


1.数据库是面向事务的设计,数据仓库是面向主题设计的。

          面向主题设计指的是围绕一些重要主题,如顾客、供应商、产品等主题。数据仓库关注决策者的数据建模与分析,而不是公司的日常数据操作和事务处理。因此,数据仓库通常排除对于决策无用的数据,提供特定主体的简明视图。

          比如一个表拆成几个维度的子表:①小区上网能力表,②APP应用受欢迎程度表,③流量分析表

2.数据库一般存储在线交易数据,数据仓库存储的一般是历史数据

3.数据库设计是尽量避免冗余,数据仓库在设计是有意引入冗余。

4.数据库是为捕获数据而设计,数据仓库是为分析数据而设计。

5.数据仓看是集成的。

          通常,构造数据仓库是将多个异构数据源,如关系数据库、一般文件和联机事务处理记录集成在一起的。使用数据清理和数据集成技术,确保命名约定、属性度量等的一致性

6.数据仓库是时变的,数据存储从历史的角度提供信息。即数据仓库中的关键结构都隐式或显示地包含时间元素。

7.数据仓库最大的特点是弱事务的,因为数据仓库存的是历史数据,一般都读(分析)数据场景。

总结:数据仓库充当决策支持数据模型的物理实现,并存储企业战略决策所需要的信息。支持结构化、非结构化、面向主题的查询。

五、数据库和数据仓库的区别


数据库属于OLTP系统。(Online Transaction Processing)联机事务处理系统。涵盖了企业大部分的日常操作,如购物、库存、制造、银行、工资、注册、记账等。

数据仓库属于OLAP系统。(Online Analytical Processing)联机分析处理系统。

OLTP是面向用户的、用于程序员的事务处理以及客户的查询处理。

OLAP是面向市场的,用于知识工人(经理、主管和数据分析人员)的数据分析。

OLAP通常会集成多个异构数据源的数据,数量巨大。

OLTP系统的访问由于要保证原子性,所以有事务机制和恢复机制。

OLAP系统一般存储的是历史数据,所以大部分都是只读操作,不需要事务。

六、Hive的适用场景 


Hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive 在几百MB 的数据集上执行查询一般有分钟级的时间延迟。因此,Hive 并不适合那些需要低延迟的应用,例如,联机事务处理(OLTP)。Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为联机事务处理而设计,Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析

猜你喜欢

转载自blog.csdn.net/weixin_47055922/article/details/108356130
今日推荐