熱線電話:13121318867

登錄
首頁精彩閱讀大數據數據庫技術簡介與分類分析
大數據數據庫技術簡介與分類分析
2016-05-05
收藏

大數據數據庫技術簡介與分類分析

說起大數據生態,不得不提大數據生態系統圖,而大數據行業卻不斷的發生著巨變,目前的這張圖應該還算比較新了。

大數據生態

創業者們蜂擁至這個行業,這個行業正變得越來越擁擠。Hadoop似乎已經奠定了其作為整個大數據生態系統的關鍵部分,Spark是另一個基于內存計算的開源分布式計算框架,它試圖填補Hadoop的弱項,提供更快的數據分析和良好的編程接口。

分析工具領域變得異?;钴S,數據應用領域正如預測一樣逐漸成為重心。一些類別如數據庫無論是NoSQL還是NewSQL和社交數據分析正日趨成熟。

今天就先讓我們從眾多內容當中,先挑選一塊和大家探討探討,先從數據庫說起吧。

數據庫技術 傳統vs新型

從大的角度講,可以簡單的將數據庫分為兩類:

●傳統SMP架構的數據庫,主要指代的是傳統的關系型數據庫,例如DB2、Postgrel,MySQL等。

●新型數據庫,主要指代為支持大規模數量集,高并發要求,高可擴展性等孕育而生的新型數據庫。包括目前大數據生態當中主流MPP,NoSQL,NewSQL數據庫等

傳統數據庫和新型數據庫的一個主要區別是SMP架構VS分布式/并行

數據庫理論基礎

理論基礎 – 服務器系統架構

●SMP(Symmetric Multi-Processor)

SMP是對稱多處理器結構的簡稱,指代多個CPU對稱工作,無主次或從屬關系。各個CPU共享相同的物理內存,每個CPU訪問內存中的任何地址的路徑是相同的(訪問的時間是相同的),因此SMP也被稱為一致存儲器訪問結構(UMA: Uniform Memory Access)。

●NUMA(Non-Uniform Memory Access)

NUMA是非對稱的多處理結構,剛好與SMP相對,多個CPU工作時,對內存的訪問路徑不同。NUMA架構的提出主要是解決SMP架構下多CPU擴展的問題。

●MPP(Massive Parallel Processing)

和NUMA不同,MPP提供了另一種進行系統擴展的方式。它由多個SMP服務器通過一定的節點互聯網絡進行連接,協同工作,完成相同的任務,從用戶的角度來看是一個服務器系統。

SMP和NUMA都主要指向單一的計算機系統,而MPP則有點集群的意思了

理論基礎 – ACID基本理論

●原子性(Atomic)

整個事務要么成功,要么失敗,杜絕部分成功

●一致性(Consistent)

事務的運行并不改變數據庫中數據的一致性。例如,完整約束了a+b=10,一個事務改變了a,那么b也應該隨之改變

●獨立性(lsolated)

也稱作隔離性,指兩個以上的事務不會出現交錯執行的狀態,因為這樣不可能會導致數據不一致

●持久性(Durable)

事務執行成功以后,該事務所對數據庫做的更改便是持久的保存在數據庫之中,不會無緣無故的回滾

傳統基于關系模型的數據庫遵從ACID基本理論,而新型分布式數據庫則并不完全遵從該理論

理論基礎 – 分布式CAP理論

分布式CAP理論

●一致性(Consistent)

即數據的?一致性,簡單的說就是數據復制到N臺機器,如果有更新,要N臺機器的數據一起更新

●可用性(Availability)

在集群中一部分節點故障后,集群整體還能響應客戶端的讀寫請求

●分區容錯性(Tolerance)

分區發生但不影響整個系統的運行

CAP

基于傳統關系型模型數據庫更關注CA,新型NoSQL數據庫更關心CP,AP

數據庫分類與對比分析

根據體系架構來分類

從數據庫的體系架構來看,可以將數據庫分為:

●SMP Database

這類數據大多指代的是基于傳統關系型數據庫模型的數據庫,比如IBM的DB2,Postgres,MySQL

●MPP Database

基于MPP體系架構的數據庫,例如Teradata, Greenplum, Netezza等

●Distribute Database

嚴格來講MPP也應該屬于分布式數據庫,但這里更多指的是新型NoSQL和NewSQL數據庫,例如Hbase, Cassandra, Hive, mongoDB等

根據SQL支持來分類

根據數據庫對SQL的支持情況,可以將數據庫分為:

SQL Database

SQL數據又可以細分為:

  1. ?Old SQL傳統SQL數據庫
  2. ?New SQL新型SQL數據庫
  3. ?MPP
  4. ?SQL on Hadoop

●NoSQL Database

而NoSQL數據庫本身又是非常寬泛的,其又可以分為多種類型:

  1. ?Key-Value Database
  2. ?Document Database
  3. ?Column family Stores
  4. ?Graph Database

SQL,NewSQL and NoSQL

