雖然Hadoop確實是當今許多大數據實現的核心,對于初次接觸數據管理的人來說,將大數據和Hadoop互換使用是一個常見的錯誤。但它并不是唯一的問題。大數據分析可以由許多不同的軟件組成,它們一起收集、存儲、操作和分析所有不同的數據類型。通過定義大數據的概念有助于更好地理解形勢。一般情況下,行業將大數據歸類為“三個V”。
■ Velocity(速度):指收集和分析數據的速度。Hadoop分布式文件系統旨在快速地獲取和處理數據。智能對象能夠以非常快的速度生成機器和傳感器數據,并且要求數據庫或文件系統具有同樣快速的接收功能。
■ Variety(多樣性):指不同類型的數據。通常我們會看到數據被歸類為結構化、半結構化或非結構化數據。不同的數據庫技術可能只能接受其中一種類型。Hadoop能夠收集和存儲所有這3種類型。當將來自物聯網設備的結構化機器數據與來自其他來源(如社交媒體或多媒體)的非結構化的數據相結合時,這可能是有益的。
■ Volume(容量):指數據的規模。通常,數據規模是使用極低的吉字節、拍字節,甚至是另一個極端的艾字節來衡量的。一般而言,大數據實現的規模超出了單個節點上本地連接的存儲磁盤的可用容量。對于一些大型部署,經常可以看到由數十個、數百個甚至數千個節點組成的服務器集群。
大數據的特征可以通過數據的來源和類型來定義。首先是機器數據,由物聯網設備生成,通常是非結構化數據。其次是事務性數據,這些數據來自于從這些系統上的事務中產生數據的源,并且具有高容量和結構化的特點。再次是社交數據源,通常是高容量和結構化的。最后是企業數據,即體積較小、結構非常復雜的數據。因此,大數據由所有這些獨立來源的數據組成。
在檢查數據源時,還需要考慮從每個數據源攝取的數據量,這決定了數據存儲層的設計。我們還應該考慮從攝取系統獲取數據的機制(即推或拉)。數據源的類型(數據庫、文件、Web服務、流)也需要考慮,因為它也決定了數據的結構。
數據攝取層是連接數據源和存儲的層。它是對數據進行預處理、驗證、提取和臨時存儲以供進一步處理的層。對于數據攝取,有幾種模式需要考慮。首先是多源攝取,它將多個數據源連接到攝取系統。在此模式中,攝取節點接收來自多個源的數據流,并在將數據傳遞給中間節點和最終存儲節點之前進行處理。此模式通常在批處理系統中實現,并且在實時系統中實現(由于數據的可用性存在延遲,因此不太常見)。
在有助于定義物聯網的行業中,數據收集和分析并不是新概念。長期以來工業垂直行業一直依賴于從各種過程中獲取、收集和記錄數據的能力,以記錄趨勢并跟蹤性能和質量。
例如,許多工業自動化和控制系統將數據輸入到兩種不同的數據庫類型:關系數據庫和歷史數據庫。關系數據庫,如Oracle和Microsoft SQL,適合于事務或流程數據。它們的優點是能夠分析一段時間內到達的數據之間的復雜數據關系。歷史數據庫對系統和過程中的時間序列數據進行了優化。它們的核心是數據的存儲和檢索速度,將每個數據點記錄在一個序列中,并記錄與記錄系統相關的信息。這些數據可能包括傳感器讀數、材料數量、溫度讀數或流量數據。
關系數據庫和歷史數據是成熟的技術,已經伴隨我們多年,但是數據管理市場中的新技術為傳感器和機器數據開辟了新的可能性。這些數據庫技術大致可以分為幾個類別,在物聯網環境中使用時,每種技術都有各自的優勢和潛在的缺陷。其中3個最流行的類別是大規模并行處理系統、NoSQL和Hadoop。