5分鐘理解數據庫全景圖(SQL,NoSQL,NewSQL,OLAP,OLTP)

這裏寫圖片描述

關係型數據庫(RDBMS,即SQL數據庫)

  • 商業軟件: Oracle,DB2
  • 開源軟件:MySQL,PostgreSQL
    • 單機版本已經很難滿足海量數據的需求

NoSQL

  • NoSQL = Not Only SQL,意即“不僅僅是SQL,提倡運用非關係型的數據存儲
  • 普遍選擇犧牲掉複雜 SQL 的支持及 ACID 事務換取彈性擴展能力
  • 通常不保證強一致性的(支持最終一致)
  • 主要分類
    • 鍵值(Key-Value)數據庫:如 MemcacheDB,Redis
    • 文檔存儲:如 MongoDB
    • 列存儲,方便存儲結構化和半結構化數據,方便做數據壓縮,對針對某一列或者某幾列的查詢有非常大的IO優勢: 如 HBase,Cassandra
      圖數據庫,存儲圖形關係(注意:不是圖片)。如 Neo4J

NewSQL

爲什麼需要NewSQL

  • NoSQL 不能完全取代 RDBMS
  • 單機RDBMS 無法滿足性能需求
  • 使用“單機RDBMS + 中間件”方式,在中間件層很難解決分佈式事務、高可用問題

NewSQL定義

  • 針對OLTP的讀寫,提供與NOSQL相同的可擴展性和性能,同時能支持滿足ACID特性的事務

  • 即保持NoSQL的高可擴展和高性能,並且保持關係模型

NewSQL設計架構

  • 可以基於全新的數據庫平臺,也可以基於現有的SQL引擎優化。
  • 無共享存儲(MPP架構)是比較常見的架構
  • 基於多副本實現高可用和容災
  • 分佈式查詢
  • 數據Sharding機制
  • 通過2PC,Paxos/Raft等協議實現數據一致

代表產品

  • Google Spanner
  • Cockroach DB
  • TiDB
  • OceanBase
  • X-DB

OLTP和OLAP

OLTP

  • 強調支持短時間內大量併發的小型操作(增刪改查)能力,每個查詢涉及的數據量都很小(比如幾十到幾百字節)
  • 強調事務的強一致性(想想銀行轉賬交易,容不得差錯)
  • 舉例:“雙十一”期間,可能有幾十萬用戶在同一秒內下訂單。後臺數據庫要能夠併發的、以近乎實時的速度處理這些訂單請求(如果下了訂單,十幾分鍾還沒有反應,用戶肯定要罵人了)

OLAP

  • 偏向於複雜的只讀查詢,讀取海量數據進行分析計算,查詢時間往往很長
  • 舉例:“雙十一”結束,淘寶的運營人員對訂單進行分析挖掘,找出一些市場規律、分析刷單行爲等等。這種分析可能需要讀取所有的歷史訂單進行計算,耗時幾十秒甚至幾十分鐘都有可能。
  • 代表產品:
    • Greenplum
    • TeraData
    • 阿里 AnalyticDB
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章