Cassandra 3.x官方文档(1)---关于Cassandra
寫在前面
cassandra3.x官方文檔的非官方翻譯。翻譯內容水平全依賴本人英文水平和對cassandra的理解。所以強烈建議閱讀英文版cassandra 3.x 官方文檔。此文檔一半是翻譯,一半是個人對cassandra的認知。盡量將我的理解通過引用的方式標注,以示區別。另外文檔翻譯是項長期并有挑戰的工作,如果你愿意加入cassandra git book,可以發信給我。當然你也可以加入我們的QQ群,104822562。一起學習探討cassandra.
cassandra 概況
Apache Cassandra 是一個支持高擴展的開源NoSQL數據庫。Cassandra非常適合在云、多數據中心存儲結構化、非結構化的數據。Cassandra 支持高可用性,線性擴展,非常簡單的在多個server上進行操作,支持單點故障。強大的動態數據模型支持提供了靈活性和快速響應。
cassandra 工作原理
cassandra 可擴展的架構意味著它有能力處理PB級數據,每秒上千的并發操作
| 分片行存儲DB | Cassandra 架構允許授權用戶通過CQL在任何數據中心的節點上連接到集群的任何節點,為了易使用,CQL使用了類似SQL的語法。和cassandra進行交互的最基礎的工具就是CQL shell,cqlsh.使用cqlsh,你可以創建keyspaces,tables.增刪改查表數據。Cassandra3.x需要CQL2.2+支持。如果你喜歡圖像化工具,可以使用DataStax DevCenter,生產環境中,DataStax 提供一系列的driver |
| 數據自動分布 | Cassandra 為集群內的節點提供跨節點的自動數據分布。數據在集群各個節點的分布是是透明的,不需要開發者或者DBA做任何事情 |
| 內置且可配置的復制 | Cassandra 也提供內置的且可配置的復制,為集群節點環的數據提供跨節點的數據冗余備份。這意味著集群中任何一個節點down了,集群中的其他節點還有down節點的數據備份。復制可以進行配置,從而跨數據中心,擴地區分布 |
| cassandra支持線性擴展 | Cassandra支持線性擴展,意味著可以通過簡單的增加新節點來提高集群能力。例如,如果兩個節點能夠支持每秒100,000個事務,4個節點就能夠支持每秒200,000.8個節點就能支持400,000 |
注:
這個地方的線性擴展稍微有誤導嫌疑,真實環境中的線性擴展不可能如上這種100%線性擴展,增加了節點,節點之間的通信時間會增加,即增加了節點后,單個節點的處理能力會有所下降。筆者之前的測試顯示,差不多是70%.這個可能會和具體的業務場景有關系。
cassandra 與關系型數據庫的區別
Cassandra 是基于peer to peer 通信的分布式數據庫。最好的實踐是1個查詢對應一張表。所以數據是非范式的。正因為如此,跨table的JOIN查詢不存在,盡管可以在application中去join。
NoSQL 介紹
NoSQL 通常意義上是指“不僅僅是SQ”,意味著DB可以使用不同于關系型數據庫的存儲數據方法。目前有很多不同類型的NoSQL數據庫,因此即使是直接比較常用類型的NoSQL也沒什么用。今天的DBA必須要更加全能,他們必須要知道如何運維關系型數據庫和NoSQL數據庫。
CQL 介紹
Cassandra Query Language(CQL) 是Cassandra 數據庫管理系統的主要接口,CQL的用法和SQL類似。CQL和SQL有著相同的表結構,行列式。CQL與SQL主要的不同是CQL不支持join和子查詢.相反,Cassandra 強調數據的反范式。
CQL是與Cassandra交互的首選。相比較老的Casssandra APIs,CQL性能和簡單易用是大的優勢
CQL 文檔
包括了數據模型,例子,和命令參考
如何和Cassandra交互
cassandra進行交互的最基礎的工具就是CQL shell,cqlsh.使用cqlsh,你可以創建keyspaces,tables.增刪改查表數據。Cassandra3.x需要CQL2.2+支持。如果你喜歡圖像化工具,可以使用DataStax DevCenter,生產環境,DataStax 提供一系列的driver
數據遷移
數據可以通過CQL INSERT命令,COPY命令和CSV文件方式,或者sstableloader 方式。但是實際上,你需要考慮你的客戶端應用程序將如何查詢表數據,需要首先定義數據模型。關系型數據庫和NoSQL之間的范式改變,意味著直接將關系型數據庫數據搬到Cassandra注定會失敗。
注:
Cassandra 數據庫不同于關系型數據庫,它必須首先弄清楚業務的查詢場景,才能去設計數據模型。
cassandra 工具
Cassandra 自動安裝了nodetool
工具,一個非常有用的命令行管理工具。另外一個默認的安裝工具是cassandra-stress
可以用來做基本的數據庫負載性能測試
注:
nodetool 可以用來查詢節點狀態,節點配置信息等等,是個非常方便,必不可少的cassandra管理工具。
轉載于:https://www.cnblogs.com/stoneFang/p/6715285.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Cassandra 3.x官方文档(1)---关于Cassandra的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thinkphp F方法
- 下一篇: Java反射 - 2(对象复制,父类域,