探索Hadoop與數(shù)據(jù)倉庫之間的關(guān)系
在大數(shù)據(jù)世界中用于BI和分析的新平臺的需求,并描述了三種常用的基本數(shù)據(jù)架構(gòu):數(shù)據(jù)倉庫,大規(guī)模并行處理系統(tǒng)(MPP)和Hadoop。
在出現(xiàn)大數(shù)據(jù)之前,只有經(jīng)過復(fù)雜數(shù)據(jù)庫和出色工具處理的數(shù)據(jù)才可以追溯到1970年代。最流行的是(現(xiàn)在仍然是)基于事務(wù)的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。結(jié)構(gòu)化查詢語言(SQL)是用于管理數(shù)據(jù)并簡化RDBMS內(nèi)處理的解碼環(huán)。
DBMS的其他迭代包括柱狀,鍵/值和圖形。在大多數(shù)情況下,他們使用結(jié)構(gòu)化(如果不是高度結(jié)構(gòu)化或標(biāo)準(zhǔn)化)的數(shù)據(jù),通常駐留在倉庫或?qū)S脭?shù)據(jù)集市中。
對象數(shù)據(jù)庫是另一種形式,它是IT首次嘗試使用結(jié)構(gòu)化程度較低(如果不是非結(jié)構(gòu)化的數(shù)據(jù)),例如視頻和圖像。它們被放置在專門的數(shù)據(jù)存儲庫中,并且通常需要專門的技能和專門的基礎(chǔ)架構(gòu)才能使其正常工作。換句話說,它們運(yùn)行起來很昂貴。
RDBMS福利包
全球已經(jīng)在基礎(chǔ)設(shè)施上投資了數(shù)十億美元,以運(yùn)行這些數(shù)據(jù)庫,并由人們進(jìn)行操作和完善以適應(yīng)各種垂直市場應(yīng)用。對于交易處理,他們?nèi)匀皇菬o可爭議的王者。
RDBMS的其他好處包括:
- 從故障中恢復(fù)的能力非常好,在大多數(shù)情況下可以恢復(fù)到最新狀態(tài)
- RDBMS可以輕松地分布在多個物理位置
- RDBMS實際上保證了高度的數(shù)據(jù)一致性
- SQL很容易學(xué)習(xí)
- 有大量熟悉RDBMS的IT人才已安裝
- 用戶可以執(zhí)行相當(dāng)復(fù)雜的數(shù)據(jù)查詢
缺點是什么?事實是,只要所管理的數(shù)據(jù)具有結(jié)構(gòu)性和關(guān)系性,就沒有什么弊端??缮炜s性是一個問題,因為大多數(shù)這些系統(tǒng)都是專有的,而且核心存儲非常昂貴,尤其是隨著數(shù)據(jù)庫的增長。但是,這些古老的數(shù)據(jù)庫及其隨行的工具和應(yīng)用程序在每家《財富》 1000強(qiáng)公司中都是顯而易見的,這有充分的理由:它們可以帶來價值。
但是隨后出現(xiàn)了大數(shù)據(jù),其中很多來自非結(jié)構(gòu)化的腹地。它包含來自點擊流,網(wǎng)站日志,照片,視頻,音頻剪輯,XML文檔,電子郵件,推文等的數(shù)據(jù)。
最初對IT部門而言,大多數(shù)數(shù)據(jù)類似于從宇宙深處發(fā)出的背景噪聲-只是很多噪聲。但是請記住這一點:一個名叫阿諾·彭齊亞斯(Arno Penzias)的人在1964年破譯了深空背景噪聲,最終將其解釋為已得到驗證的宇宙大爆炸理論的證明。他獲得了諾貝爾獎。
大數(shù)據(jù)也是如此。事實證明,鎖定在所有這些不同的大數(shù)據(jù)源中的是對客戶行為,市場趨勢,服務(wù)需求以及許多其他方面的寶貴見解。這是信息技術(shù)的大爆炸。
大數(shù)據(jù)已經(jīng)成為數(shù)據(jù)量整體增長中最大的組成部分,并且傳統(tǒng)分析平臺和解決方案相對無法有效地處理非結(jié)構(gòu)化數(shù)據(jù),因此分析領(lǐng)域正在發(fā)生深刻的變化。
IT演進(jìn),而非革命
但是這里要牢記重要的事情。大數(shù)據(jù)分析不會取代傳統(tǒng)的結(jié)構(gòu)化數(shù)據(jù)分析,當(dāng)然在可預(yù)見的將來也不會。
恰恰相反。正如《The Executive’s Guide to Big Data & Apache Hadoop》所述,“當(dāng)您將大數(shù)據(jù)與傳統(tǒng)信息源相結(jié)合以提出可產(chǎn)生巨大業(yè)務(wù)價值的創(chuàng)新解決方案時,一切都會令人著迷。”
因此,您可能會看到制造商將其庫存系統(tǒng)(在RDBMS中)與基于文檔商店的產(chǎn)品目錄中的圖像和視頻說明聯(lián)系在一起。這將幫助客戶幫助自己立即選擇并訂購合適的零件。
或者,一家連鎖酒店可以將基于Web的房地產(chǎn)搜索結(jié)果及其自身的歷史入住指標(biāo)加入RDBMS中,以優(yōu)化夜間定價并通過更好的收益管理來增加收入。
共存,而不是替代。這是查看基于Hadoop的大數(shù)據(jù)分析與RDBMS和MPP世界之間關(guān)系的正確方法。因此,組織明智地專注于Hadoop發(fā)行版,以優(yōu)化基于Hadoop的數(shù)據(jù)湖與傳統(tǒng)系統(tǒng)之間的數(shù)據(jù)流。換句話說,保留舊的,并用新的創(chuàng)新。
使用哪個平臺?
共有三種常用的基本數(shù)據(jù)架構(gòu):數(shù)據(jù)倉庫,大規(guī)模并行處理系統(tǒng)(MPP)和Hadoop。每個都以不同的方式容納SQL。
數(shù)據(jù)倉庫本質(zhì)上是大型數(shù)據(jù)庫管理系統(tǒng),已針對跨結(jié)構(gòu)化數(shù)據(jù)的只讀查詢進(jìn)行了優(yōu)化。它們是關(guān)系數(shù)據(jù)庫,因此對SQL非常友好。它們提供了快速的性能和相對容易的管理,這在很大程度上是因為它們的對稱多處理(SMP)體系結(jié)構(gòu)共享內(nèi)存和操作系統(tǒng)等資源,并通過單個處理節(jié)點路由所有操作。
最大的缺點是成本和靈活性。大多數(shù)數(shù)據(jù)倉庫都建立在專有硬件上,并且比其他方法貴了多個數(shù)量級。在Wikibon進(jìn)行的一次財務(wù)比較中,發(fā)現(xiàn)傳統(tǒng)數(shù)據(jù)倉庫的收支平衡時間是數(shù)據(jù)湖實施時間的六倍以上。
傳統(tǒng)的數(shù)據(jù)倉庫也只能對他們知道的數(shù)據(jù)進(jìn)行操作。它們具有固定的模式,并且在處理非結(jié)構(gòu)化數(shù)據(jù)時不太靈活。它們對于事務(wù)分析很有用,在事務(wù)分析中,必須根據(jù)一組定義的數(shù)據(jù)元素快速做出決策,但在關(guān)系不明確的應(yīng)用程序(例如推薦引擎)中效率較低。
MPP數(shù)據(jù)倉庫是傳統(tǒng)倉庫的發(fā)展,它利用了通過公共互連捆綁在一起的多個處理器。SMP架構(gòu)在處理器之間共享所有內(nèi)容,而MPP架構(gòu)則不共享任何內(nèi)容。每個服務(wù)器都有自己的操作系統(tǒng),處理器,內(nèi)存和存儲。多個處理器的活動由主處理器協(xié)調(diào),該主處理器跨節(jié)點分布數(shù)據(jù)并協(xié)調(diào)動作和結(jié)果。
MPP數(shù)據(jù)倉庫具有高度可伸縮性,因為添加處理器會導(dǎo)致性能幾乎呈線性增長,并且其成本通常低于單節(jié)點數(shù)據(jù)倉庫所需的成本。MPP體系結(jié)構(gòu)也非常適合同時在多個數(shù)據(jù)庫上工作。這使它們比傳統(tǒng)的數(shù)據(jù)倉庫更具靈活性。但是,就像數(shù)據(jù)倉庫一樣,它們通常只能處理以模式組織的結(jié)構(gòu)化數(shù)據(jù)。
但是,MPP體系結(jié)構(gòu)具有與SMP數(shù)據(jù)倉庫相同的局限性。因為它們需要復(fù)雜的工程,所以大多數(shù)都是個體供應(yīng)商專有的,這使它們成本高昂且相對缺乏靈活性。它們還受到與傳統(tǒng)數(shù)據(jù)倉庫相同的ETL要求。
從SQL的角度看,MPP數(shù)據(jù)倉庫具有一個主要的體系結(jié)構(gòu)差異:為了實現(xiàn)最大的性能提升,行在處理器之間順序分布。這意味著查詢必須考慮多個表的存在。幸運(yùn)的是,大多數(shù)MPP供應(yīng)商在其SQL實例中隱藏了此詳細(xì)信息。
Hadoop在架構(gòu)上與MPP數(shù)據(jù)倉庫相似,但有一些顯著差異。處理器不是由并行架構(gòu)嚴(yán)格定義的,而是跨Hadoop集群松散耦合的,并且每個處理器都可以在不同的數(shù)據(jù)源上工作。數(shù)據(jù)操作引擎,數(shù)據(jù)目錄和存儲引擎可以彼此獨立工作,而Hadoop作為收集點。至關(guān)重要的是,Hadoop可以輕松容納結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。這使其成為進(jìn)行迭代查詢的理想環(huán)境。企業(yè)用戶不必嘗試根據(jù)架構(gòu)定義的狹窄結(jié)構(gòu)來定義分析輸出,而是可以嘗試查找對他們最重要的查詢。然后可以提取相關(guān)數(shù)據(jù)并將其加載到數(shù)據(jù)倉庫中以進(jìn)行快速查詢。
讓我們看一下數(shù)據(jù)湖和數(shù)據(jù)倉庫(從KDNuggets總結(jié))之間的主要區(qū)別:
- 數(shù)據(jù):雖然數(shù)據(jù)是在數(shù)據(jù)倉庫中進(jìn)行結(jié)構(gòu)化的,但數(shù)據(jù)湖支持所有數(shù)據(jù)類型:結(jié)構(gòu)化,半結(jié)構(gòu)化或非結(jié)構(gòu)化。
- 處理:數(shù)據(jù)在數(shù)據(jù)倉庫中是寫模式,而在數(shù)據(jù)湖中是讀模式。
- 存儲:將大量數(shù)據(jù)存儲在數(shù)據(jù)倉庫中可能會很昂貴,而數(shù)據(jù)湖則是為低成本存儲而設(shè)計的。
- 敏捷性:在數(shù)據(jù)倉庫中,數(shù)據(jù)采用固定配置,敏捷性低得多,而數(shù)據(jù)湖中的數(shù)據(jù)易于根據(jù)需要進(jìn)行配置。
- 用戶:數(shù)據(jù)湖方法支持所有用戶(數(shù)據(jù)科學(xué)家,業(yè)務(wù)專業(yè)人員),而數(shù)據(jù)倉庫主要由業(yè)務(wù)專業(yè)人員使用。
Hadoop的最主要用例仍然是“數(shù)據(jù)湖”,因為它存儲了許多非結(jié)構(gòu)化數(shù)據(jù)以進(jìn)行提煉和提取到關(guān)系“數(shù)據(jù)集市”或數(shù)據(jù)倉庫中。實際上,Gartner表示,他們看到客戶對數(shù)據(jù)湖的查詢大大增加,如下所示:
- 只是看著數(shù)字。@Gartner_inc從2014年到2015年對數(shù)據(jù)湖的查詢增加了72%。
— Nick Heudecker(@nheudecker)
為了將SQL的功能帶入Hadoop,需要進(jìn)行許多并行的工作,但是這些項目都面臨著相同的結(jié)構(gòu)性障礙,即Hadoop是無模式的,數(shù)據(jù)是非結(jié)構(gòu)化的。將“結(jié)構(gòu)化”查詢語言應(yīng)用于非結(jié)構(gòu)化數(shù)據(jù)有點不自然,但是這些項目正在迅速成熟。下面的體系結(jié)構(gòu)圖顯示了這些不同方法中的一些如何在現(xiàn)代數(shù)據(jù)體系結(jié)構(gòu)中融合在一起。

選擇項
總而言之,每個平臺都有有價值的用例。實際上,數(shù)據(jù)倉庫,MPP數(shù)據(jù)倉庫和Hadoop在許多方面都是互補(bǔ)的。許多組織將Hadoop用于跨大型非結(jié)構(gòu)化信息池(稱為數(shù)據(jù)湖)的數(shù)據(jù)發(fā)現(xiàn),然后將最有用的數(shù)據(jù)加載到關(guān)系倉庫中,以進(jìn)行快速且重復(fù)的查詢。