隨著互聯網的飛速發展,人們的工作生活都通過互聯網緊密聯接,各種網絡數據暴增,這就促使大數據時代到來。
大數據(big data),IT行業術語,是指無法在一定時間範圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。
大數據時代,不但數據規模大、數據傳遞快,而且數據種類也是多樣性的。這就對數據的存儲技術提出了更高的要求,但是也給整個世界帶來了更加快捷和方便的進步和發展。
大數據時代下的數據類型:
- 結構化數據(Structured Data)
即行數據,存儲在數據庫裡,可以用二維表結構來邏輯表達實現的數據
- 半結構數據(Semi-structured Data)
指結構數據中,結構不規則的數據,由於結構變化很大也不能夠簡單的建立一個表和他對應。如:聲音、圖像文件等之間的數據,HTML文檔就屬於半結構化數據。
- 非結構化數據(Unstructured Data)
非結構化數據是數據結構不規則或不完整,沒有預定義的數據模型,不方便用數據庫二維邏輯表來表現的數據。包括所有格式的辦公文檔、文本、圖片、XML, HTML、各類報表、像和音頻/視頻信息等等。
傳統單一的數據庫的時代已經過去,大數據的特點以及新的數據應用場景對數據庫存儲不斷提出的新需求,採用傳統的數據庫應對不同需求這種一刀切的方式已經不再奏效。
大數據時代下,數據庫類型以及應用場景
雖然使用數據庫的目的都是為了進行數據存儲,但是不同數據庫還是有不同的產品特性。
數據庫分類
關係型數據庫應用場景
“關係模型,就是二維表格模型。一個關係型數據庫就是由多個二維表及其之間的聯繫所組成的一個數據組織。”
關係數據庫的使用比較廣泛,其以行和列的形式來存儲數據,更便於用戶理解,關係型數據庫這一系列的行和列被稱為表,一組表組成了數據庫。 主流的關係型數據庫例如:OracleL、SQL Server、DB2、MySQL、PostgreSQL等。
如下圖所示:通常該表第一行為字段名稱,描述該字段的作用,下面是具體的數據。
關係型數據庫特點--ACID理論
• A (Atomicity) 原子性: 就是說事務裡的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都成功,只要有一個 操作失敗,整個事務就失敗,需要回滾。
• C (Consistency) 一致性: 一致性也比較容易理解,也就是說數據庫要一直處於一致的狀態,事務的運行不會改變數據庫原本的一致性約束。
• I (Isolation) 獨立性: 是指併發的事務之間不會互相影響,如果一個事務要訪問的數據正在被另外一個事務修改,只要另外一個事務未 提交,它所訪問的數據就不受未提交事務的影響。
• D (Durability) 持久性: 指一旦事務提交後,它所做的修改將會永久的保存在數據庫上,即使出現宕機也不會丟失。
關係型數據庫的優點:
1.操作方便, SQL語言容易書寫和理解。
2.數據冗餘度低
3.適合支撐複雜數據查詢
非關係型數據庫應用場景
常見的非關係型數據庫有鍵值數據庫、列存儲數據庫、文檔數據庫、圖數據庫、時序數據庫、搜索引擎數據庫等。非關係型數據庫主要用於處理大數據量、高負載情況,一般採集分佈式文件系統。通常,在非關係型數據庫中,數據以對象的形式存儲在數據庫中,而對象之間的關係通過每個對象自身的屬性來決定。
非關係型數據庫特點---CAP理論
CAP理論指的是在一個分佈式系統中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區容錯性),三者不可得兼。
CAP 理論核心是: 一個分佈式系統不可能同時很好的滿足一致性,一致性和區分容錯性這三個需求,最多隻能同時較好的滿足兩個。
- C:Consistency 一致性
在分佈式系統中的所有數據備份,在同一時刻是否同樣的值。
- A: Availability 可用性
保證每個請求不管成功或者失敗都有響應。
- P:Partition Tolerance 區分容錯性
系統中任意信息的丟失或失敗不會影響系統的繼續運作。
非關係型數據庫的優點:
- 數據間耦合性低,擴展性好
- 讀寫性能高
- 更適用於大數據分析場景
雖然兩種類型數據庫各有優勢,但其優勢也需要建立在不同的架構和成本之上,使用過程中也需要注意各優勢之間的平衡。
在制定企業存儲策略過程中,如何更有效地、穩定地發揮各自的優勢是架構師們需要根據實際需要認真考慮的問題。