iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
0

1. 安裝 docker image

安裝方式我們使用官方提供的docker image,作為本次30天學習使用。

docker hub

上面提供了許多設定方式,挑選docker-compose,在本機啟動。

docker-compose.yml

version: '3'

services:
  some-scylla:
    image: scylladb/scylla
    container_name: some-scylla

  some-scylla2:
    image: scylladb/scylla
    container_name: some-scylla2
    command: --seeds=some-scylla

  some-scylla3:
    image: scylladb/scylla
    container_name: some-scylla3
    command: --seeds=some-scylla

執行結果

2. cqlsh

cqlsh 是 CASSANDRA 提供的資料庫管理工具,使用此工具,可以執行cql語法,對資料庫做操作。

再強調一次,SCYLLA 完全兼容CASSANDRA,使用的也是cql,學習使用cql對於SCYLLA和CASSANDRA操作沒有任何差異。

並不像MySQL與MSSQL,屬於T-SQL,但使用上的語法和方式還是有些不同。

SCYLLA和CASSANDRA 吃的cql是一模一樣的。

docker hub 的 SCYLLA 官網頁面也直接提供執行cqlsh的方式

$ docker exec -it some-scylla cqlsh

預設配置的port號是9042,這點CASSANDRA和SCYLLA是一樣的

在cqlsh 下HELP指令,就可以看到command的指令有哪些

cql 的指令不分大小寫

3. nodetool

nodetool 是另外一個在CASSANDRA/SCYLLA非常重要的東西,SCYLLA官網也表明SCYLLA 的nodetool是從CASSANDRA fork 出來的工具。

那個nodetool 是做什麼用的呢?很簡單,方便開發者查詢node,以及下node層級使用的工具,這類的需求並不會被歸類在cqlsh裡面。

如下列指令,就是查看目前node目前狀態

$ docker exec -it some-scylla nodetool status

所謂的node 就是叢集(cluster)的節點,在這邊就要介紹一下分散式DB與關聯式DB,想法上天大的不同。

先不要想關聯式DB有做replication,拉出master-slave,就最單純的情況來看,關聯式DB建置通常就一台。

而分散式DB基本上就是多台起手,所以上面在安裝時,才在docker compose 一次掛上了3台SCYLLA,每一台就是一個node,多個node可以配置成一個叢集(cluster)。

所以想當然爾,某一台SCYLLA環境出了狀況,當然是看node的狀況,就不會是cql處理這個層面的問題,因此nodetool 對於管理CASSANDRA/SCYLLA是不可或缺的。

4. 查看配置

如果一邊動手操作的朋友,可能會像我一樣發現實際執行情形,怎麼好像跟官網上寫的執行結果稍微有點出入。

Test Cluster 好像不見了

於是動手查證一下,關於cluster設定的位置,上面寫著放在機器內的位置 /etc/scylla/scylla.yaml

進到機器裡面,的確有這個yaml檔案,查看一下,應該只是被註解名稱而已。

雖然在cql裡面,下指令describe cluster沒有找到cluster名稱。

參考官網的docker使用範例,找到兩個可以驗證的指令。

一個是在cql下撈取cluster名稱,這點跟關聯式DB的概念雷同,DB的資料庫、資料表名稱等等,其實是可以select抓來看的,如下圖有個1 row的結果。

SELECT cluster_name FROM system.local;

一個就是使用nodetool,用nodetool 查看cluster的描述訊息。

$ docker exec -it some-scylla nodetool describecluster



在開始真正玩SCYLLA 語法與資料操作之前,筆者接下來幾篇,先著重介紹架構與概念的部分。

會選擇NoSQL作為DB使用,一定是希望應用場景,在使用NoSQL DB能夠發揮更好的效益。

工作實務上無端把關聯式DB丟到一邊好好的不用,到頭來只是自討苦吃而已。

小小提醒一下,不要因為興趣或著覺得很潮,而把會正式上線的系統沒有理由地,直接選用NoSQL作為DB。

最好要經過評估,了解優缺點後再決定使用。


上一篇
Day2. SCYLLA介紹
下一篇
Day4. 淺談分散式DB概念
系列文
scylla 從零開始攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言