1. 数据仓库简介

1.1 数据仓库

可以利用数据仓库来保存我们的数据,但是数据仓库有别于我们常见的一般数据库。数据仓库是一个面向主题的、集成的、不可更新的、随时间不变化的数据集成,它用于支持企业或组织的决策分析处理。

面向对象的:仓库中的数据是按照一定的主题进行组织的。

主题即用户使用数据仓库进行决策时所关心的重点方面。如商品的推荐系统,它也是基于数据仓库所做出来的系统,其中,我们关心的主题也就是我们商品的信息。

集成的:数据仓库中的数据来自于分散的、操作型的数据,将分散型的操作数据从原来的数据中抽取出来进行加工和处理,然后将满足要求的数据存入数据仓库中。

原来的数据有可能来自Oracle,也有可能来自Mysql,DB2,Redis,MongoDb等数据库,也有可能来自文本文件和其他的操作系统,因此,需要把不同的数据集成起来就组成了数据仓库。

不可更新的:数据仓库主要是为了决策分析,所提供数据,所以主要涉及的操作是数据查询,因此其中的数据是不可更新的。
随时间不变化的:一般都不会在数据仓库中做更新和删除操作,因为数据仓库就是做查询操作,因此数据仓库中的数据是随着时间的推移而不产生。

1.2 数据仓库的结构和建立过程

(1)数据源

  • 业务系统的数据:Oracle、Mysql等关系型数据库,Redis、MongoDB等非关系型数据库

  • 文档资料:CSV、TXT

  • 其他数据:其他系统的数据

(2)数据存储及管理

进行ETL,并单独存放在一个数据库中,这个数据库就叫做数据仓库。

抽取(Extract):把数据源的数据按照一定的方式读取出来,然后进行格式转换

转换(Transform):将抽取出来的数据按照一定的格式进行转换,然后进行装载。

因为不同数据源的数据格式不同,可能不能满足我们对存储格式的要求,因此,我们需要按照一定的规则对读取到的数据进行转换,只有转换完符合要求的数据才能进行装载。

装载(Load):将满足格式的数据存入数据库中,最终,便建立了数据仓库

(3)数据仓库引擎

通过数据仓库引擎,使数据仓库对外提供服务,不同的服务器提供不同的服务,如数据操作、数据报表、数据分析、各类应用

(4)前端展示

进行前端展示,前端展示的数据均来源于数据仓库引擎中的各个对外服务,而各个服务又读取数据仓库中的数据,这样就完成了整个数据仓库的建立。

1.3 OLTP应用与OLAP应用

OLTP(on-line-transaction processing):联机事务处理

所关注的焦点在于事务的处理

典型的OLTP应用就是“银行转账”

比如,当我们转账的操作,分别为扣钱和加钱的操作,这两个操作应该同时成功或者同时失败,如果有一方失败需要有事务的保证,需要回滚,OLTP的系统面向的是事务,操作的频率会非常高,比如银行转账的业务时刻都会发生其中一方失败的情况。

OLAP(On-Line Analytical Processing):联机分析处理

典型的OLAP应用:商品推荐系统

商品推荐系统这种应用是基于原来它的历史数据,从而进行数据的分析和挖掘,然后提供给别的系统所使用,这种OLAP的应用主要面向的是查询,在这种应用系统当中我们一般不会做更新、删除或者插入的操作,因为里面的数据都是属于历史的数据。

1.4 数据仓库中的数据模型

我们在搭建一个数据仓库的时候通常会使用以下两种模式:

  1. 第一种星型模型,星型模型是搭建数据仓库最基本的一种数据模型。
  2. 第二种雪花模式,是在星型模型的基础之上发展起来的一种新的模型,雪花模型使用于更复杂的应用场景。

第一种:星型模型

由商品信息可以与客户信息、订单信息、厂家信息、物流信息、促销信息产生关联(以商品信息为主题)

是以面向商品信息为核心的星型模型。

第二种:雪花模型

基于星型模型发展起来的雪花模型

由客户信息可以与家庭信息、地址信息、教育背景信息、银行信息产生关联(面向客户信息)

由厂家信息可以与地址信息、员工信息产生关联(面向厂家信息)

2. 什么是Hive

Hive也是一种数据仓库,但与传统的数据仓库又有些 区别

  • Hive是建立在Hadoop HDFS上的数据仓库基础架构

一般的传统数据仓库可以用Oracle、Mysql进行搭建,这时的数据库是存在Oracle、Mysql数据中,而Hive中的数据是存储在HDFS上的,这就Hive最基本的概念。

  • Hive可以用来进行数据提取转化加载(ETL)
  • Hive定义了简单的类似SQL的查询语句,称为HQL,它允许熟悉SQL的用户查询数据
  • Hive允许熟悉MapReduce开发者的开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作
  • Hive是SQL解析引擎,他将SQL语句转换成M/R Job,然后在Hadoop中执行
  • Hive的表其实就是HDFS的目录/文件夹;Hive中的数据其实就是HDFS中的文件

