什麼是Cassandra數據庫

在本文中,咱們將介紹Cassandra名字的含義、Cassandra的發展簡史、Cassandra這項技術的特色及優點,以及對於這項技術的將來展望。
本文將用淺顯易懂的方式,幫助您將對Cassandra這項技術的前世此生有一個粗略的瞭解。

 
誰是Cassandra
 
Apache Cassandra™是一種分佈式的NoSQL數據庫。它具備成功應用所需的持續可用性、高性能、可線性擴展等特色。
 
 
Cassandra(卡珊德拉)是希臘神話中特洛伊國王普里阿摩斯的女兒,她是一個具備預言能力的先知,卻因受到阿波羅詛咒,其預言永遠不得被人們相信。Cassandra預見到了特洛伊城的毀滅,卻因無人相信而無力阻止。
有人曾這樣評述卡珊德拉:她和古希伯來的衆先知同樣直視事理的真相,不論過去、如今或將來;可是她的明晰無誤的眼力,和她心中負荷的宇宙事理的可怖奧祕,卻使她隔絕於正常的人生,使她在世人眼中成了個瘋子。這即是古來先知們一再遭遇的命運。
 
 
 
雖然Cassandra做爲先知不被人相信,可是做爲一種面向將來的技術,愈來愈多的開發者和科技公司已經看到了Cassandra的價值而且從中受益。

 
Cassandra簡介
 
Apache Cassandra是一種開源的、分佈式的NoSQL數據庫。它最先是由Facebook內部開發,後來於2008年7月公開了源碼。
Cassandra不只具備現代應用所要求的持續可用性(沒有宕機時間)、高性能以及線性擴展的特色,其操做也十分簡易,並且能夠便捷地跨數據中心和跨區域進行數據複製。
Cassandra能夠支持PB級別的信息處理,也能夠負載每秒上百萬條的併發操做。強大的功能使得Cassandra可以幫助企業和組織在多雲及混合雲架構中處理巨量的數據。
做爲一個在Cassandra這項技術上深耕十餘年的企業,DataStax致力於同開源社區一塊兒開創屬於Cassandra的世代,並鞏固其在雲原生應用數據庫中的領先地位。
 
 
 

Cassandra簡史
 
Cassandra最先是由Facebook工程師Avinash Lakshman和Prashant Malik開發,用於提升Facebook郵件收件箱的搜索功能。經過使用Cassandra,用戶能夠更快地找到他們須要的郵件和內容。
 
Cassandra的架構結合了亞馬遜Dynamo論文中提出的分發模型和Google BigTable論文中描述的日誌結構存儲引擎(log-structured storage engine),從而實現了在不一樣節點間的橫向拓展。其結果是Cassandra做爲一種高可拓展性的數據庫,能搞定大多數數據量巨大及性能密集型的使用場景。
 
2008年7月,Facebook公開了Cassandra的源碼。2009年3月,Cassandra成爲了Apache孵化器的開源項目。以後在2010年4月,Cassandra從Apache孵化器畢業,成爲了Apache基金會的最高級別項目之一。時至今日,Cassandra在Apache許可證2.0版本下可自由使用。
 
 
DataStax的團隊由Cassandra數據庫演進過程當中的領軍人物組成,他們貢獻了Cassandra 3.0版本中大部分的代碼。在4.0及以後的版本中,咱們的團隊也在持續積極地與開源社區緊密合做,爲Cassandra的將來貢獻所能。
 

技術特色及優點
 
01 開源
從Linux這樣的操做系統到管理數據的基礎設施,當代的軟件開發組織已經大量地在使用開源技術。開源技術的吸引力不只來自於其可負擔性和可延展性,其避免被套牢捆綁的靈活性也至關受到歡迎。
使用開源技術的企業和團體每每能更快地習得新技術且進行創新。
 
02 靈活性,類似的接口
Cassandra查詢語句(CQL)與SQL很是相近,大多數開發者能夠用很短的時間對CQL熟悉起來。(若是你須要幫助,這裏有一份CQL入門介紹
 
03 高性能
大多數傳統數據庫都採用了主從結構 (primary / secondary architecture),其中只有惟一的一級數據備份能夠有讀寫操做,二級數據備份則只能有讀取的操做。這種結構的缺點是高延遲、高成本以及在規模方面的低可用性。
在Cassandra中,並無一個節點負責向整個節點集羣複製數據,而是每個節點均可以進行讀寫操做。這一特色加強了數據庫的性能和彈性。
 
04 隨時隨地在線
因爲Cassandra的每個節點均可以進行讀寫操做,數據能夠被快速複製到混合的雲環境,也能夠快速分佈到不一樣的地理位置。
 
若是一個節點出現了故障,用戶會被自動轉到最近一個工做正常的節點。用戶甚至不會注意到有節點出現了問題,由於他們使用的應用即便在這種狀況下也能正常運做。
也就是說,應用程序會永遠處於可用狀態,數據也能隨時獲取且不會丟失。
 
不只如此,Cassandra內置的修復服務會馬上修復節點故障帶來的數據一致性問題,並不須要人爲干預。當有節點出現故障,系統的效率甚至不會受到影響。
 
05 可拓展性
在傳統的環境中,擴展應用每每是一個耗時耗錢的過程,須要購買更貴的硬件來實現系統的垂直擴展。
 
Cassandra則只需經過增長節點的方式進行水平擴展便可。例如,使用4個節點能夠負荷200,000操做/秒,而增長到8個節點就能夠擁有400,000操做/秒的性能。點擊這裏查看原文。
 
06 無縫複製
現在,領頭企業愈來愈多地採用多數據中心、混合雲甚至是多雲的部署方案,從而能夠利用不一樣部署的優點並避免被單一供應商的生態系統所限制。
 
企業要想最大限度地利用多雲環境,則須要底層的雲數據庫提供可延展性、安全性和性能的保障。
 
因此在乎料之中的是,雲數據庫市場預計每一年將增加65%,而且在2022年前達到689億美圓的市值。
 
 

 
將來展望
 
Cassandra傳統上被人們認爲是一個極爲強大的數據庫,能夠在絕大多數使用場景中脫穎而出,然而也是比較難學習和操做的數據庫之一。
DataStax致力於與Cassandra社區一塊兒讓Cassandra成爲更容易爲我的使用、爲企業採用和延伸的技術。
  • 將提供簡化的開發者接口APIs,包括REST和GraphQL
  • 將在CQL中添加更多與SQL相似的功能,包括索引(indexing)、表的合併(Joins)、ACID(Atomicity原子性、Consistency一致性、Isolation隔離性、Durability持久性)及對JSON的徹底支持
  • 標準的管理接口APIs及正式的、有官方支持的Kubernetes Operator
  • 將使存儲引擎變爲可插拔的,並同其它接口APIs一塊兒實現數據庫部署和配置的定製化

 

 

相關文章
相關標籤/搜索