Thank you for reading this post, don't forget to subscribe!
Apache Cassandra — это популярное программное обеспечение базы данных NoSQL с открытым исходным кодом. Cassandra обеспечивает высокую доступность при обработке большого объема данных. Обычные реляционные базы данных не могут справиться с линейным масштабированием, бесшовным распределением данных и другими требованиями к большим данным так же эффективно, как Cassandra.
Ряд крупных игроков в онлайн-индустрии используют Apache Cassandra, такие как Netflix, Apple, Uber и eBay.
ШАГ 1: УСТАНОВИТЕ ПАКЕТЫ, НЕОБХОДИМЫЕ ДЛЯ APACHE CASSANDRA
Прежде чем приступить к установке Cassandra в Ubuntu, убедитесь, что вы установили Java OpenJDK 8
и пакет api-transport-https
.
Если у вас уже установлены эти пакеты, вы можете перейти к шагу 2 руководства.
Примечание. В качестве примеров мы использовали Ubuntu 20.04, но инструкции применимы и к другим версиям Ubuntu.
УСТАНОВИТЕ JAVA OPENJDK
Apache Cassandra нуждается в OpenJDK 8 для работы в системе Ubuntu. Сначала обновите репозиторий пакетов:
1 |
sudo apt update |
Когда процесс завершится, установите OpenJDK 8 с помощью следующей команды:
1 |
sudo apt install openjdk-8-jdk -y |
Когда установка завершится, проверьте, успешно ли установлена Java, проверив версию Java:
1 |
java -version |
На выходе должна быть показана версия Java.
Вторая цифра (8)
представляет версию Java.
УСТАНОВИТЕ ПАКЕТ APT-TRANSPORT-HTTPS
Затем установите транспортный пакет APT. Вам необходимо добавить этот пакет в свою систему, чтобы разрешить доступ к репозиториям с использованием HTTPS.
Введите эту команду:
1 |
sudo apt install apt-transport-https |
В приведенном выше примере выделены последние два шага процесса установки apt-transport-https
.
ШАГ 2. ДОБАВЬТЕ РЕПОЗИТОРИЙ APACHE CASSANDRA И ИМПОРТИРУЙТЕ КЛЮЧ GPG
Вам нужно добавить репозиторий Apache Cassandra и получить ключ GPG перед установкой базы данных.
Введите команду ниже, чтобы добавить репозиторий Cassandra в список источников:
1 |
sudo sh -c 'echo "deb http://www.apache.org/dist/cassandra/debian 40x main" > /etc/apt/sources.list.d/cassandra.list' |
Вывод возвращается к новой строке без сообщения.
Последний крупный выпуск Cassandra на момент написания этой статьи — 4.0
. Вот почему мы использовали 40
в команде. Чтобы установить более старую версию, например 3.9
, замените 40x
на 39x
.
Затем используйте команду wget
, чтобы получить открытый ключ по указанному ниже URL-адресу:
1 |
wget -q -O - https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add - |
Если вы правильно ввели команду и URL-адрес, на выходе выводится сообщение «ОК».
Примечание: обратите внимание на регистр букв в URL-адресе выше. Вам нужно ввести правильный регистр и тире в конце команды.
ШАГ 3: УСТАНОВИТЕ APACHE CASSANDRA
Теперь вы готовы установить Cassandra на Ubuntu.
Обновите список пакетов репозитория:
1 |
sudo apt update |
Затем запустите команду установки:
1 |
sudo apt install Cassandra |
В приведенном выше выводе показан последний раздел процедуры установки Cassandra в Ubuntu 20.04. Вывод должен выглядеть аналогично в более старых версиях Ubuntu.
Примечание. После завершения установки служба Cassandra запускается автоматически. Также в процессе создается пользователь cassandra. Этот пользователь используется для запуска службы.
ПРОВЕРКА УСТАНОВКИ APACHE CASSANDRA
Наконец, чтобы убедиться, что процесс установки Cassandra завершился правильно, проверьте состояние кластера:
1 |
nodetool status |
Буквы UN
в выводе сигнализируют о том, что кластер работает.
Вы также можете проверить статус Cassandra, введя:
1 |
sudo systemctl status cassandra |
Выход должен отображаться как active (running)
зеленым цветом.
КОМАНДЫ ДЛЯ ЗАПУСКА, ОСТАНОВКИ И ПЕРЕЗАПУСКА СЛУЖБЫ CASSANDRA
Если по какой-либо причине после установки служба показывается неактивной, вы можете запустить ее вручную.
Используйте следующую команду для запуска Cassandra:
1 |
sudo systemctl start cassandra |
Еще раз проверьте статус услуги. Он должен измениться на активный.
Чтобы перезапустить службу, используйте команду перезапуска:
1 |
sudo systemctl restart cassandra |
Чтобы остановить службу Cassandra, введите:
1 |
sudo systemctl stop cassandra |
Статус отображается как неактивный после использования команды остановки.
АВТОМАТИЧЕСКИ ЗАПУСКАТЬ СЛУЖБУ APACHE CASSANDRA ПРИ ЗАГРУЗКЕ
Когда вы выключаете или перезагружаете систему, служба Cassandra становится неактивной.
Чтобы запустить Cassandra автоматически после загрузки, используйте следующую команду:
1 |
sudo systemctl enable cassandra |
Теперь, если ваша система перезагрузится, служба Cassandra включается автоматически.
ШАГ 4. НАСТРОЙКА APACHE CASSANDRA
Вы можете изменить настройки конфигурации Cassandra в зависимости от ваших требований. Конфигурации по умолчанию достаточно, если вы собираетесь использовать Cassandra на одной ноде. При использовании Cassandra в кластере вы можете настроить основные параметры с помощью файла cassandra.yaml
.
Мы рекомендуем создать резервную копию файла cassandra.yaml
, если вы собираетесь его редактировать. Для этого используйте эту команду:
1 |
sudo cp /etc/cassandra/cassandra.yaml /etc/cassandra/cassandra.yaml.backup |
Мы использовали каталог /etc/cassandra
в качестве места назначения для резервной копии, но вы можете изменить путь по своему усмотрению.
ПЕРЕИМЕНОВАТЬ КЛАСТЕР APACHE CASSANDRA
Используйте текстовый редактор по вашему выбору, чтобы открыть файл cassandra.yaml
(мы будем использовать nano):
1 |
sudo nano /etc/cassandra/cassandra.yaml |
Найдите строку, которая гласит cluster_name:
. Имя по умолчанию — Test Cluster
. Это первое изменение, которое вы хотите сделать, когда начнете работать с Cassandra.
Если вы не хотите вносить дополнительные изменения, выйдите и сохраните файл.
ДОБАВИТЬ IP-АДРЕСА УЗЛОВ CASSANDRA
Еще одна вещь, которую вы должны добавить в cassandra.yaml, если вы используете кластер, — это IP-адрес каждого узла.
Откройте файл конфигурации и в разделе seed _provider
найдите запись seeds
Добавьте IP-адрес каждого узла в вашем кластере. Разделите записи, используя запятую после каждого адреса.
ШАГ 5. ПРОТЕСТИРУЙТЕ ОБОЛОЧКУ КОМАНДНОЙ СТРОКИ CASSANDRA
Программный пакет Cassandra поставляется с инструментом командной строки (CLI). Этот инструмент использует язык запросов Cassandra - CQL для связи.
Чтобы запустить новую оболочку, откройте терминал и введите:
1 2 |
cqlsh |
Загружается оболочка, показывающая подключение к кластеру по умолчанию. Если вы изменили параметр cluster_name
, он покажет тот, который вы определили в файле конфигурации. В приведенном выше примере показано подключение по умолчанию к локальному хосту.
РАБОТА С ТАБЛИЦАМИ В APACHE CASSANDRA
Apache Cassandra — это программное обеспечение распределенной базы данных с открытым исходным кодом для работы с базами данных NoSQL. Это программное обеспечение использует язык запросов Cassandra - CQL в качестве основы для связи. CQL хранит данные в таблицах, организованных в виде набора строк со столбцами, содержащими пары ключ-значение.
Таблицы CQL сгруппированы в контейнеры данных, которые в Cassandra называются пространствами ключей (keyspace). Данные, хранящиеся в одном пространстве ключей, не связаны с другими данными в кластере. Таким образом, вы можете иметь таблицы для разных целей в отдельных пространствах ключей в кластере, и данные не будут совпадать.
ВЫБОР ПРОСТРАНСТВА КЛЮЧЕЙ ДЛЯ ТАБЛИЦЫ CASSANDRA
Прежде чем вы начнете добавлять таблицу, вам нужно определить пространство ключей, в котором вы хотите создать свою таблицу. Есть два варианта сделать это.
ВАРИАНТ 1: КОМАНДА USE
Запустите команду USE
, чтобы выбрать пространство клавиш, к которому будут применяться все ваши команды. Для этого в оболочке cqlsh
введите:
1 |
USE keyspace_name; |
Затем вы можете начать добавлять таблицы.
ВАРИАНТ 2. УКАЖИТЕ ИМЯ ПРОСТРАНСТВА КЛЮЧЕЙ В ЗАПРОСЕ
Второй вариант — указать имя пространства ключей в запросе на создание таблицы. Первая часть команды перед именами столбцов и параметрами выглядит так:
1 |
CREATE TABLE keyspace_name.table_name |
Таким образом, вы сразу же создаете таблицу в заданном пространстве ключей.
БАЗОВЫЙ СИНТАКСИС ДЛЯ СОЗДАНИЯ ТАБЛИЦ CASSANDRA
Создание таблиц с помощью CQL похоже на SQL-запросы. В этом разделе мы покажем вам основной синтаксис для создания таблиц в Cassandra.
Основной синтаксис для создания таблицы выглядит следующим образом:
1 2 3 4 5 6 7 |
CREATE TABLE tableName ( columnName1 dataType, columnName2 dataType, columnName2 datatype PRIMARY KEY (columnName) ); |
При желании вы можете определить дополнительные свойства и значения таблицы, используя WITH
:
1 |
WITH propertyName=propertyValue; |
Например, используйте его, чтобы определить, как хранить данные на диске или использовать ли сжатие.
ТИПЫ ПЕРВИЧНЫХ КЛЮЧЕЙ CASSANDRA
Каждая таблица в Cassandra должна иметь первичный ключ, что делает строку уникальной. С первичными ключами вы определяете, какой узел хранит данные и как он их разделяет.
Существует несколько типов первичных ключей:
- Простой первичный ключ. Содержит только одно имя столбца в качестве ключа секции, чтобы определить, какие узлы будут хранить данные.
- Составной первичный ключ. Использует один ключ разделения и несколько столбцов кластеризации, чтобы определить, где хранить данные и как их сортировать в разделе.
- Составной ключ раздела. В этом случае есть несколько столбцов, которые определяют, где хранить данные. Таким образом, вы можете разбить данные на более мелкие части, чтобы распределить их по нескольким разделам, чтобы избежать горячих точек.
КАК СОЗДАТЬ ТАБЛИЦУ CASSANDRA
В следующих разделах объясняется, как создавать таблицы с различными типами первичных ключей. Сначала выберите пространство ключей, в котором вы хотите создать таблицу. В нашем случае:
1 |
USE businesinfo; |
Каждая таблица содержит столбцы и тип данных Cassandra для каждой записи.
СОЗДАТЬ ТАБЛИЦУ С ПРОСТЫМ ПЕРВИЧНЫМ КЛЮЧОМ
Первый пример — это базовая таблица с поставщиками. Идентификатор уникален для каждого поставщика и будет служить первичным ключом.
CQL-запрос выглядит следующим образом:
1 2 3 4 5 6 7 8 |
CREATE TABLE suppliers ( supp_id int PRIMARY KEY, supp_city text, supp_email text, supp_fee int, supp_name text, supp_phone int ); |
Этот запрос создал таблицу с именем supplier
с supp_id
в качестве первичного ключа для таблицы. Когда вы используете простой первичный ключ с именем столбца в качестве ключа раздела, вы можете поместить его либо в начало запроса (рядом со столбцом, который будет служить первичным ключом), либо в конец, а затем указать имя столбца:
1 2 3 4 5 6 7 8 9 10 |
CREATE TABLE suppliers ( supp_id int, supp_city text, supp_email text, supp_fee int, supp_name text, supp_phone int PRIMARY KEY(supp_id) ); |
Чтобы увидеть, находится ли таблица в пространстве ключей, введите:
1 |
DESCRIBE TABLES; |
В выводе перечислены все таблицы в этом пространстве ключей, а также та, которую вы создали.
Чтобы отобразить содержимое таблиц, введите:
1 |
SELECT * FROM suppliers; |
Вывод показывает все столбцы, определенные при создании таблицы.
Другой способ просмотреть сведения о таблице — использовать DESCRIBE
и указать имя таблицы:
1 |
DESCRIBE suppliers; |
В выходных данных отображаются столбцы и настройки по умолчанию для таблицы.
СОЗДАТЬ ТАБЛИЦУ С СОСТАВНЫМ ПЕРВИЧНЫМ КЛЮЧОМ
Чтобы запросить и получить результаты, отсортированные в определенном порядке, создайте таблицу с составным первичным ключом.
Например, создайте таблицу для поставщиков и всех продуктов, которые они предлагают. Поскольку продукты могут не быть уникальными для каждого поставщика, необходимо добавить один или несколько столбцов кластеризации в первичный ключ, чтобы сделать его уникальным.
Схема таблицы выглядит так:
1 2 3 4 5 6 |
CREATE TABLE suppliers_by_product ( supp_product text, supp_id int, supp_product_quantity text, PRIMARY KEY(supp_product, supp_id) ); |
В этом случае мы использовали supp_product
и supp_id
для создания уникального составного ключа. Здесь первая запись в скобках supp_product
— это ключ раздела. Он определяет, где хранить данные, то есть как система разделяет данные.
Следующая запись — столбец кластеризации, определяющий, как Cassandra сортирует данные, в нашем случае — по supp_id
.
Изображение выше показывает, что таблица была успешно создана. Чтобы проверить детали таблицы, запустите запрос DESCRIBE TABLE
для новой таблицы:
1 |
DESCRIBE TABLE suppliers_by_product; |
Настройки по умолчанию для порядка кластеризации — по возрастанию (ASC). Вы можете перейти на нисходящий (DESC), добавив следующий оператор после первичного ключа:
1 |
WITH CLUSTERING ORDER BY (supp_id DESC); |
Мы указали один столбец кластеризации после ключа раздела. Если вам нужно отсортировать данные с использованием двух столбцов, добавьте еще один столбец в скобки первичного ключа.
СОЗДАНИЕ ТАБЛИЦ С ИСПОЛЬЗОВАНИЕМ СОСТАВНОГО КЛЮЧА РАЗДЕЛА
Создание таблицы с составным ключом раздела полезно, когда на одном узле хранится большой объем данных, и вы хотите разделить нагрузку на несколько узлов.
В этом случае определите первичный ключ с ключом секции, состоящим из нескольких столбцов. Вам нужно использовать двойные скобки. Затем добавьте столбцы кластеризации, как мы делали ранее, чтобы создать уникальный первичный ключ.
1 2 3 4 5 6 7 |
CREATE TABLE suppliers_by_product_type ( supp_product_consume text, supp_product_stock text, supp_id int, supp_name text, PRIMARY KEY((supp_product_consume, supp_product_stock), supp_id) ); |
В приведенном выше примере мы разделили данные на две категории: расходные материалы поставщика и продукты, запасаемые на складе, и распределили данные с помощью составного ключа раздела.
Примечание. При таком разделении каждая категория продуктов хранится на отдельном узле, а не в одном разделе.
Если вместо этого вы используете составной первичный ключ с простым ключом раздела и несколькими столбцами кластеризации, то один узел будет обрабатывать все данные, отсортированные по нескольким столбцам.
УДАЛИТЬ ТАБЛИЦУ В CASSANDRA
Чтобы удалить таблицу в Cassandra, используйте оператор DROP TABLE
. Чтобы выбрать таблицу, которую вы хотите удалить, введите:
1 |
DESCRIBE TABLES; |
Найдите таблицу, которую хотите удалить. Используйте имя таблицы, чтобы удалить ее:
1 |
DROP TABLE suppliers_by_product_type; |
Запустите запрос DESCRIBE TABLES еще раз, чтобы убедиться, что вы успешно удалили таблицу.
ИЗМЕНИТЬ ТАБЛИЦУ В CASSANDRA
Cassandra CQL позволяет добавлять или удалять столбцы из таблицы. Используйте команду ALTER TABLE
, чтобы внести изменения в таблицу.
ДОБАВИТЬ СТОЛБЕЦ В ТАБЛИЦУ
Перед добавлением столбца в таблицу рекомендуется просмотреть содержимое таблицы, чтобы убедиться, что имя столбца еще не существует.
После проверки используйте запрос ALTER TABLE
в этом формате, чтобы добавить столбец:
1 2 3 4 |
ALTER TABLE suppliers_by_product ADD supp_name text; |
Снова используйте DESCRIBE TABLE
, чтобы убедиться, что столбец появился в списке.
УДАЛИТЬ СТОЛБЕЦ ИЗ ТАБЛИЦЫ
Подобно добавлению столбца, вы можете удалить столбец из таблицы. Найдите столбец, который вы хотите удалить, с помощью запроса DESCRIBE TABLES
.
Затем введите:
1 2 3 4 |
ALTER TABLE suppliers_by_product DROP supp_product_quantity; |
Примечание. Не указывайте тип данных для столбца, если вы хотите удалить его из таблицы. Вы получите ошибку “SyntaxException: line 1:48 mismatched input ‘text’ expecting EOF (ALTER TABLE suppliers_by_product DROP supp_name [text]…)”
ОЧИСТИТЬ ТАБЛИЦУ В CASSANDRA
Если вы не хотите удалять всю таблицу, но вам нужно удалить все строки, используйте команду TRUNCATE.
Например, чтобы удалить все строки из таблицы поставщиков, введите:
1 |
TRUNCATE suppliers; |
Чтобы убедиться, что в вашей таблице больше нет строк, используйте оператор SELECT
.
После очистки таблицы изменения становятся постоянными, поэтому будьте осторожны при использовании этого запроса.
СОЗДАТЬ ПРОСТРАНСТВО КЛЮЧЕЙ В APACHE CASSANDRA
Cassandra перешла от концепции главных или именованных узлов к симметричным распределенным узлам P2P. Каждый узел в кластере имеет одно или несколько пространств ключей, содержащих данные.
ЧТО ТАКОЕ ПРОСТРАНСТВО КЛЮЧЕЙ В CASSANDRA?
Пространство ключей (Keyspace) — это контейнер данных в Cassandra, похожий на базу данных в системах управления реляционными базами данных (RDMBS). Кластер имеет одно пространство ключей для каждого приложения, столько, сколько необходимо, в зависимости от требований и использования системы. Пространства ключей — это совершенно отдельные объекты, и данные, которые они содержат, не связаны друг с другом.
В кластере Cassandra пространство ключей — это самый внешний объект, который определяет, как данные реплицируются на узлах. Пространства ключей состоят из основных объектов, называемых семействами столбцов (которые похожи на таблицы в СУБД), строк, индексированных по ключам, типам данных, сведениям о центре обработки данных, коэффициенту репликации и стратегии пространства ключей.
КОМПОНЕНТЫ ПРОСТРАНСТВА КЛЮЧЕЙ CASSANDRA
Есть некоторые важные компоненты пространства ключей, которые необходимо указать при создании пространства ключей. Эти компоненты:
СТРАТЕГИЯ РЕПЛИКАЦИИ
При определении пространства ключей стратегия репликации указывает узлы, на которых будут размещены реплики. Используя несколько узлов для размещения реплик, вы достигаете отказоустойчивости, высокой доступности и надежности.
Возможны две стратегии:
- Простая стратегия. Используйте эту стратегию для сред тестирования и разработки, а также если вы не собираетесь развертывать кластер более чем в одном центре обработки данных. Коэффициент репликации применяется ко всему кластеру. Разделитель решает, где разместить первую реплику на узле. Затем другие реплики распределяются по часовой стрелке на следующих узлах независимо от центра обработки данных или местоположения.
- Стратегия сетевой топологии. Эта стратегия подходит, когда вам нужно развернуть свой кластер в нескольких центрах обработки данных. Однако вы можете использовать его даже с одним центром обработки данных, чтобы впоследствии расширить его. Стратегия сетевой топологии работает как для продакшена, так и для разработки. Она имеет тенденцию размещать реплики на узлах, которые не находятся в одной стойке, чтобы избежать проблем, когда одна стойка выходит из строя. С помощью этого параметра каждый центр обработки данных может иметь отдельный коэффициент репликации.
ФАКТОР РЕПЛИКАЦИИ
Этот параметр определяет, сколько реплик строки хранить на каждом узле.
Минимум должно быть две реплики на центр обработки данных. Это означает, что сбой одного узла не влияет на работу группы репликации. Поэтому рекомендуется установить три копии каждой строки на разных узлах для достижения удовлетворительной отказоустойчивости.
Эмпирическое правило заключается в том, чтобы коэффициент репликации оставался таким же, как и количество узлов.
БАЗОВЫЙ СИНТАКСИС ПРОСТРАНСТВА КЛЮЧЕЙ
Вы можете создать пространство ключей с различными настройками репликации. Ниже приведен основной синтаксис для создания пространства ключей:
1 |
CREATE KEYSPACE keypsace_name WITH replication = {properties}; |
Свойства (properties) включают в себя различные параметры, такие как стратегия репликации, коэффициент или долговременная запись.
Примечание. Команды CQL заканчиваются точкой с запятой (;). Если вы не используете точку с запятой в конце запроса, система будет ждать дополнительного ввода.
СОЗДАТЬ ПРОСТРАНСТВО КЛЮЧЕЙ С ПОМОЩЬЮ CQLSH
Чтобы создать пространство ключей, запустите оболочку CQL:
1 |
cqlsh |
Затем, следуя базовому синтаксису, создайте пространство ключей с нужным именем и настройками репликации.
В этом случае мы создадим test_keyspace
с SimpleStrategy
и replication_factor 3
:
1 2 |
CREATE KEYSPACE test_keyspace WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3}; |
Используйте приведенный выше пример, если вы не собираетесь расширяться до нескольких центров обработки данных. Кроме того, если у вас есть только один узел и вы используете Cassandra для тестирования, вы можете установить replication_factor
равным 1
.
Для производственных сред и нескольких центров обработки данных создайте пространство ключей со стратегией репликации сетевой топологии.
Для этого введите:
1 2 |
CREATE KEYSPACE keyspace_network_topology WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 3}; |
Имя центра обработки данных по умолчанию — datacenter1
. Чтобы проверить имя вашего центра обработки данных, закройте оболочку CQL и используйте nodetool
:
1 |
nodetool status |
Если у вас несколько центров обработки данных, перечислите их все в запросе с соответствующими коэффициентами репликации.
Например, запрос для двух центров обработки данных выглядит так:
1 2 3 |
CREATE KEYSPACE keyspace_network_topology WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 3, 'datacenter2' : 3}; |
ПРОВЕРИТЬ КЛЮЧЕВОЕ ПРОСТРАНСТВО
Поскольку в выводе нет ответа об успешном создании пространства ключей, используйте эту команду, чтобы убедиться, что пространство ключей находится в списке:
1 |
DESCRIBE KEYSPACES; |
Система возвращает список всех доступных пространств ключей Cassandra. Мы выделили два пространства ключей, которые мы создали в приведенных выше примерах. Есть пара пространств ключей по умолчанию, которые поставляются с установкой Cassandra.
ОТКЛЮЧИТЬ УСТОЙЧИВУЮ ЗАПИСЬ (DURABLE WRITES)
В Cassandra конфигурация durable_writes
по умолчанию имеет значение true
. Вы можете отключить его, но только для NetworkTopologyStrategy
. Этот параметр сообщает Cassandra, следует ли ей использовать журнал фиксации для внесения обновлений в выбранное пространство ключей.
Когда вы пытаетесь отключить durable_writes
при создании пространства ключей с помощью SimpleStrategy
, вы получаете предупреждение не делать этого. Причина в том, что вы можете потерять свои данные, если вы не синхронизировали данные из memtable
в sstable
, и ваш дата-центр выйдет из строя.
Чтобы отключить durable_writes
при создании пространства ключей, введите этот запрос:
1 2 3 4 |
CREATE KEYSPACE keyspace_durwrites WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 3} AND DURABLE_WRITES = false; |
ПРОВЕРКА УСТОЙЧИВЫХ ОПЕРАЦИЙ ЗАПИСИ
Вы можете проверить запрос, который использовался при создании пространства ключей, описав пространство ключей. Также появляется часть durable_writes
:
1 |
DESCRIBE keyspace_durwrites |
Чтобы проверить настройки durable_writes
для всех пространств ключей, запросите system_schema
:
1 |
SELECT * FROM system_schema.keyspaces; |
В выходных данных показаны все пространства ключей и их настройки, включая durable_writes
.
ИСПОЛЬЗОВАНИЕ ПРОСТРАНСТВА КЛЮЧЕЙ
Чтобы выбрать пространство ключей в Cassandra и выполнить над ним действия, используйте ключевое слово USE
.
Синтаксис:
1 |
USE keyspace_name |
Например:
1 2 |
USE keyspace_durwrites; |
Оболочка CQL переключается на указанное вами имя пространства ключей. Чтобы изменить текущее пространство ключей, используйте ту же команду с другим именем.
Примечание. Всякий раз, когда вы создаете таблицу в Cassandra, вы начинаете с определения пространства ключей.
ИЗМЕНИТЬ КЛЮЧЕВОЕ ПРОСТРАНСТВО
После создания пространства ключей вы можете изменить конфигурацию с помощью ключевого слова ALTER
.
Единственное, что вы не можете изменить, это имя пространства ключей. Помимо этого, вы можете изменить стратегию репликации, коэффициент репликации и устойчивые записи.
Чтобы изменить пространство ключей, следуйте тому же синтаксису, что и при его создании, но используйте ALTER
вместо CREATE
. Измените значения, которые вы хотите.
Например:
1 2 3 4 |
ALTER KEYSPACE keyspace_durwrites WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 2} AND DURABLE_WRITES = true; |
Чтобы убедиться, что изменения вступили в силу, используйте ключевое слово DESCRIBE
:
На изображении выше показана конфигурация пространства ключей до и после изменения.
УДАЛИТЬ КЛЮЧЕВОЕ ПРОСТРАНСТВО
Если вы отбросите ключевое пространство, оно будет удалено из системы. Ключевое слово DROP
удаляет из пространства ключей все семейства столбцов, а также индексы и типы данных.
Чтобы удалить пространство ключей в Cassandra, используйте этот синтаксис:
1 |
DROP keyspace_name; |
Например:
1 |
DROP keyspace_durwrites; |
Чтобы убедиться, что вы удалили пространство ключей, снова используйте запрос DESCRIBE.