Учебники

Кассандра – Создать пространство ключей

Пространство ключей в Cassandra – это пространство имен, которое определяет репликацию данных на узлах. Кластер содержит одно пространство ключей на узел. Ниже приведен синтаксис для создания пространства ключей с помощью оператора CREATE KEYSPACE .

Синтаксис

CREATE KEYSPACE <identifier> WITH <properties>

т.е.

CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of   replicas’};

CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of  replicas’}

AND durable_writes = ‘Boolean value’;

Оператор CREATE KEYSPACE имеет два свойства: репликация и durable_writes .

копирование

Вариант репликации – указать стратегию размещения реплики и количество требуемых реплик. В следующей таблице перечислены все стратегии размещения реплик.

Название стратегии Описание
Простая стратегия » Указывает простой фактор репликации для кластера.
Стратегия топологии сети Используя эту опцию, вы можете установить коэффициент репликации для каждого датацентра независимо.
Старая стратегия топологии сети Это устаревшая стратегия репликации.

Используя эту опцию, вы можете указать Cassandra, использовать ли commitlog для обновлений в текущем KeySpace. Этот параметр не является обязательным и по умолчанию он имеет значение true.

пример

Ниже приведен пример создания KeySpace.

  • Здесь мы создаем пространство ключей с именем TutorialsPoint .

  • Мы используем первую стратегию размещения реплик, т.е. простую стратегию .

  • И мы выбираем коэффициент репликации до 1 реплики .

Здесь мы создаем пространство ключей с именем TutorialsPoint .

Мы используем первую стратегию размещения реплик, т.е. простую стратегию .

И мы выбираем коэффициент репликации до 1 реплики .

cqlsh.> CREATE KEYSPACE tutorialspoint
WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};

верификация

Вы можете проверить, создана ли таблица или нет, используя команду Describe . Если вы используете эту команду над пространствами клавиш, она отобразит все пространства клавиш, созданные, как показано ниже.

cqlsh> DESCRIBE keyspaces;

tutorialspoint system system_traces 

Здесь вы можете наблюдать недавно созданную точку обучения KeySpace .

Durable_writes

По умолчанию для свойств таблицы durable_writes задано значение true, однако может быть установлено значение false. Вы не можете установить это свойство для симплекс стратегии.

пример

Ниже приведен пример, демонстрирующий использование свойства долговременной записи.

cqlsh> CREATE KEYSPACE test
... WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 }
... AND DURABLE_WRITES = false;

верификация

Вы можете проверить, было ли для свойства durable_writes теста KeySpace установлено значение false, запросив системное пространство ключей. Этот запрос дает вам все KeySpaces вместе с их свойствами.

cqlsh> SELECT * FROM system.schema_keyspaces;

  keyspace_name | durable_writes |                                       strategy_class | strategy_options
----------------+----------------+------------------------------------------------------+----------------------------

           test |          False | org.apache.cassandra.locator.NetworkTopologyStrategy | {"datacenter1" : "3"}

 tutorialspoint |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor" : "4"}

         system |           True |           org.apache.cassandra.locator.LocalStrategy | { }

  system_traces |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor" : "2"}

(4 rows)

Здесь вы можете видеть, что свойство durable_writes теста KeySpace было установлено в false.

Использование пространства ключей

Вы можете использовать созданное KeySpace, используя ключевое слово USE . Его синтаксис выглядит следующим образом –

Syntax:USE <identifier>

пример

В следующем примере мы используем учебную точку KeySpace .

cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>

Создание Keyspace с использованием Java API

Вы можете создать пространство ключей, используя метод execute () класса Session . Следуйте приведенным ниже инструкциям, чтобы создать пространство ключей с помощью Java API.

Шаг 1: Создайте объект кластера

Прежде всего, создайте экземпляр класса Cluster.builder пакета com.datastax.driver.core , как показано ниже.

//Creating Cluster.Builder object

Cluster.Builder builder1 = Cluster.builder();

Добавьте контактную точку (IP-адрес узла), используя метод addContactPoint () объекта Cluster.Builder . Этот метод возвращает Cluster.Builder .

//Adding contact point to the Cluster.Builder object

Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Используя новый объект компоновщика, создайте объект кластера. Для этого у вас есть метод build () в классе Cluster.Builder . Следующий код показывает, как создать объект кластера.

//Building a cluster
Cluster cluster = builder.build();

Вы можете построить кластерный объект в одну строку кода, как показано ниже.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Шаг 2. Создание объекта сеанса

Создайте экземпляр объекта Session, используя метод connect () класса Cluster, как показано ниже.

Session session = cluster.connect( );

Этот метод создает новый сеанс и инициализирует его. Если у вас уже есть пространство ключей, вы можете установить его на существующее, передав этому методу имя пространства ключей в строковом формате, как показано ниже.

Session session = cluster.connect(“ Your keyspace name ” );

Шаг 3: Выполнить запрос

Вы можете выполнять CQL- запросы, используя метод execute () класса Session . Передайте запрос либо в строковом формате, либо в виде объекта класса Statement в метод execute () . Все, что вы передадите этому методу в строковом формате, будет выполнено в cqlsh .

В этом примере мы создаем пространство ключей с именем tp. Мы используем первую стратегию размещения реплик, т. Е. Простую стратегию, и мы выбираем коэффициент репликации для одной реплики.

Вы должны сохранить запрос в строковой переменной и передать его в метод execute (), как показано ниже.

String query = "CREATE KEYSPACE tp WITH replication "
   + "= {'class':'SimpleStrategy', 'replication_factor':1}; ";
session.execute(query);

Шаг 4: Используйте KeySpace

Вы можете использовать созданное KeySpace, используя метод execute (), как показано ниже.

execute(“ USE tp ” );

Ниже приведена полная программа для создания и использования пространства ключей в Cassandra с использованием Java API.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Create_KeySpace {

   public static void main(String args[]){

      //Query
      String query = "CREATE KEYSPACE tp WITH replication "
         + "= {'class':'SimpleStrategy', 'replication_factor':1};";
                    
      //creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
    
      //Creating Session object
      Session session = cluster.connect();
     
      //Executing the query
      session.execute(query);
     
      //using the KeySpace
      session.execute("USE tp");
      System.out.println("Keyspace created"); 
   }
}

Сохраните вышеупомянутую программу с именем класса, за которым следует .java, перейдите к месту, где она была сохранена. Скомпилируйте и выполните программу, как показано ниже.

$javac Create_KeySpace.java
$java Create_KeySpace

При нормальных условиях он выдаст следующий результат: