探索Hadoop與數據倉庫之間的關係

在大數據世界中用於BI和分析的新平臺的需求,並描述了三種常用的基本數據架構:數據倉庫,大規模並行處理系統(MPP)和Hadoop。

在出現大數據之前,只有經過複雜數據庫和出色工具處理的數據才可以追溯到1970年代。最流行的是(現在仍然是)基於事務的關係數據庫管理系統(RDBMS)。結構化查詢語言(SQL)是用於管理數據並簡化RDBMS內處理的解碼環。

DBMS的其他迭代包括柱狀,鍵/值和圖形。在大多數情況下,他們使用結構化(如果不是高度結構化或標準化)的數據,通常駐留在倉庫或專用數據集市中。

對象數據庫是另一種形式,它是IT首次嘗試使用結構化程度較低(如果不是非結構化的數據),例如視頻和圖像。它們被放置在專門的數據存儲庫中,並且通常需要專門的技能和專門的基礎架構才能使其正常工作。換句話說,它們運行起來很昂貴。

RDBMS福利包

全球已經在基礎設施上投資了數十億美元,以運行這些數據庫,並由人們進行操作和完善以適應各種垂直市場應用。對於交易處理,他們仍然是無可爭議的王者。

RDBMS的其他好處包括:

  • 從故障中恢復的能力非常好,在大多數情況下可以恢復到最新狀態
  • RDBMS可以輕鬆地分佈在多個物理位置
  • RDBMS實際上保證了高度的數據一致性
  • SQL很容易學習
  • 有大量熟悉RDBMS的IT人才已安裝
  • 用戶可以執行相當複雜的數據查詢

缺點是什麼?事實是,只要所管理的數據具有結構性和關係性,就沒有什麼弊端。可伸縮性是一個問題,因為大多數這些系統都是專有的,而且核心存儲非常昂貴,尤其是隨著數據庫的增長。但是,這些古老的數據庫及其隨行的工具和應用程序在每家《財富》 1000強公司中都是顯而易見的,這有充分的理由:它們可以帶來價值。

但是隨後出現了大數據,其中很多來自非結構化的腹地。它包含來自點擊流,網站日誌,照片,視頻,音頻剪輯,XML文檔,電子郵件,推文等的數據。

最初對IT部門而言,大多數數據類似於從宇宙深處發出的背景噪聲-只是很多噪聲。但是請記住這一點:一個名叫阿諾·彭齊亞斯(Arno Penzias)的人在1964年破譯了深空背景噪聲,最終將其解釋為已得到驗證的宇宙大爆炸理論的證明。他獲得了諾貝爾獎。

大數據也是如此。事實證明,鎖定在所有這些不同的大數據源中的是對客戶行為,市場趨勢,服務需求以及許多其他方面的寶貴見解。這是信息技術的大爆炸。

大數據已經成為數據量整體增長中最大的組成部分,並且傳統分析平臺和解決方案相對無法有效地處理非結構化數據,因此分析領域正在發生深刻的變化。

IT演進,而非革命

但是這裡要牢記重要的事情。大數據分析不會取代傳統的結構化數據分析,當然在可預見的將來也不會。

恰恰相反。正如《The Executive’s Guide to Big Data & Apache Hadoop》所述,“當您將大數據與傳統信息源相結合以提出可產生巨大業務價值的創新解決方案時,一切都會令人著迷。”

因此,您可能會看到製造商將其庫存系統(在RDBMS中)與基於文檔商店的產品目錄中的圖像和視頻說明聯繫在一起。這將幫助客戶幫助自己立即選擇並訂購合適的零件。

或者,一家連鎖酒店可以將基於Web的房地產搜索結果及其自身的歷史入住指標加入RDBMS中,以優化夜間定價並通過更好的收益管理來增加收入。

共存,而不是替代。這是查看基於Hadoop的大數據分析與RDBMS和MPP世界之間關係的正確方法。因此,組織明智地專注於Hadoop發行版,以優化基於Hadoop的數據湖與傳統系統之間的數據流。換句話說,保留舊的,並用新的創新。

使用哪個平臺?

共有三種常用的基本數據架構:數據倉庫,大規模並行處理系統(MPP)和Hadoop。每個都以不同的方式容納SQL。

數據倉庫本質上是大型數據庫管理系統,已針對跨結構化數據的只讀查詢進行了優化。它們是關係數據庫,因此對SQL非常友好。它們提供了快速的性能和相對容易的管理,這在很大程度上是因為它們的對稱多處理(SMP)體系結構共享內存和操作系統等資源,並通過單個處理節點路由所有操作。

