В этой статье мы собираемся обсудить, почему ключи важны и как они работают и отличаются от реляционной базы данных. В основном, ключи используются для группировки и организации данных по столбцам и строкам в базе данных, поэтому давайте посмотрим.
- В Кассандре доступно множество ключей для порционирования .
- Особенности Кассандры
- Обновление набора в Кассандре
- Тип кортежа в Кассандре
- Легкие сделки в Кассандре
- Материализованные взгляды в Кассандре
- Подключение приложений с Cassandra
- Мониторинг кластера в Кассандре
- Введение в Apache Cassandra
- Архитектура Apache Cassandra
- Функция CAST в Кассандре
- Распределение данных в Кассандре
- Агрегатные функции в Кассандре
- Статический тип в Кассандре
- Манипулирование данными в Кассандре
- Пакетная выписка в Кассандре
1. Simple Primary key 2. Composite key 3. Using a compound primary key
Давайте обсудим концепцию разделения ключа по одному.
1. Простой первичный ключ:
В базовом первичном ключе один столбец использует имя столбца в качестве ключа раздела. В этом случае первичный ключ состоит только из ключа раздела. Только первичный ключ может быть указан при извлечении данных из таблицы.
CREATE KEYSPACE Employee WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
USE Employee;
CREATE TABLE Employee_info ( Employee_id UUID PRIMARY KEY, Emp_name text, Emp_domain text );
2. Композитный ключ:
В составном ключе разделения Cassandra мы можем использовать более отсортированную строку с помощью ключа. Давайте рассмотрим пример, чтобы понять. Ниже указано Employee_name, являющееся частью первичного ключа, которое называется составным ключом раздела для таблицы Employee_info.
CREATE TABLE Employee_info ( Employee_id int, Employee_name text, Employee_domain text, Employee_add text PRIMARY KEY ((Emplyee_id, Employee_name), Employee_domain) );
В приведенной выше таблице Employee_id и Employee_name используются для составного ключа раздела. Здесь Employee_domain дополнительный столбец в первичном ключе для возврата отсортированного результата. давайте рассмотрим сценарий, где кластеризация столбца более полезна.
INSERT INTO Employee_info(Employee_id, Employee_name, Employee_domain, Employee_add) VALUES (1, ‘Ashish’, ‘A’, ‘Delhi’); INSERT INTO Employee_info(Employee_id, Employee_name, Employee_domain, Employee_add) VALUES (1, ‘Ashish’, ‘B’, ‘Mumbai’); INSERT INTO Employee_info(Employee_id, Employee_name, Employee_domain, Employee_add ) VALUES (2, ‘Ashish’, ‘C’, ‘Hyd’);
Select * from Employee_info;
Выход:
Employee_id Employee_name Employee_domain Employee_add 1 Ashish A Delhi 1 Ashish B Mumbai 2 Ashish C Hyd
Он показывает с помощью ключевого столбца кластеризации, что мы можем хранить данные в отсортированном виде, что мы на самом деле ожидаем, это точный результат, который мы возвращаем с помощью столбца Employee_domain в отсортированном порядке.
3. Используя составной первичный ключ:
Используйте составной первичный ключ, чтобы создать несколько столбцов, которые можно использовать для запроса и возврата отсортированных результатов.
Давайте возьмем пример таблицы Employee_info, где мы будем нормализовать данные. Чтобы создать таблицу с составным первичным ключом, используйте два или более столбцов в качестве первичного ключа.
Давайте рассмотрим пример, в котором используется дополнительное предложение WITH CLUSTERING ORDER BY, чтобы упорядочить Employee_points в порядке убывания.
CREATE TABLE Employee.Employee_info ( Employee_name text, Employee_points int, Employee_id UUID, PRIMARY KEY (Employee_name, Employee_points) );
Давайте рассмотрим пример, в котором используется дополнительное предложение WITH CLUSTERING ORDER BY, чтобы упорядочить Employee_points в порядке убывания.
CREATE TABLE Employee.Employee_info ( Employee_name text, Employee_points int, Employee_id int, PRIMARY KEY (Employee_name, Employee_points) ) WITH CLUSTERING ORDER BY (Employee_points DESC);
Теперь давайте вставим данные в таблицу Employee_info и использовали для этого следующий CQL-запрос.
INSERT INTO Employee_info (Employee_name, Employee_points, Employee_id) VALUES (‘Ashish’, 90, 1); INSERT INTO Employee_info (Employee_name, Employee_points, Employee_id ) VALUES (‘Rana’, 95, 2); INSERT INTO Employee_info(Employee_name, Employee_points, Employee_id) VALUES (‘Ashish’, 85, 3);
Select * from Employee_info;
Выход:
Employee_name Employee_points Employee_id Rana 95 2 Ashish 90 1 Ashish 85 3
Рекомендуемые посты:
0.00 (0%) 0 votes