【大資料】BigTable分散式資料儲存系統分散式資料庫 | 複習筆記

吃水不忘挖井人?發表於2020-12-12

在這裡插入圖片描述

前世今生

  • 資料庫(Database,簡稱DB)
    定義:有組織、可共享
    特徵:
    1. 資料按一定的資料模型組織、描述和儲存
    2. 可為各種使用者共享
    3. 冗餘度小
    4. 獨立性高
    5. 易擴充套件
  • 資料庫管理系統DBMS(DataBase Management System)
    位於使用者和作業系統之間
    幫助使用者有效地組織和儲存資料、高效獲取有用資訊的一層計算機系統軟體
  • 檔案系統階段
    1. 資料長期儲存
    2. 檔案管理資料
    3. 共享性差
    4. 獨立性差
  • 資料庫系統階段
    1. 資料結構化
    2. 資料的共享性高,冗餘度低,易擴充
    3. 資料獨立性高
    4. 資料由DBMS統一管理和控制
  • 偷老師的對比圖
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述

資料模型

  1. 概念模型
  2. 邏輯模型和物理模型
    邏輯模型主要包括網狀模型、層次模型、關係模型、物件導向模型等
    物理模型是對資料最底層的抽象,描述資料在系統內部的表示方式和存取方法,在磁碟或磁帶上的儲存方式和存取方法
  • 關係模型
    在使用者觀點下,關係模型中資料的邏輯結構是一張二維表,它由行和列組成。
  • 關係型資料庫
    標準資料查詢語言SQL(結構化查詢語言)
  • 基本概念:
    1. 結構化資料
    2. 非結構化資料
    3. 半結構化資料
  • NoSQL資料庫:Not Only SQL
    1. 不需要預定義模式
    2. 保證BASE特性
  • 關聯式資料庫設計準則:ACID
    1. 原子性(Atomicity)
    2. 一致性(Consistency)
    3. 事務獨立(Isolation)
    4. 永續性(Durability)
  • NoSQL資料庫設計準則:BASE
    1. 基本可用(Basically Available)
    2. 軟狀態或者柔性狀態(Soft State)
    3. 最終一致性(Eventual Consistency)
  • BASE vs ACID
    1. ACID更強調資料一致性,這是傳統資料庫設計的思路
    2. BASE更強調可用性,弱化資料強一致性的概念,這是網際網路時代對於大規模分散式資料系統的一種需求

BigTable

資料模型

行主鍵、列主鍵、時間,三維主鍵

整體架構
  • 主控伺服器(Master Server)
    負責管理工作

    1. Servers目錄:子表伺服器的地址資訊
    2. root目錄:讀取後設資料表MetaData Table
    3. 啟動流程:
      在這裡插入圖片描述
  • 子表伺服器(Tablet Server)

    1. 來儲存和管理子表資料
    2. 更新子表資料:首先將更新命令記入CommitLog檔案中,之後將更新資料寫入記憶體的MemTable結構中。當MemTable裡容納的資料超過設定大小時,將內容輸出到GFS檔案系統中,形成一個新的SSTable檔案
    3. SSTable:資料儲存區和索引區
    4. 讀取子表資料:在MemTable和SSTable中儲存的資料都是按照“ 行主鍵”的字母順序排序的。除了塊索引外,還加入布隆過濾器
    5. SSTable合併:微合併(Minor Compaction )、部分合並(Merging Compaction)以及主合併(Major Compaction)
    6. 子表恢復:子表伺服器重新啟動後,會從後設資料子表中讀取管理資訊,包括子表伺服器負責管理的子表對應哪些SSTable檔案、以及CommitLog對應的恢復點。將恢復點位置之後的所有更新行為到MemTable中,重建MemTable。
  • 客戶端程式(Client)

HBase

在這裡插入圖片描述

  1. Client:Client端使用Hbase的RPC機制與HMaster和HRegionServer進行通訊
  2. ZooKeeper:儲存了ROOT表的地址、HMaster的地址和HRegionServer地址
  3. HMaster:Hbase主節點,將Region分配給HRegionServer,協調HRegionServer的負載並維護叢集狀態
  4. HRegionServer:HRegionServer主要負責響應使用者I/O請求,向HDFS檔案系統中讀寫資料

相關文章