Cassandra創建鍵空間(Keyspace)

Cassandra查詢語言(CQL)可幫助開發人員與Cassandra溝通交互。 Cassandra查詢語言的語法與SQL非常相似。

什麼是鍵空間(Keyspace)?

鍵空間(Keyspace)是用於保存列族,用戶定義類型的對象。 鍵空間(Keyspace)就像RDBMS中的數據庫,其中包含列族,索引,用戶定義類型,數據中心意識,鍵空間(Keyspace)中使用的策略,複製因子等。

在Cassandra中,「Create Keyspace」命令用於創建keyspace。

語法:

CREATE KEYSPACE <identifier> WITH <properties>

或者 -

Create keyspace KeyspaceName with replicaton={'class':strategy name,   
'replication_factor': No of replications on different nodes}

Cassandra Keyspace的不同組件

策略:Cassandra語法中有兩種類型的策略聲明:

  • 簡單策略:在一個數據中心的情況下使用簡單的策略。 在這個策略中,第一個副本被放置在所選擇的節點上,剩下的節點被放置在環的順時針方向,而不考慮機架或節點的位置。
  • 網絡拓撲策略:該策略用於多個數據中心。 在此策略中,您必須分別爲每個數據中心提供複製因子。

複製因子:複製因子是放置在不同節點上的數據的副本數。 超過兩個複製因子是很好的獲得沒有單點故障。 所以3個以上是很好的複製因子。

實例:

讓我們舉個例子來演示如何創建一個名爲「yiibai_ks」的鍵空間。

CREATE KEYSPACE yiibai_ks WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};

執行結果如下所示 -

cqlsh> CREATE KEYSPACE yiibai_ks
   ... WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3}; 
cqlsh>
cqlsh> CREATE KEYSPACE yiibai_ks WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};
AlreadyExists: Keyspace 'yiibai_ks' already exists
cqlsh>

驗證:

要檢查鍵空間是否創建,請使用「DESCRIBE」命令。 通過使用此命令可以看到創建的所有鍵空間。

cqlsh> DESCRIBE yiibai_ks;

CREATE KEYSPACE yiibai_ks WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'}  AND durable_writes = true;

cqlsh>

查看所有的鍵空間,可使用以下命令 -

cqlsh> DESCRIBE keyspaces

system_schema  system_auth  system  yiibai_ks  system_distributed  system_traces

cqlsh>

Durable_writes屬性

默認情況下,表的durable_writes屬性設置爲true,您也可以將此屬性設置爲false。 但是,這個屬性不能設置爲單機策略。

示例:

讓我們舉個例子來看看durable_write屬性的用法。

CREATE KEYSPACE yiibai_ks1  
WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 }  
 AND DURABLE_WRITES = false;

如下圖中所示 -
Cassandra創建鍵空間(Keyspace)

驗證:

要檢查鍵空間是否創建,請使用「DESCRIBE」命令。 通過使用此命令可以看到創建的所有鍵空間。

Cassandra創建鍵空間(Keyspace)

使用鍵空間

要使用創建的鍵空間,可使用USE命令。

語法:

USE <identifier>

這裏,我們使用的是名稱爲 yiibai_ks 的鍵空間(keyspace)。如下圖所示 -
Cassandra創建鍵空間(Keyspace)