
- Cassandra 教程
- Cassandra - 首頁
- Cassandra - 簡介
- Cassandra - 架構
- Cassandra - 資料模型
- Cassandra - 安裝
- Cassandra - 參考 API
- Cassandra - Cqlsh
- Cassandra - Shell 命令
- Cassandra Keyspace 操作
- Cassandra - 建立 Keyspace
- Cassandra - 修改 Keyspace
- Cassandra - 刪除 Keyspace
- Cassandra 表格操作
- Cassandra - 建立表格
- Cassandra - 修改表格
- Cassandra - 刪除表格
- Cassandra - 清空表格
- Cassandra - 建立索引
- Cassandra - 刪除索引
- Cassandra - 批處理
- Cassandra CURD 操作
- Cassandra - 建立資料
- Cassandra - 更新資料
- Cassandra - 讀取資料
- Cassandra - 刪除資料
- Cassandra CQL 型別
- Cassandra - CQL 資料型別
- Cassandra - CQL 集合
- CQL 使用者自定義資料型別
- Cassandra 有用資源
- Cassandra - 快速指南
- Cassandra - 有用資源
- Cassandra - 討論
Cassandra - 簡介
Apache Cassandra 是一個高度可擴充套件、高效能的分散式資料庫,旨在跨多個商品伺服器處理大量資料,提供高可用性,且沒有單點故障。它是一種 NoSQL 資料庫。讓我們首先了解一下 NoSQL 資料庫的功能。
NoSQL 資料庫
NoSQL 資料庫(有時稱為 Not Only SQL)是一種資料庫,它提供了一種儲存和檢索資料的機制,不同於關係資料庫中使用的表格關係。這些資料庫是無模式的,支援輕鬆複製,具有簡單的 API,最終一致,並且可以處理海量資料。
NoSQL 資料庫的主要目標是擁有
- 簡單的設計,
- 水平擴充套件,以及
- 對可用性的更精細控制。
NoSQL 資料庫與關係資料庫相比使用了不同的資料結構。這使得 NoSQL 中的一些操作更快。給定 NoSQL 資料庫的適用性取決於它必須解決的問題。
NoSQL 與關係資料庫
下表列出了區分關係資料庫和 NoSQL 資料庫的要點。
關係資料庫 | NoSQL 資料庫 |
---|---|
支援強大的查詢語言。 | 支援非常簡單的查詢語言。 |
它具有固定的模式。 | 沒有固定的模式。 |
遵循 ACID(原子性、一致性、隔離性和永續性)。 | 它僅“最終一致”。 |
支援事務。 | 不支援事務。 |
除了 Cassandra 之外,我們還有以下一些非常流行的 NoSQL 資料庫:
Apache HBase - HBase 是一個開源的、非關係型的、分散式的資料庫,其模型參考了 Google 的 BigTable,並用 Java 編寫。它是作為 Apache Hadoop 專案的一部分開發的,執行在 HDFS 之上,為 Hadoop 提供類似 BigTable 的功能。
MongoDB - MongoDB 是一個跨平臺的面向文件的資料庫系統,它避免使用傳統的基於表格的關係資料庫結構,而是採用類似 JSON 的文件以及動態模式,從而使某些型別應用程式中的資料整合更加輕鬆和快速。
什麼是 Apache Cassandra?
Apache Cassandra 是一個開源的、分散式的和去中心化/分散式儲存系統(資料庫),用於管理分佈在世界各地的海量結構化資料。它提供高可用服務,且沒有單點故障。
下面列出了一些 Apache Cassandra 的顯著特點:
它是可擴充套件的、容錯的和一致的。
它是一個面向列的資料庫。
其分散式設計基於 Amazon 的 Dynamo,其資料模型基於 Google 的 Bigtable。
它創建於 Facebook,與關係資料庫管理系統截然不同。
Cassandra 實現了一個 Dynamo 風格的複製模型,沒有單點故障,但添加了一個更強大的“列族”資料模型。
Cassandra 正在被一些最大的公司使用,例如 Facebook、Twitter、Cisco、Rackspace、eBay、Twitter、Netflix 等。
Cassandra 的特性
Cassandra 由於其出色的技術特性而變得如此受歡迎。以下是 Cassandra 的一些特性:
彈性伸縮性 - Cassandra 具有高度的可擴充套件性;它允許根據需要新增更多硬體以容納更多客戶和更多資料。
始終線上架構 - Cassandra 沒有單點故障,並且始終可用於無法承受故障的關鍵業務應用程式。
快速線性擴充套件效能 - Cassandra 具有線性可擴充套件性,即隨著叢集中節點數量的增加,吞吐量也會增加。因此,它可以保持快速的響應時間。
靈活的資料儲存 - Cassandra 可以適應所有可能的資料格式,包括:結構化、半結構化和非結構化資料。它可以根據您的需要動態適應資料結構的更改。
輕鬆的資料分發 - Cassandra 提供了在需要的地方分發資料的靈活性,方法是在多個數據中心複製資料。
事務支援 - Cassandra 支援原子性、一致性、隔離性和永續性 (ACID) 等屬性。
快速寫入 - Cassandra 旨在執行在廉價的商品硬體上。它執行極快的寫入操作,並且可以儲存數百 TB 的資料,而不會犧牲讀取效率。
Cassandra 的歷史
- Cassandra 是在 Facebook 為收件箱搜尋而開發的。
- 它於 2008 年 7 月由 Facebook 開源。
- Cassandra 於 2009 年 3 月被納入 Apache Incubator。
- 自 2010 年 2 月起,它成為 Apache 的頂級專案。