2017-04-20 119 views
1

我試圖去掌握大數據,主要是大數據的管理方式。大數據去哪裏以及它如何存儲?

我熟悉數據管理和數據生命週期的傳統形式;例如:

  1. 結構化數據收集(例如web表單)
  2. 存儲在表中在RDBMS的數據庫服務器上的數據
  3. 數據清洗,然後ETL'd到數據倉庫
  4. 分析數據使用OLAP多維數據集和其他各種BI工具/技術

然而,在大數據的情況下,我感到困惑的點2和3的等效版本,主要是因爲我不確定是否所有的大數據「解決方案離子「總是涉及使用NoSQL數據庫處理和存儲非結構化數據,以及大數據等同於數據倉庫的內容。

從我所看到的情況來看,在某些情況下,NoSQL並不總是被使用,並且完全可以省略 - 這是真的嗎?

對我來說,大數據生命週期的推移這個東西線:

  1. 收集的數據(結構化/非結構化/半)存儲在大數據平臺上的NoSQL數據庫
  2. 數據;例如HBase服務器的MapR Hadoop發行版。
  3. 大數據分析/數據挖掘工具的清潔和分析數據

但我有一種感覺,這是情況並非總是如此,和第3點可能是完全錯誤的乾脆。任何人都可以對此有所瞭解嗎?

回答

1

當我們談論大數據時,我們在大多數情況下都會談論大量不斷寫入大量數據的情況。數據也可以有很多種類。將大數據的典型數據源想象爲生產線中的一臺機器,該生產線可以生成有關溫度,溼度等的所有時間傳感器數據。不是您在DWH中找到的典型數據類型。

如果您將所有這些數據轉換爲適合關係數據庫,會發生什麼?如果您與ETL合作過很多,那麼您知道從源代碼中提取數據,將數據轉換爲適合架構,然後存儲起來需要時間,這是一個瓶頸。創建一個模式太慢了。大多數情況下,這種解決方案的代價很大,因爲您需要昂貴的設備來運行DWH。你不想用傳感器數據填充它。

您需要在便宜的硬件上快速寫入。對於大數據,您可以在分佈式文件系統上將無模式存儲爲第一個(通常稱爲非結構化數據)。該文件系統將大量數據拆分成塊(通常大約128 MB)並將其分佈到羣集節點中。隨着塊被複制,節點也可能停止。

如果您來自傳統的DWH世界,那麼您已經習慣了可以很好地處理已準備好且結構良好的數據的技術。 Hadoop和co非常適合尋找諸如在乾草堆中搜索針的見解。您可以通過並行處理數據並處理大量數據來獲得洞察力。

想象一下,您收集了幾千兆字節的數據,並且您想對其運行一些分析分析(例如,羣集)。如果你不得不在一臺機器上運行它,那需要幾個小時。大數據系統的關鍵是在無共享體系結構中並行執行。如果你想提高性能,你可以添加硬件來橫向擴展。因此,您可以使用大量數據加快搜索速度。

查看現代大數據堆棧,您有數據存儲。這可以是具有分佈式文件系統(如HDFS或類似文件系統)的Hadoop。然後你就有了一個管理文件系統訪問的資源管理器。然後,再次說明,您有一個數據處理引擎,例如Apache Spark,用於編排存儲層上的執行。

再次在數據處理的核心引擎上,您可以使用應用程序和框架,例如機器學習API,可以在數據中查找模式。您可以運行無監​​督學習算法來檢測結構(如聚類算法)或監督機器學習算法,以便爲數據中的模式提供一些含義並能夠預測結果(例如線性迴歸或隨機森林)。

這是我的大數據,簡單介紹了那些對傳統數據庫系統有經驗的人。

+0

那麼我說的是NoSQL不一定用於解決方案嗎?此外,NoSQL和傳統的RDBMS一樣是作爲存儲數據的手段,但與傳統的數據庫系統不同,RDBMS是關鍵組件,而NoSQL數據庫是一個可選組件? – RoyalSwish

+1

如果你看看NoSQL堆棧,你有各種類型的數據庫。一個類別是BigTable。 HBase是一個BigTable數據庫,與Hadoop一起使用,可將結果存儲在允許快速訪問的商店中。 Hadoop之上還有許多圖形數據庫和引擎。 所以我想說,Hadoop中有一些NoSQL主題。但是,每個大數據項目都不需要NoSQL。 –

相關問題