數(shù)據(jù)倉(cāng)庫(kù)Hive

數(shù)據(jù)倉(cāng)庫(kù)

什么時(shí)候需要用到數(shù)據(jù)倉(cāng)庫(kù)?

一個(gè)公司里面不同項(xiàng)目可能用到不同的數(shù)據(jù)源,有的存在MySQL里面自脯,又的存在MongoDB里面,甚至還有些要做第三方數(shù)據(jù)斤富。

但是現(xiàn)在又想把數(shù)據(jù)整合起來(lái)膏潮,進(jìn)行數(shù)據(jù)分析。此時(shí)數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse满力,DW)就派上用場(chǎng)了焕参。它可以對(duì)多種業(yè)務(wù)數(shù)據(jù)進(jìn)行篩選和整合,可以用于數(shù)據(jù)分析油额、數(shù)據(jù)挖掘叠纷、數(shù)據(jù)報(bào)表。

image.png

數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn)

  • 主題性:數(shù)據(jù)倉(cāng)庫(kù)是針對(duì)某個(gè)主題來(lái)進(jìn)行組織潦嘶,比如滴滴出行涩嚣,司機(jī)行為分析就是一個(gè)主題,所以可以將多種不同的數(shù)據(jù)源進(jìn)行整合。而傳統(tǒng)的數(shù)據(jù)庫(kù)主要針對(duì)某個(gè)項(xiàng)目而言缓艳,數(shù)據(jù)相對(duì)分散和孤立校摩。
  • 集成性:
    數(shù)據(jù)倉(cāng)庫(kù)需要將多個(gè)數(shù)據(jù)源的數(shù)據(jù)存到一起看峻,但是這些數(shù)據(jù)以前的存儲(chǔ)方式不同阶淘,所以需要經(jīng)過(guò)抽取、清洗互妓、轉(zhuǎn)換的過(guò)程
  • 穩(wěn)定性:保存的數(shù)據(jù)是一系列歷史快照溪窒,不允許修改,只能分析冯勉。
  • 時(shí)變性:會(huì)定期接收到新的數(shù)據(jù)澈蚌,反應(yīng)出最新的數(shù)據(jù)變化。

總的來(lái)說(shuō)灼狰,數(shù)據(jù)倉(cāng)庫(kù)是將多個(gè)數(shù)據(jù)源的數(shù)據(jù)按照一定的主題集成起來(lái)宛瞄,因?yàn)橹暗臄?shù)據(jù)各不相同,所以需要抽取交胚、清洗份汗、轉(zhuǎn)換

整合以后的數(shù)據(jù)不允許隨便修改蝴簇,只能分析杯活,還需要定期更新。

ETL

上面我們說(shuō)過(guò)熬词,數(shù)據(jù)倉(cāng)庫(kù)接收的數(shù)據(jù)源是不同的旁钧,要做集成的話,需要抽取互拾、清洗歪今、轉(zhuǎn)換三個(gè)步驟捺弦,這就是ETL(Extract-Transform-Load)

  • Extract:數(shù)據(jù)抽取股毫,就是把數(shù)據(jù)從數(shù)據(jù)源讀出來(lái)
  • Transform:數(shù)據(jù)轉(zhuǎn)換,就是把數(shù)據(jù)轉(zhuǎn)換為特定的格式
  • Load:數(shù)據(jù)加載拨脉,把處理后的數(shù)據(jù)加載到目標(biāo)處或衡。


    image.png

主流的數(shù)據(jù)倉(cāng)庫(kù)

國(guó)內(nèi)最常用的是一款基于Hadoop的開(kāi)源數(shù)據(jù)倉(cāng)庫(kù)焦影,名為Hive,它可以對(duì)存儲(chǔ)在HDFS的文件數(shù)據(jù)進(jìn)行查詢封断、分析斯辰。

Hive對(duì)外可以提供HiveQL,這是類似于SQL語(yǔ)言的一種查詢語(yǔ)言坡疼。在查詢時(shí)可以將HiveQL語(yǔ)句轉(zhuǎn)換為MapReduce任務(wù)彬呻,在Hadoop層進(jìn)行執(zhí)行。

Hive的最大優(yōu)勢(shì)在于免費(fèi),那其他知名的商業(yè)數(shù)據(jù)倉(cāng)庫(kù)有那些呢闸氮?比如Oracle,DB2剪况,其中業(yè)界老大是Teradata

Teradata數(shù)據(jù)倉(cāng)庫(kù)支持大規(guī)模并行處理平臺(tái)(MPP),可以高速處理海量實(shí)際上蒲跨,性能遠(yuǎn)遠(yuǎn)高于Hive译断。對(duì)企業(yè)來(lái)說(shuō),只需要專注于業(yè)務(wù)或悲,節(jié)省管理技術(shù)方面的精力孙咪,實(shí)現(xiàn)ROI(投資回報(bào)率)最大化。

image.png

Hive

上面提到了Hive是最著名的開(kāi)源數(shù)據(jù)倉(cāng)庫(kù)巡语,它是Hadoop生態(tài)中一個(gè)重要的組件翎蹈。

