PowerWeb 虛擬主機
2011年03月08日 星期二

NoSQL資料庫 - 解決社群網站龐大資料, 時間就是重點!



關聯式資料庫(如:Oracle、MS-SQL、MySQL..)對於每日需應付增加 2G以上的社群網站大量資料存取早就不敷需求,以Facebook為例,使用自行開發的 Cassandra 資料庫,就是 NoSQL 的一個蓋念。

何謂 NoSQL 呢?其實 NoSQL 是「非關聯式資料庫」的泛意,在學習資料結構基本概念中應該很多人都很熟悉何謂「關聯式資料庫」、「非關聯式資料庫」,我們常使用的 SQL 關聯式資料庫,因廣泛應用於企業軟體、及應用軟體上,且維護、相容的應用軟體資源較多,所以無論在學術及企業界都以關聯式資料庫為主流。

web2.0網站的興起,相關周邊應用服務的資料量越來越大,很多公司的 MIS 人員一定會感覺到,資料儲存容量的需求越來越大(硬碟總是不夠用的感覺,前幾年才在串連幾個百G硬碟成為1TB磁碟陣列,現在則變成要串連TB硬碟成TB磁碟陣列),那是因為資料量只會暴增,絕對不會遞減,當資料量暴增的同時,處理資料的速度就必須跟進,而使用關聯式資料庫, 任何大數據的web系統,都非常忌諱多個大表的關聯查詢,以及復雜的數據分析類型的複雜SQL報表查詢。

NoSQL 的五項概念

  • NoSQL是Not Only SQL
  • 增加機器就能自動擴充資料庫容量
  • 打破Schema欄位架構的限制
  • 資料遲早會一致,資料遺失的風險
  • 成熟度不足,版本升級風險高

幾個 NoSQL 的代表性

  • Redis
     一個 Key-Value 類型的記憶體數據庫,定期通過異步操作把資料庫數據flush到硬碟上進行保存。
  • Tokyo Cabinet (TC) 和 Tokoy Tyrant (TT)
    TC和TT的開發者是日本人Mikio Hirabayashi,主要被用在日本最大的SNS網站mixi.jp上。
  • Flare
    TC是日本第一大SNS網站mixi開發的,而Flare是日本第二大SNS網站green.jp開發的,Flare簡單的說就是給TC添加了scale功能。
  • MongoDB
     MongoDB是一個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫。
  • CouchDB
    CouchDB一種半結構化的資料分佈方式,高容錯的數據庫系統,其提供RESTFul HTTP/JSON接口。其擁有MVCC特性,用戶可以通過自定義Map/Reduce函數生成對應的View。
  • Cassandra
    Facebook在2008年開源出來的,隨後Facebook自己使用Cassandra的另外一個不開源的分支,目前除了Facebook之外,twitter和digg.com都在使用Cassandra。
  • Voldemort
     Voldemort 是個和 Cassandra 類似的方向,解決scale問題的分佈式資料庫系統。
  • MapReduce
        是Google提出的一個軟體架構,用於大規模數據集(大於1TB)的並行運算。概念"Map(映射)"和"Reduce(化簡)"。
  • Hadoop
        是Apache軟體基金會所研發的開放源碼並行運算編程工具和分佈式文件系統,與MapReduce和Google檔案系統的概念類似。


參考資料:

 



上一筆 回上頁 下一筆




POWERWEB 虛擬主機網頁空間 © 2004~2018 KangYu Inc. All Rights Reserved. 諮詢專線 0809-058-688 服務時間 週一~週五 09:00 ~ 18:00‧ 傳真電話 (02) 3322-9019
線上信用卡授權