iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 25
1

Cassandra DB 簡介

相信已經許多人先前已經搭配 Spark 使用過,不過因為本賽季後續會使用,所以還是簡介一下。Cassandra 本身是 2008 由 Facebook 開源的一個 NoSQL DB,轉眼間已經十年,與 IT 鐵人賽一樣。Cassandra 的資料是以 Key-Value 的方式儲存,資料模型與 Google BigTableHBase 類似,但 Cassandra 在建立 cluster 中不會有 master 節點,每個節點都是平等的,這樣可以避免單一節點有問題時造成整個系統故障。

https://ithelp.ithome.com.tw/upload/images/20181105/20112426dYUQHlvSly.png

Cassandra 的查詢語言 CQLSQL 類似,可參考官方文件:https://cassandra.apache.org/doc/latest/cql/index.html

使用 Cassandra 一開始要先建立一個 KEYSPACE,同時設定 replication 的方式。

CREATE  KEYSPACE [IF NOT EXISTS] keyspace_name 
   WITH REPLICATION = { 
      'class' : 'SimpleStrategy', 'replication_factor' : N } 
     | 'class' : 'NetworkTopologyStrategy', 
       'dc1_name' : N [, ...] 
   }
   [AND DURABLE_WRITES =  true|false] ;

replication 策略包含以下兩種:
1.SimpleStrategy 只有一個datacenters 和一個 rack 時使用,通常用作測試環境,會設定 replication_factor 代表同步儲存資料的節點數目。
2.NetworkTopologyStrategy 通常用在生產正式環境,設定 datacenters 的各個名稱,與分別要同步的節點數目。
https://docs.datastax.com/en/cassandra/3.0/cassandra/architecture/archDataDistributeReplication.html

相關名詞介紹:https://docs.datastax.com/en/cassandra/3.0/cassandra/architecture/archIntro.html

CAP

SaaStwelve-factor,分散式系統有 CAPCassandra 屬於比較偏向 AP 的部分。

熟悉的圖:
https://ithelp.ithome.com.tw/upload/images/20181105/20112426Zpk7ZaDgog.png

來源:http://digbigdata.com/wp-content/uploads/2013/05/media_httpfarm5static_mevIk.png


Azure Cosmos DB 的 Cassandra API

Azure Cosmos DBCassandra APIApache Cassandra 可以無縫的整合,因為使用相同的 CQLv4 ( Cassandra Query Language),只需要改一下連線的字串,即可將原本連線到自行架設的 Cassandra DB 轉為連線到 Azure Cosmos DB

無痛轉移到 Azure Cosmos DBCassandra ,以後再也不用去監控 DB 機器的狀態,以及 CPU、 RAM 使用量突然飆高等問題,也不用管理一堆 yaml 等等的配置檔案以及煩惱配置跨地區 cluster 與設定網路等等,通通都交給 Azure Cosmos DB 幫你處理即可。throughputlatency 出問題時再也不用 Dear DevOps 然後 Dear SysOps,只要於 portal 面板按個按鈕即可解決。

下一篇將介紹如何實際使用 Azure Cosmos DB 的 Cassandra API


上一篇
24. 使用 Azure Cosmos DB(4)以 RESTful API 操作 DB
下一篇
26. 使用 Azure Cosmos DB(6)使用 Cassandra API
系列文
Azure Service 實作 ( Blockchain、AI、 Serverless Architecture)30

1 則留言

0
Larry
iT邦見習生 0 級 ‧ 2018-11-05 20:37:58

大大的功底果然很深, 感覺涉略範圍極廣!三年前看大大的前端文章入門程式,後來看了您的 webGL 跟 css animation 文章,去年上了您的 React.js 課程,然後今年去買了您出的區塊鏈書,很有深度!容小弟繼續跟隨下去!

我要留言

立即登入留言