Hadoop的生態(tài)中,HDFS解決了分布式存儲(chǔ)的問(wèn)題男公,MapReduce解決了分布式計(jì)算的問(wèn)題荤堪,而HBASE則提供了一種NoSQL的存儲(chǔ)方法。

但是如果需要的HDFS上的文件或者HBASE的表進(jìn)行查詢枢赔,需要自定義MapReduce方法澄阳。那么Hive其實(shí)就是在HDFS上面的一個(gè)中間層,它可以讓業(yè)務(wù)人員直接使用SQL進(jìn)行查詢糠爬。

所以Hive是用進(jìn)行數(shù)據(jù)提取轉(zhuǎn)換加載的寇荧,而且它可以把SQL轉(zhuǎn)換為MapReduce任務(wù),而Hive的表就是HDFS的目錄或者文件执隧。

Hive的體系架構(gòu)

image.png

上圖為Hive的體系結(jié)構(gòu)

  • 首先是接入Hive的客戶端揩抡,可以通過(guò)CLI命令行方式,也可以是Hive的Client直接連接到Hive Server中镀琉。還可以是Web瀏覽器直接訪問(wèn)

  • 之前我們提到過(guò)Hive的表就是HDFS中的一個(gè)文件峦嗤,所以Hive還會(huì)將表的相關(guān)屬性單獨(dú)列出來(lái),為了方便檢索屋摔,可以存放在MySQL烁设、derby等數(shù)據(jù)庫(kù)里面。

    這些數(shù)據(jù)就是元數(shù)據(jù)信息钓试,比如表是否為外部表装黑,數(shù)據(jù)存放在哪個(gè)目錄等等。

    Hive和MySQL既可以在同一臺(tái)服務(wù)器上弓熏,又可以在不同的機(jī)器上恋谭。

  • 另外Hive還需要對(duì)SQL語(yǔ)句進(jìn)行解析,所以和數(shù)據(jù)庫(kù)一樣挽鞠,它也有解釋器疚颊、編譯器狈孔、優(yōu)化器等等,而且還會(huì)生成查詢計(jì)劃材义,存儲(chǔ)在HDFS中均抽,然后由MapReduce進(jìn)行調(diào)用。

image.png

Hive的數(shù)據(jù)模型

Hive主要包含以下幾種數(shù)據(jù)模型:

  • Hive數(shù)據(jù)庫(kù):類似于傳統(tǒng)數(shù)據(jù)庫(kù)

  • 內(nèi)部表其掂,與傳統(tǒng)數(shù)據(jù)庫(kù)的Table一樣油挥,每個(gè)Table都在Hive中有一個(gè)目錄進(jìn)行對(duì)應(yīng)。刪除表時(shí)清寇,元數(shù)據(jù)和保存的實(shí)際數(shù)據(jù)都會(huì)刪除掉

  • 外部表:

    外部表就類似于一個(gè)快捷方式或者說(shuō)一個(gè)指針喘漏,指向HDFS已經(jīng)存在的數(shù)據(jù)。

  • Partition:也就是對(duì)列進(jìn)行密集索引

  • 桶:

    Hive的桶是對(duì)表的每一列進(jìn)行Hash华烟,然后根據(jù)Hash值切分?jǐn)?shù)據(jù),這樣每一個(gè)Bucket對(duì)應(yīng)一個(gè)文件持灰。

  • 視圖:與傳統(tǒng)數(shù)據(jù)庫(kù)類似盔夜,是一個(gè)邏輯的表。

image.png

參考

本文為什么是數(shù)據(jù)倉(cāng)庫(kù)堤魁?的筆記

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末喂链,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子妥泉,更是在濱河造成了極大的恐慌椭微,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盲链,死亡現(xiàn)場(chǎng)離奇詭異蝇率,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)刽沾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門本慕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人侧漓,你說(shuō)我怎么就攤上這事锅尘。” “怎么了布蔗?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵藤违,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我纵揍,道長(zhǎng)顿乒,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任骡男,我火速辦了婚禮淆游,結(jié)果婚禮上傍睹,老公的妹妹穿的比我還像新娘。我一直安慰自己犹菱,他們只是感情好拾稳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著腊脱,像睡著了一般访得。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陕凹,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天悍抑,我揣著相機(jī)與錄音,去河邊找鬼杜耙。 笑死搜骡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的佑女。 我是一名探鬼主播记靡,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼团驱!你這毒婦竟也來(lái)了摸吠?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嚎花,失蹤者是張志新(化名)和其女友劉穎寸痢,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體紊选,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡啼止,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丛楚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片族壳。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖趣些,靈堂內(nèi)的尸體忽然破棺而出仿荆,到底是詐尸還是另有隱情,我是刑警寧澤坏平,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布拢操,位于F島的核電站,受9級(jí)特大地震影響舶替,放射性物質(zhì)發(fā)生泄漏令境。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一顾瞪、第九天 我趴在偏房一處隱蔽的房頂上張望舔庶。 院中可真熱鬧抛蚁,春花似錦、人聲如沸惕橙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)弥鹦。三九已至肚逸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間彬坏,已是汗流浹背朦促。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留栓始,地道東北人务冕。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像混滔,于是被迫代替她去往敵國(guó)和親洒疚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容