寫在前面的話:不要被技術嚇到哦 ,本文儘量寫的白話,致力為從事大數據的運營、諮詢規劃、需求以及想學習大數據的入門者提供知識分享@……@
前面文章介紹了什麼是大數據(還不懂什麼是大數據?大數據的生命周期告白),那麼怎麼處理大數據呢?大數據處理技術演進經歷了三個階段:RDB、MPP、Hadoop,本文先介紹RDB資料庫,MPP、Hadoop將在後續發文介紹。
一、什麼是資料庫
所謂資料庫,簡而言之可視為電子化的文件櫃——存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。那麼什麼是關係型數據呢?
首先來看標準定義:RDB(Relational Database,RDB)就是基於關係模型的資料庫,也叫關係型資料庫。關係資料庫是由數據表和數據表之間的關係組成的。在關係型資料庫中,表的關聯是一個非常重要的組成部分。表的關聯是指資料庫中的數據表與數據表之間使用相應的欄位實現數據表的連接。使用這種連接,無須將相同的數據多次存儲,這種連接在進行多表查詢時非常重要。
舉個例子,學生的信息(姓名,姓名ID,性別,所在班級名稱,所在學校名稱,……)可以保存到資料庫中,班級的信息(班級名稱,班級ID,所在學校名稱,歸屬縣市……)也可以保存到資料庫中,這時,如果我們想知道某個縣市有多少學生,就可以用班級信息的「班級名稱」和學生信息的「所在班級名稱」進行關聯,就可以知道這每個班級有多少學生,通過班級歸屬縣市進一步統計出每個縣市有多少學生,像這種通過外鍵建立的對應關係,可以通過關係型資料庫進行存儲,而這種關係的實現,就是關係型資料庫。
二、關係型資料庫RDB的特點
1、行存儲:傳統的關係型資料庫其實就是行式資料庫,就是一行一行的方式來存儲信息的。
2、關係型資料庫,需要預先定義其表結構,而且存儲前需要定義其對應的數據類型或者長度,一旦有新的屬性加入,就要修改其表的結構。
3、Scale Up(也就是Scale vertically):縱向擴展,比如服務區性能不足時,向原有的機器添加內存、CPU。
4、伺服器特點:單伺服器,小型機;
5、SMP處理架構:SMP的全稱是"對稱多處理"(Symmetrical Multi-Processing)技術,是指在一個計算機上匯集了一組處理器(多CPU),各CPU之間共享內存子系統以及總線結構。在這種架構中,一臺電腦不再由單個CPU組成,而同時由多個處理器運行作業系統的單一複本,並共享內存和一臺計算機的其他資源。雖然同時使用多個CPU,但是從管理的角度來看,它們的表現就像一臺單機一樣。系統將任務隊列對稱地分布於多個CPU之上,從而極大地提高了整個系統的數據處理能力。
關係模型最大的優點就是簡單,用戶容易理解和掌握,一個關係就是一張二維表格,用戶只需用簡單的查詢語言就能對資料庫進行操作。但是缺點也很明顯:
1、高並發讀寫需求
網站的用戶並發性非常高,往往達到每秒上萬次讀寫請求,對於傳統關係型資料庫來說,硬碟I/O是一個很大的瓶頸
2、海量數據的高效率讀寫
網站每天產生的數據量是巨大的,對於關係型資料庫來說,在一張包含海量數據的表中查詢,效率是非常低的
3、高擴展性和可用性
RDB資料庫是最難進行橫向擴展的,當一個應用系統的用戶量和訪問量與日俱增的時候,資料庫卻沒有辦法通過添加更多的硬體和服務節點來擴展性能和負載能力。對於很多需要提供24小時不間斷服務的網站來說,對資料庫系統進行升級和擴展是非常痛苦的事情,往往需要停機維護和數據遷移。
在目前數據量急劇爆發的時代,不能支撐海量數據查詢顯然是不能滿足需求的,而且單伺服器存儲和計算能力都非常有限,加上不能橫向擴展只能依靠增加CPU也不能滿足大數據計算的需要,在這種形勢下,MPP大數據處理架構應時而生,後續文章接著探討MPP處理架構。