Apache Cassandra是一套開源分布式NoSQL資料庫系統。它最初由Facebook開發,用于儲存收件箱等簡單格式資料,集Google BigTable的資料模型與Amazon Dynamo的完全分布式的架構于一身Facebook于2008将 Cassandra 開源,此後,由于Cassandra良好的可擴充性,被Digg、Twitter等知名Web 2.0網站所采納,成為了一種流行的分布式結構化資料存儲方案,線性可擴充性和在商用硬體或雲基礎架構上經過驗證的容錯能力使它成為關鍵任務資料的理想平台。
Cassandra是一個混合型的非關系的資料庫,類似于Google的BigTable。其主要功能比Dynamo (分布式的Key-Value存儲系統)更豐富,但支援度卻不如文檔存儲MongoDB(介于關系資料庫和非關系資料庫之間的開源産品,是非關系資料庫當中功能最豐富,最像關系資料庫的。支援的資料結構非常松散,是類似json的bjson格式,是以可以存儲比較複雜的資料類型)。Cassandra最初由Facebook開發,後轉變成了開源項目。它是一個網絡社交雲計算方面理想的資料庫。以Amazon專有的完全分布式的Dynamo為基礎,結合了Google BigTable基于列族(Column Family)的資料模型。P2P去中心化的存儲。很多方面都可以稱之為Dynamo 2.0。
Cassandra的主要特點就是它不是一個資料庫,而是由一堆資料庫節點共同構成的一個分布式網絡服務,對Cassandra 的一個寫操作,會被複制到其他節點上去,對Cassandra的讀操作,也會被路由到某個節點上面去讀取。對于一個Cassandra叢集來說,擴充性能是比較簡單的事情,隻管在群集裡面添加節點就可以了。
和其他資料庫比較,Cassandra具有三個突出特點:
- 模式靈活:使用Cassandra,像文檔存儲,你不必提前解決記錄中的字段。你可以在系統運作時随意的添加或移除字段。這是一個驚人的效率提升,特别是在大型部署上。
- 可擴充性:Cassandra是純粹意義上的水準擴充。為給叢集添加更多容量,可以指向另一台電腦。你不必重新開機任何程序,改變應用查詢,或手動遷移任何資料。
- 多資料中心:你可以調整你的節點布局來避免某一個資料中心起火,一個備用的資料中心将至少有每條記錄的完全複制。
Cassandra是一個高度可伸縮的分區行存儲,其将行組織到具有所需主鍵的表中。分區意味着Cassandra可以在應用程式透明的情況下跨多台機器分發資料,當從叢集中添加和删除機器時,Cassandra将自動重新分區。行存儲意味着像關系資料庫一樣,Cassandra通過行和列來組織資料。此外,Cassandra的查詢語言(CQL)是SQL的近親。
資料來源:
Apache Cassandra
http://cassandra.apache.org/Cassandra 簡介
https://www.w3cschool.cn/cassandra/cassandra_introduction.htmlGithub- Cassandra
https://github.com/apache/cassandraCassandra是什麼?
https://www.yiibai.com/cassandra/what-is-cassandra.html分布式 Key-Value 存儲系統:Cassandra 入門
https://www.ibm.com/developerworks/cn/opensource/os-cn-cassandra/