什麼是Cassandra資料庫

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

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

 
Cassandra簡介
 
Apache Cassandra是一種開源的、分散式的NoSQL資料庫。它最早是由Facebook內部開發,後來於2008年7月公開了原始碼。
Cassandra不僅具有現代應用所要求的持續可用性(沒有當機時間)、高效能以及線性擴充套件的特點,其操作也十分簡易,而且可以便捷地跨資料中心和跨區域進行資料複製。
Cassandra可以支援PB級別的資訊處理,也可以負載每秒上百萬條的併發操作。強大的功能使得Cassandra能夠幫助企業和組織在多雲及混合雲架構中處理巨量的資料。
作為一個在Cassandra這項技術上深耕十餘年的企業,DataStax致力於同開源社群一起開創屬於Cassandra的世代,並鞏固其在雲原生應用資料庫中的領先地位。
 
 
什麼是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版本下可自由使用。
 
什麼是Cassandra資料庫
 
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資料庫
 

 
未來展望
 
Cassandra傳統上被人們認為是一個極為強大的資料庫,可以在絕大多數使用場景中脫穎而出,然而也是比較難學習和操作的資料庫之一。
DataStax致力於與Cassandra社群一起讓Cassandra成為更容易為個人使用、為企業採用和延伸的技術。
  • 將提供簡化的開發者介面APIs,包括REST和GraphQL
  • 將在CQL中新增更多與SQL類似的功能,包括索引(indexing)、表的合併(Joins)、ACID(Atomicity原子性、Consistency一致性、Isolation隔離性、Durability永續性)及對JSON的完全支援
  • 標準的管理介面APIs及正式的、有官方支援的Kubernetes Operator
  • 將使儲存引擎變為可插拔的,並同其它介面APIs一起實現資料庫部署和配置的定製化

 

 

 

相關文章