Hive学习笔记 —— Hive概述
1. 數(shù)據(jù)倉庫簡介
1.1 數(shù)據(jù)倉庫
可以利用數(shù)據(jù)倉庫來保存我們的數(shù)據(jù),但是數(shù)據(jù)倉庫有別于我們常見的一般數(shù)據(jù)庫。數(shù)據(jù)倉庫是一個面向主題的、集成的、不可更新的、隨時間不變化的數(shù)據(jù)集成,它用于支持企業(yè)或組織的決策分析處理。
面向?qū)ο蟮?/strong>:倉庫中的數(shù)據(jù)是按照一定的主題進行組織的。
主題即用戶使用數(shù)據(jù)倉庫進行決策時所關心的重點方面。如商品的推薦系統(tǒng),它也是基于數(shù)據(jù)倉庫所做出來的系統(tǒng),其中,我們關心的主題也就是我們商品的信息。
集成的:數(shù)據(jù)倉庫中的數(shù)據(jù)來自于分散的、操作型的數(shù)據(jù),將分散型的操作數(shù)據(jù)從原來的數(shù)據(jù)中抽取出來進行加工和處理,然后將滿足要求的數(shù)據(jù)存入數(shù)據(jù)倉庫中。
原來的數(shù)據(jù)有可能來自Oracle,也有可能來自Mysql,DB2,Redis,MongoDb等數(shù)據(jù)庫,也有可能來自文本文件和其他的操作系統(tǒng),因此,需要把不同的數(shù)據(jù)集成起來就組成了數(shù)據(jù)倉庫。
不可更新的:數(shù)據(jù)倉庫主要是為了決策分析,所提供數(shù)據(jù),所以主要涉及的操作是數(shù)據(jù)查詢,因此其中的數(shù)據(jù)是不可更新的。
隨時間不變化的:一般都不會在數(shù)據(jù)倉庫中做更新和刪除操作,因為數(shù)據(jù)倉庫就是做查詢操作,因此數(shù)據(jù)倉庫中的數(shù)據(jù)是隨著時間的推移而不產(chǎn)生。
1.2 數(shù)據(jù)倉庫的結構和建立過程
(1)數(shù)據(jù)源
-
業(yè)務系統(tǒng)的數(shù)據(jù):Oracle、Mysql等關系型數(shù)據(jù)庫,Redis、MongoDB等非關系型數(shù)據(jù)庫
-
文檔資料:CSV、TXT
-
其他數(shù)據(jù):其他系統(tǒng)的數(shù)據(jù)
(2)數(shù)據(jù)存儲及管理
進行ETL,并單獨存放在一個數(shù)據(jù)庫中,這個數(shù)據(jù)庫就叫做數(shù)據(jù)倉庫。
抽取(Extract):把數(shù)據(jù)源的數(shù)據(jù)按照一定的方式讀取出來,然后進行格式轉換
轉換(Transform):將抽取出來的數(shù)據(jù)按照一定的格式進行轉換,然后進行裝載。
因為不同數(shù)據(jù)源的數(shù)據(jù)格式不同,可能不能滿足我們對存儲格式的要求,因此,我們需要按照一定的規(guī)則對讀取到的數(shù)據(jù)進行轉換,只有轉換完符合要求的數(shù)據(jù)才能進行裝載。
裝載(Load):將滿足格式的數(shù)據(jù)存入數(shù)據(jù)庫中,最終,便建立了數(shù)據(jù)倉庫
(3)數(shù)據(jù)倉庫引擎
通過數(shù)據(jù)倉庫引擎,使數(shù)據(jù)倉庫對外提供服務,不同的服務器提供不同的服務,如數(shù)據(jù)操作、數(shù)據(jù)報表、數(shù)據(jù)分析、各類應用
(4)前端展示
進行前端展示,前端展示的數(shù)據(jù)均來源于數(shù)據(jù)倉庫引擎中的各個對外服務,而各個服務又讀取數(shù)據(jù)倉庫中的數(shù)據(jù),這樣就完成了整個數(shù)據(jù)倉庫的建立。
1.3 OLTP應用與OLAP應用
OLTP(on-line-transaction processing):聯(lián)機事務處理
所關注的焦點在于事務的處理
典型的OLTP應用就是“銀行轉賬”
比如,當我們轉賬的操作,分別為扣錢和加錢的操作,這兩個操作應該同時成功或者同時失敗,如果有一方失敗需要有事務的保證,需要回滾,OLTP的系統(tǒng)面向的是事務,操作的頻率會非常高,比如銀行轉賬的業(yè)務時刻都會發(fā)生其中一方失敗的情況。
OLAP(On-Line Analytical Processing):聯(lián)機分析處理
典型的OLAP應用:商品推薦系統(tǒng)
商品推薦系統(tǒng)這種應用是基于原來它的歷史數(shù)據(jù),從而進行數(shù)據(jù)的分析和挖掘,然后提供給別的系統(tǒng)所使用,這種OLAP的應用主要面向的是查詢,在這種應用系統(tǒng)當中我們一般不會做更新、刪除或者插入的操作,因為里面的數(shù)據(jù)都是屬于歷史的數(shù)據(jù)。
1.4 數(shù)據(jù)倉庫中的數(shù)據(jù)模型
我們在搭建一個數(shù)據(jù)倉庫的時候通常會使用以下兩種模式:
第一種:星型模型
由商品信息可以與客戶信息、訂單信息、廠家信息、物流信息、促銷信息產(chǎn)生關聯(lián)(以商品信息為主題)
是以面向商品信息為核心的星型模型。
第二種:雪花模型
基于星型模型發(fā)展起來的雪花模型
由客戶信息可以與家庭信息、地址信息、教育背景信息、銀行信息產(chǎn)生關聯(lián)(面向客戶信息)
由廠家信息可以與地址信息、員工信息產(chǎn)生關聯(lián)(面向廠家信息)
2. 什么是Hive
Hive也是一種數(shù)據(jù)倉庫,但與傳統(tǒng)的數(shù)據(jù)倉庫又有些 區(qū)別。
- Hive是建立在Hadoop HDFS上的數(shù)據(jù)倉庫基礎架構
一般的傳統(tǒng)數(shù)據(jù)倉庫可以用Oracle、Mysql進行搭建,這時的數(shù)據(jù)庫是存在Oracle、Mysql數(shù)據(jù)中,而Hive中的數(shù)據(jù)是存儲在HDFS上的,這就Hive最基本的概念。
- Hive可以用來進行數(shù)據(jù)提取轉化加載(ETL)
- Hive定義了簡單的類似SQL的查詢語句,稱為HQL,它允許熟悉SQL的用戶查詢數(shù)據(jù)
- Hive允許熟悉MapReduce開發(fā)者的開發(fā)自定義的mapper和reducer來處理內(nèi)建的mapper和reducer無法完成的復雜的分析工作
- Hive是SQL解析引擎,他將SQL語句轉換成M/R Job,然后在Hadoop中執(zhí)行
- Hive的表其實就是HDFS的目錄/文件夾;Hive中的數(shù)據(jù)其實就是HDFS中的文件
總結
以上是生活随笔為你收集整理的Hive学习笔记 —— Hive概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建立TCP连接时的三次握手与四次挥手问题
- 下一篇: Hive学习笔记 —— Hive的体系结