Hive学习笔记 —— Hive概述相关推荐

  1. Hive学习笔记 —— Hive的安装

    1. Hive的安装模式 官网下载安装包:http://hive.apache.org/ 历史版本下载:http://archive.apache.org/ 本次使用:http://archive.a ...

  2. Hive学习笔记 —— Hive的体系结构

    1. Hive的体系结构 Hadoop 用HDFS进行存储,利用MapReduce进行计算 元数据存储(MetaStore) 通常是存储在关心数据库,如mysql.derby中 在Hive执行HQL语 ...

  3. Hive学习笔记 —— Hive的数据类型

    Hive本质上是一个数据库,可以创建表,表有列组成,而列支持的主要类型有:基本数据类型.复杂数据类型.时间数据类型. 1. Hive的数据类型之基本数据类型 tinyint/smallint/int/ ...

  4. Hive学习笔记 —— Hive的管理

    1. Hive的启动方式 CLI(命令行)方式 Web界面方式 远程服务启动方式 2. Hive的管理之CLI方式 直接输入 # <HIVE_HOME>/bin/hive 的执行程序 输入 ...

  5. 最全的Hive学习笔记

    最全的Hive学习笔记 1. 什么是hive 1.1. hive基本思想 1.2 为什么使用Hive 1.3. Hive的特点 2. hive的基本架构 3. hive安装 3.1. 最简安装:用内嵌 ...

  6. Hive学习笔记三之函数操作

    文章目录 5 函数 5.1 系统内置函数 5.2 常用内置函数 5.2.1 空字段赋值 5.2.2 CASE WHEN THEN ELSE END(类似于java中的switch case) 5.2. ...

  7. Hive学习笔记【全】

    Hive学习笔记[全] 文章目录 Hive学习笔记[全] 一.Hive简介 1.Hive是什么 2.Hive的架构 3.Hive的数据组织 二.Hive安装 1.环境需求 2.安装Hive 3.启动H ...

  8. Oracle学习笔记 字符集概述

    Oracle 学习笔记 字符集概述 这节课开始讲oracle里面的字符集 偏重于原理和简单的一些判断以及实现 字符集它涉及到很多的东西 比如建库和操作系统环境 这节课把字符集的原理性的东西以及常见的操 ...

  9. Hive学习笔记(1)基本操作

    hive学习官方网站: General Info ============ For the latest information about Hive, please visit out websit ...

最新文章

  1. 1067. [SCOI2007]降雨量【线段树】
  2. c++ 深度优先搜索(迷宫)
  3. 将 Shiro 作为应用的权限基础 三:基于注解实现的授权认证过程
  4. ppt怎么一次性改全部字体_PPT的字体怎么选择?
  5. 破译密码、设计飞机和建设团队:Randy Shoup谈高绩效团队
  6. android c 调用c,Android NDK 调用C
  7. python打开浏览器全屏_python 打开浏览器的两种方式
  8. step7V5.5中文版
  9. python手机版做小游戏代码大全-用Python设计一个经典小游戏
  10. oracle 定义变量 查询,Oracle定义PL/SQL变量
  11. matlab编写优化目标函数,基于MATLAB的二级齿轮减速器的优化设计
  12. 晶振-电路中的心脏起搏器
  13. Codelf插件的使用
  14. 飞信2009_那个时代独有的目光局限——浅谈“飞信”的兴衰
  15. 一种简单的DWG在线浏览方法
  16. ESP32播放MP3音乐-无需SD卡-WM8978-ESP32解码MP3
  17. sklearn库中的标准数据集及基本功能
  18. Idea如何设置类头注释(图片步骤直接到位)
  19. (STM32笔记)一、STM32特点
  20. 如何从官网下载 Google Chrome 64位离线安装包

热门文章

  1. android 时间转换 工具下载,时间转换器手游下载_时间转换器安卓版下载v1.09.25_3DM手游...
  2. Linux系统的磁盘管理
  3. 多项式拟合缺点_曲线拟合方法的选择
  4. mysql中如何求字段的个数字_求高手帮小弟解决一下!关于mysql字段中数字提取求和的问题?...
  5. oracle RAC信息,Oracle 查看 RAC GI 版本信息
  6. field list什么意思_从源码中学Vue(六)「解密」为什么操作数组的方法也会触发视图更新...
  7. win服务器发展方向是什么?
  8. jquery text html width heigth的用法
  9. Servlet运行流程笔记
  10. 认证与Shiro安全框架