在本文中,我們將簡單介紹什麼是NoSQL、NoSQL與關係型資料庫的區別、NoSQL資料庫的優勢以及如何使用NoSQL。
在文末,我們也將分享一些有用的資源,幫助初學者快速開始使用NoSQL。
什麼是NoSQL
NoSQL資料庫是為滿足雲端計算的需求而設計的,它突破了傳統關係型資料庫對規模、效能、資料模型和資料分佈的限制。
NoSQL (Not-only-SQL,不只是SQL) 資料庫採用與關係型資料庫不同的方式來儲存、分佈和獲取資料。
最初,Facebook、Google和Amazon這樣的網際網路巨頭希望能夠在全球各地讀寫資料,並向數十億使用者提供高效能和高可用的保障,這就產生了對可伸縮性(scalable) 的資料管理系統的需求。於是他們創造並開始使用NoSQL。
現如今,大多數公司和組織都需要通過大型應用系統來滿足使用者的個性化需求。而NoSQL正是可以助其一臂之力的資料庫技術。
NoSQL與關係型資料庫
NoSQL和關係型資料庫分別支援不同的應用需求,很多時候企業會同時使用這兩種資料庫來應對不同的使用場景。從技術的角度來說,區別這兩者的主要標準包括:
NoSQL的優勢
NoSQL資料庫最初是為了支援以雲端應用為目標的、去中心化的系統所設計。相比其它資料庫管理系統,像Cassandra這樣的NoSQL資料庫通常有以下優勢:
- 持續的可用性:即使遭遇最為嚴重的基礎設施故障,NoSQL資料庫仍然能保持線上
- 環球分佈:不論身在何方,都能獲取資料
- 操作低延遲:滿足絕大部分密集操作的雲應用的反應時間
- 線性擴充:可預見的擴充套件和收縮滿足了當下及未來的雲應用需求
- 功能整體性:混合的工作內容和多種資料模型的緊密整合 (coherent integration) 和互用性 (interoperability)
- 操作成熟性:為企業準備好的雲應用資料管理系統
- 低擁有成本:無需特殊硬體或附加軟體
如何使用NoSQL
從現實層面來講,應該如何開始使用NoSQL並且落實你的首個應用呢?大致來說,有三種採用NoSQL資料庫的方法。
- 新應用:很多人從零開始使用NoSQL,是從將其應用到一個新的雲服務開始的。這種方式避免了應用的重寫和資料的遷移。
- 擴編:有些人選擇將現有的系統擴充,新增NoSQL的元素進去。通常這種情況發生在關係型資料庫管理系統不能再滿足應用程式的成長需求時,此時應用程式需要一個能滿足更大的規模或是更好的可用性的系統來支援。
- 完全替代:對於一直在燒錢的系統或者是由於併發性、資料速率和資料數量產生重大問題的系統,人們通常會使用NoSQL資料庫完全替代原有的系統。
從何處開始
如果你正打算更多地學習瞭解Apache Cassandra,我們有很多資源幫助你順利起航。
- DataStax for Developers:學習如何玩轉Apache Cassandra™
- DataStax Astra:通過DataStax Astra,一個基於Apache Cassandra的資料庫及服務平臺,能夠幫你快速地建立雲原生應用。
References:
https://www.datastax.com/nosql