不同存儲方式對應大數據以下特征:
分布式文件系統:分布式文件系統是由多個網絡節點組成的向上層應用提供統一的文件服務的文件系統。分布式文件系統中的每個節點可以分布在不同的地點,通過網絡進行節點間的通信和數據傳輸。分布式文件系統中的文件在物理上可能被分散存儲在不同的節點上,但在邏輯上仍然是一個完整的文件。使用分布式文件系統時,無須關心數據存儲在哪個節點上,只需像本地文件系統一樣管理和存儲文件系統的數據。
列式存儲:列式存儲將數據按行排序、按列存儲,將相同字段的數據作為一個列族來聚合存儲。當只查詢少數列族數據時,列式數據庫可以減少讀取數據量以及數據裝載和讀入讀出的時間,提高數據處理效率。按列存儲還可以承載更大的數據量,獲得高效的垂直數據壓縮能力,降低數據存儲開銷。
鍵值存儲:鍵值存儲,即Key-Value存儲,簡稱KV存儲,是NoSQL存儲的一種方式。它將數據按照鍵值對的形式進行組織、索引和存儲。KV 存儲非常適合不涉及過多數據關系和業務關系的業務數據,同時能有效減少讀寫磁盤的次數,比結構化查詢語言數據庫存儲有更好的讀寫性能。鍵值存儲一般不提供事務處理機制。
圖形數據庫:圖形數據庫主要用于存儲事物及事物之間的相關關系,這些事物整體上呈現復雜的網絡關系,可以簡單地稱之為圖形數據。使用傳統的關系數據庫技術已經無法很好地滿足超大量圖形數據的存儲、查詢等需求,比如上百萬或上千萬個節點的圖形關系,而圖形數據庫通過采用不同的技術可以很好地解決圖形數據的查詢、遍歷、求最短路徑等需求。在圖形數據庫領域,有不同的圖模型來映射這些網絡關系,比如超圖模型,以及包含節點、關系及屬性信息的屬性圖模型等。
關系數據庫:關系模型是最傳統的數據存儲模型,使用記錄(由元組組成)按行進行存儲,記錄存儲在表中,表由架構界定。表中的每列都有名稱和類型,所有記錄都要符合表的定義。SQL是專門的查詢語言,可提供相應的語法查找符合條件的記錄,如表聯接。表聯接可以基于表之間的關系在多表之間查詢記錄。表中的記錄可以被創建和刪除,記錄中的字段也可以單獨更新。
文檔存儲:文檔存儲支持對結構化數據的訪問,不同于關系模型的是,文檔存儲沒有強制的架構要求。事實上,文檔存儲以封包鍵值對的方式進行存儲。在這種情況下,應用會對要檢索的封包采取一些約定,或者利用存儲引擎的能力將不同的文檔劃分成不同的集合,以管理數據。
基于內存存儲的內存數據庫:內存存儲是指內存數據庫將數據庫的工作版本放在內存中,由于數據庫的操作都在內存中進行,因而磁盤 I/O 不再是性能瓶頸,內存數據庫系統的設計目標是提高數據庫的效率和存儲空間的利用率。內存存儲的核心是內存存儲管理模塊,其管理策略的優劣直接關系到內存數據庫系統的性能。