無論是「OldSQL」,「NewSQL」還是「NoSQL」,都是大數據解決方案中經常提及的名詞。那么面對傳統的SQL數據庫, NoSQL數據存儲以及NewSQL數據該如何進行選擇呢?其實,沒有任何一款可以應對所有的應用場景,應該根據應用場景選擇對的數據庫。

對于傳統的SQL數據庫來說,它已經被使用了多年,成為了很多應用服務過程中依賴的核心組件。如果對于自身的應用來說它的運行和性能表現是可接受的,那么其實是不需要考慮替換的。沒有必要的替換或更新只會引入更多的工作量,更大的風險。對于傳統SQL數據庫而言,其優勢主要體現在:

●提供了系統運行多年的穩定性和可靠性,對標準SQL的支持能力

●與ORM的兼容度

●擁有更加豐富的事務處理功能

●即席查詢的能力

●成熟而穩定的商業生態

傳統SQL在過去一直處于市場的壟斷地位,但是隨著存儲,處理和分析的數據量指數倍的快速增長,對傳統SQL數據庫形成了非常大的挑戰,其劣勢主要體現在:

●設計架構決定了很難進行擴展,性能瓶頸往往局限在單機的處理能力上

●傳統SQL數據庫系統設計遵循的往往是通?用標準”one size fits all”,因此在很多專用場景下也不是最優的

●復雜的性能調優參數,需要在性能,數據安全,資源使用等多方面平衡,調優成本非常高

對于NoSQL數據庫來說,它在目前的大數據生態和真實應用場景中已經越來越多的被廣泛的應用。對非結構,半結構化數據的支持使得在很多特定場景下的開發非常簡單,對于對SQL弱依賴的業務,NoSQL的引入不但降低了本身的成本而且增加了系統的擴展性和性能。其優勢主要體現在:

●大多NoSQL設計遵從最終一致性,因此具有更高的可用性

●同時基于最終一致性的系統相比于傳統的OLAP關系型數據庫具有更好的負載擴展性,支持更大的數據集

●很多NoSQL系統對于非關系性數據,例如log messages, XML and JSON documents進行了更多的優化

盡管NoSQL數據庫技術目前發展非常迅速,應用也越來越廣,但是其還是有自身的局限性:

●NoSQL數據庫基本上不支持事務,也不遵從ACID。因此對于嚴格依賴ACID的應用并不適用

●對OLAP-style的查詢并不能直接進行很好的支持,需要更多應用開發量

NewSQL也是目前比較流行的術語,與NoSQL相比還比較新。NewSQL系統基本上是基于關系數據庫模型的,對SQL的支持非常好,與此同時嘗試解決傳統SQL數據庫面臨的問題。NewSQL數據庫的設計目的不僅具有NoSQL對海量數據的存儲能力,還保持了傳統數據庫支持ACID和SQL特征。NewSQL的主要優勢是:

●減少了應用研發和設計的復雜度,提供了強一致性和全事務支持

●對SQL的支持以及相應的標準工具

●豐富的數據分析SQL支持和擴展

●無需應用層面大的改進便可以在數據和查詢模型的基礎上提供類似NoSQLstyle集群方案的擴展性和性能

于此同時,NewSQL也存在其自身的劣勢:

目前還沒有NewSQL系統具備像傳統SQL數據庫系統那樣的通用性

●由于NewSQL自身in-memory的系統架構設計,在海量數據的支持上還是面臨很多技術和成本的挑戰

下表對OldSQL,NoSQL和NewSQL

Old<a href='/map/sql/' style='color:#000;font-size:inherit;'>SQL</a>,No<a href='/map/sql/' style='color:#000;font-size:inherit;'>SQL</a>和New<a href='/map/sql/' style='color:#000;font-size:inherit;'>SQL</a>

MPP and Hadoop

對于MPP和Hadoop而言,很多人都會把兩者放在一起進行比較,可實際上這兩者本身應該不太具有可比性,因為并不完全是同類的產品,之所以會比較,可能是因為在特定的應用場景下,我們不知道也不清楚該如何從他們之中進行選擇。

無論是MPP數據庫還是Hadoop,其基礎架構都是以分布式為基礎的。MPP數據庫本質上是分布式并行關系型數據庫系統,而Hadoop并不是一個簡單的單一系統或技術,而是一個生態系統,由多個組件和不同的功能構建起來。

MPP數據庫的主要架構特點是:

●分布式,基于網格計算技術

●Shared-nothing

●DAS(direct-attached storage)存儲特質

●數據分區以及本地處理

●數據壓縮

●高性能網絡鏈接

對于MPP數據庫,它比較擅長的是:

●關系型數據

●批處理

●即席數據查詢分析

●低并發場景

●ANSI SQL支持度高

而與之不同的是,Hadoop?比較擅長的是:

●一次寫多次度

●100+以上節點集群規模

●支持關系型和非關系型數據

●具有非常高的并發性

●批處理和分析負載

●具有非常好的擴展性

下表對MPP和Hadoop進行了對比分析

MPP和<a href='/map/hadoop/' style='color:#000;font-size:inherit;'>Hadoop</a>

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