Hive学习笔记 —— Hive概述
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 數據倉庫中的數據模型
我們在搭建一個數據倉庫的時候通常會使用以下兩種模式:
第一種:星型模型
由商品信息可以與客戶信息、訂單信息、廠家信息、物流信息、促銷信息產生關聯(以商品信息為主題)
是以面向商品信息為核心的星型模型。
第二種:雪花模型
基于星型模型發展起來的雪花模型
由客戶信息可以與家庭信息、地址信息、教育背景信息、銀行信息產生關聯(面向客戶信息)
由廠家信息可以與地址信息、員工信息產生關聯(面向廠家信息)
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概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建立TCP连接时的三次握手与四次挥手问题
- 下一篇: Hive学习笔记 —— Hive的体系结