最大的缺點是成本和靈活性。大多數數據倉庫都建立在專有硬件上,並且比其他方法貴了多個數量級。在Wikibon進行的一次財務比較中,發現傳統數據倉庫的收支平衡時間是數據湖實施時間的六倍以上。

傳統的數據倉庫也只能對他們知道的數據進行操作。它們具有固定的模式,並且在處理非結構化數據時不太靈活。它們對於事務分析很有用,在事務分析中,必須根據一組定義的數據元素快速做出決策,但在關係不明確的應用程序(例如推薦引擎)中效率較低。

MPP數據倉庫是傳統倉庫的發展,它利用了通過公共互連捆綁在一起的多個處理器。SMP架構在處理器之間共享所有內容,而MPP架構則不共享任何內容。每個服務器都有自己的操作系統,處理器,內存和存儲。多個處理器的活動由主處理器協調,該主處理器跨節點分佈數據並協調動作和結果。

MPP數據倉庫具有高度可伸縮性,因為添加處理器會導致性能幾乎呈線性增長,並且其成本通常低於單節點數據倉庫所需的成本。MPP體系結構也非常適合同時在多個數據庫上工作。這使它們比傳統的數據倉庫更具靈活性。但是,就像數據倉庫一樣,它們通常只能處理以模式組織的結構化數據。

但是,MPP體系結構具有與SMP數據倉庫相同的侷限性。因為它們需要複雜的工程,所以大多數都是個體供應商專有的,這使它們成本高昂且相對缺乏靈活性。它們還受到與傳統數據倉庫相同的ETL要求。

從SQL的角度看,MPP數據倉庫具有一個主要的體系結構差異:為了實現最大的性能提升,行在處理器之間順序分佈。這意味著查詢必須考慮多個表的存在。幸運的是,大多數MPP供應商在其SQL實例中隱藏了此詳細信息。

Hadoop在架構上與MPP數據倉庫相似,但有一些顯著差異。處理器不是由並行架構嚴格定義的,而是跨Hadoop集群鬆散耦合的,並且每個處理器都可以在不同的數據源上工作。數據操作引擎,數據目錄和存儲引擎可以彼此獨立工作,而Hadoop作為收集點。至關重要的是,Hadoop可以輕鬆容納結構化和非結構化數據。這使其成為進行迭代查詢的理想環境。企業用戶不必嘗試根據架構定義的狹窄結構來定義分析輸出,而是可以嘗試查找對他們最重要的查詢。然後可以提取相關數據並將其加載到數據倉庫中以進行快速查詢。

讓我們看一下數據湖和數據倉庫(從KDNuggets總結)之間的主要區別:

  • 數據:雖然數據是在數據倉庫中進行結構化的,但數據湖支持所有數據類型:結構化,半結構化或非結構化。
  • 處理:數據在數據倉庫中是寫模式,而在數據湖中是讀模式。
  • 存儲
    :將大量數據存儲在數據倉庫中可能會很昂貴,而數據湖則是為低成本存儲而設計的。
  • 敏捷性:在數據倉庫中,數據採用固定配置,敏捷性低得多,而數據湖中的數據易於根據需要進行配置。
  • 用戶:數據湖方法支持所有用戶(數據科學家,業務專業人員),而數據倉庫主要由業務專業人員使用。

Hadoop的最主要用例仍然是“數據湖”,因為它存儲了許多非結構化數據以進行提煉和提取到關係“數據集市”或數據倉庫中。實際上,Gartner表示,他們看到客戶對數據湖的查詢大大增加,如下所示:

只是看著數字。@Gartner_inc從2014年到2015年對數據湖的查詢增加了72%。

— Nick Heudecker(@nheudecker)

為了將SQL的功能帶入Hadoop,需要進行許多並行的工作,但是這些項目都面臨著相同的結構性障礙,即Hadoop是無模式的,數據是非結構化的。將“結構化”查詢語言應用於非結構化數據有點不自然,但是這些項目正在迅速成熟。下面的體系結構圖顯示了這些不同方法中的一些如何在現代數據體系結構中融合在一起。


探索Hadoop與數據倉庫之間的關係

選擇項

總而言之,每個平臺都有有價值的用例。實際上,數據倉庫,MPP數據倉庫和Hadoop在許多方面都是互補的。許多組織將Hadoop用於跨大型非結構化信息池(稱為數據湖)的數據發現,然後將最有用的數據加載到關係倉庫中,以進行快速且重複的查詢。


分享到:


相關文章: