天天看點

大資料時代下的存儲技術--- 資料庫類型及應用場景

随着網際網路的飛速發展,人們的工作生活都通過網際網路緊密聯接,各種網絡資料暴增,這就促使大資料時代到來。

大資料(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 區分容錯性

系統中任意資訊的丢失或失敗不會影響系統的繼續運作。

非關系型資料庫的優點:

  1. 資料間耦合性低,擴充性好
  2. 讀寫性能高
  3. 更适用于大資料分析場景

雖然兩種類型資料庫各有優勢,但其優勢也需要建立在不同的架構和成本之上,使用過程中也需要注意各優勢之間的平衡。

在制定企業存儲政策過程中,如何更有效地、穩定地發揮各自的優勢是架構師們需要根據實際需要認真考慮的問題。