Cassandra Пример создания, изменения и очистки таблицы CQL.
⚡ Умное резюме
Cassandra Операции с таблицами включают создание, изменение и удаление.pingа также обрезка семейств столбцов с помощью CQL. На этой странице объясняется каждая команда, три формы первичного ключа, определяющие распределение данных, и различия между удалением строк и удалением таблицы.

Синтаксис Cassandra Язык запросов (CQL) похож на SQL язык.
Как создать таблицу в Cassandra
Семейство колонн в Cassandra аналогична таблице РСУБД. Семейство столбцов используется для хранения данных.
Команда «Создать таблицу» используется для создания семейства столбцов в Cassandra.
Синтаксис
CREATE TABLE KeyspaceName.TableName ( ColumnName DataType, ColumnName DataType, ColumnName DataType, PRIMARY KEY (ColumnName) ) WITH PropertyName = PropertyValue;
1. Первичный ключ: Есть два типа первичный ключ.
- Единый первичный ключ: Одиночный первичный ключ определяется следующим синтаксисом.
Синтаксис
PRIMARY KEY (ColumnName)
В единственном первичном ключе имеется только один столбец. Этот столбец также называется ключом разделения. Данные секционируются на основе этого столбца. Данные распределяются по разным узлам на основе ключа раздела.
2. Составной первичный ключ: Составной первичный ключ задается следующим синтаксисом.
Синтаксис
PRIMARY KEY (ColumnName1, ColumnName2, ...)
В приведенном выше синтаксисе ColumnName1 — это ключ разделения, а ColumnName2 — это Clustering key. Данные будут разделены на основе ColumnName1, а данные будут кластеризованы на основе ColumnName2. Clustering — это процесс сортировки данных в разделе.
3. Ключ составного разделения: Составной ключ разделения определяется следующим синтаксисом.
Синтаксис
PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)
В приведенном выше синтаксисе ColumnName1 и ColumnName2 являются составными ключами секционирования. Данные будут секционированы на основе обоих столбцов ColumnName1 и ColumnName2, а кластеризация данных будет производиться на основе ColumnName3. Если данных в одной секции слишком много, используется составной ключ секционирования. Составной ключ секционирования используется для создания нескольких секций для данных.
- С пунктом
«Предложение With» используется для указания любого свойства и его значения для определенной таблицы. Например, если вы хотите сжать Cassandra Данные таблицы. Вы можете задать свойство сжатия, указав значение свойства алгоритма сжатия в предложении «With». Это же предложение также задает параметр CLUSTERING ORDER BY, который изменяет направление сортировки столбца кластеризации на обратное, и параметр default_time_to_live, который автоматически удаляет каждую строку.
Пример
Вот выполнение команды «Создать таблицу», которая создаст таблицу с именем «Студент» в пространстве ключей «Университет».
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
После успешного выполнения команды «Создать таблицу» в пространстве ключей «Университет» будет создана таблица «Студент» со столбцами RollNo, Name и dept. RollNo является первичным ключом. RollNo также является ключом раздела, поэтому каждый студент занимает отдельный раздел, состоящий из одной строки.
Cassandra Изменить таблицу
Команда «Изменить таблицу» используется для удаления столбца, добавления нового столбца, изменения имени столбца, изменения типа столбца и изменения свойства таблицы.
Синтаксис
Ниже приведен синтаксис команды «Изменить таблицу».
ALTER TABLE KeyspaceName.TableName ADD ColumnName ColumnDataType; ALTER TABLE KeyspaceName.TableName DROP ColumnName; ALTER TABLE KeyspaceName.TableName RENAME ColumnName TO NewColumnName; ALTER TABLE KeyspaceName.TableName WITH PropertyName = PropertyValue;
Каждая форма выдается в виде отдельного заявления. В настоящее время действуют два ограничения. Cassandra В новых версиях: тип данных существующего столбца больше нельзя изменить, а команда RENAME работает только со столбцом кластеризации первичного ключа.
Пример
Вот снимок команды «Изменить таблицу», которая добавит новый столбец в таблицу «Студент».
ALTER TABLE University.Student ADD Semester int;
После успешного выполнения команды «Изменить таблицу» в таблицу «Студент» будет добавлен новый столбец «Семестр» с типом данных «int».
Вот снимок экрана, на котором показана обновленная таблица учеников.
Cassandra Удалить таблицу
Команда 'Drop table' удаляет указанную таблицу, включая все данные из пространства ключей. Перед удалением...ping стол, Cassandra в качестве резервной копии делает снимок данных, а не схемы.
Синтаксис
DROP TABLE IF EXISTS KeyspaceName.TableName;
Пример
Вот снимок выполненной команды «Удалить таблицу», которая удаляет таблицу «Студент» из пространства ключей «Университет».
DROP TABLE University.Student;
После успешного выполнения команды «Drop Table» таблица Student будет удалена из пространства ключей University.
Вот снимок, на котором показана ошибка, возвращаемая Cassandra при попытке доступа к несуществующей таблице учеников.
Cassandra Усечь таблицу
Команда «Обрезать таблицу» удаляет все данные из указанной таблицы. Прежде чем сокращать данные, Cassandra принимает снимок данных в качестве резервной копии.
Синтаксис
TRUNCATE KeyspaceName.TableName;
Пример
В таблице Student есть три записи. Это записи в таблице.
Вот снимок выполненной команды «Обрезать таблицу», которая удалит все данные из таблицы Student.
После успешного выполнения команды «Обрезать таблицу» все данные из таблицы Student будут удалены.
Вот снимок состояния базы данных, где в таблице Student нет записей.
Для выполнения команды Truncate необходимо, чтобы все узлы были доступны, поскольку она выполняется одновременно по всему кластеру. Если какой-либо узел недоступен, выполнение команды завершается с ошибкой, что является преднамеренной мерой предосторожности, предотвращающей оставление неполных данных.
Drop vs Trunate vs Delete в Cassandra
Три команды удаляют данные, а выбор неправильной команды либо разрушает схему, либо приводит к проблемам с производительностью.
| Command | Что оно удаляет | Сохраненная схема | Стоимость |
|---|---|---|---|
| ТАБЛИЦА ПАРАМЕТРОВ | Все строки и определение таблицы | Нет | Недорого. SSTable-файлы создаются в виде снимков, а затем удаляются. |
| ОБРЕЗАТЬ | Все строки | Да | Дешево, но требует запуска всех узлов. Надгробия не создаются. |
| УДАЛИТЬ | Выбранные строки или столбцы | Да | В больших масштабах это дорого. Каждое удаление записывает надгробный камень с надписью «необходимо пропускать до уплотнения». |
На практике следует отдавать предпочтение команде TRUNCATE перед пакетным удалением DELETE при очистке всей таблицы, поскольку тысячи удаленных записей замедлят каждое последующее чтение этого раздела. Удаление на уровне строк рассматривается в разделе... Вставка, обновление и удаление с помощью CQL-запросов учебное пособие.








