概述
Apache Cassandra 是一個支持高擴展的開源NoSQL數據庫。Cassandra非常適合在雲、多數據中心存儲結構化、非結構化的數據。Cassandra 支持高可用性,線性擴展,支持單點故障。強大的動態數據模型支持爲開發提供了靈活性和快速性。
根據本人使用經驗,選用Cassandra的作爲大規模數據存儲理由有4點:
1. 提供了水平擴展的能力,即性能提升可以通過簡單的加機器來實現,天生爲大規模數據存儲服務
2. 自動分片,不需要進行分庫分表。數據增長由小到大,無需額外操作
Cassandra 爲集羣內的節點提供跨節點的自動數據分佈。數據在集羣各個節點的分佈是是透明的,不需要開發者或者DBA做任何事情。
3. 查詢模式嚴格,單表只能應用於某一類查詢,在DB這一層就做了,這樣即使數據量小的時候,開發也不會寫出浪查詢,導致後期數據量大了以後,開發層還需要大規模更改查詢語句(比如關係型的分庫分表,Mongo的sharding模式)
4. 良好的寫入性能
應用場景
cassandra 試用的場景主要有5個方面
1.物聯網
物聯網應用中有大量的傳感器和設備,需要採集環境信息,然後發送給上位機。這些信息都是時間順序排列的,cassandra非常適合用來存儲這些信息。
2.個性化
用戶畫像,使用cassandra接收,分析。可以提供快速,低成本,可擴展的用戶體驗
3.message
最早facebook就是使用cassandra來存儲message(不過後期好像替換掉了)
4.欺騙檢測
cassandra可以是欺騙分析模式變得更快速,精確,高效
5.列表
產品目錄,電影評分,cassandra可以將用戶選中的諸多項目作爲一個集合存儲起來
目前apple擁有最大的cassandra cluster.超過75,000nodes,存儲數據達到10PB.不過apple沒有關於他們使用cassandra的用途的相關報告。此外netflix 也有2500 nodes的cassandra cluster,netflix 是一家流媒體公司,使用cassandra來儲存用戶的訪問痕跡,以及log數據,能夠處理10M transactions/s的併發量。netflix在cassandra的實踐過程中,遇到過很多的坑,也誕生了很多優秀的解決方案,他們都通過blog,code等方式開源了一部分出來。是後續cassandra學習者不可多得的參考資料。
國內cassandra最早的實踐者應該是360,用在搜索存儲業務上,超過了1000Nodes.然後還有宜搜一家創業公司,做手機端的搜索,規模也有250Nodes.
學習資源
中文
Cassandra3.x 官方文檔翻譯:
https://www.gitbook.com/book/fs1360472174/cassandra-document/details
Cassandra 博客專欄:http://blog.csdn.net/column/details/cassandra.html
Cassandra交流羣:QQ羣104822562
英文
下載: http://cassandra.apache.org/download/
源碼: https://github.com/apache/cassandra
官方文檔: http://www.datastax.com/docs
JIRA: https://issues.apache.org/jira/browse/CASSANDRA
分享博客: http://www.planetcassandra.org/blog/
會議: http://www.planetcassandra.org/join-your-local-meetup/
客戶端Driver: https://github.com/datastax
可視化工具:Dbeaver Enterprise 4.0.5以及之前版本免費
https://dbeaver.jkiss.org/files/4.0.5/
DevCenter:https://academy.datastax.com/quick-downloads#devCenter
使用Cassandra的公司: http://www.planetcassandra.org/companies/
點擊關注,共同學習NoSQL開發
本文分享自微信公衆號 - 方丈的寺院(gh_c98f244e174d)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。