Apache Cassandra (база данных NOSQL)
В этой статье мы изучим основы Apache Cassandra и основы операций CQL (Cassandra Query Language), таких как создание, вставка, удаление, выбор и т. Д.
Apache Cassandra:
Apache Cassandra - это база данных с открытым исходным кодом без SQL, которая используется для обработки больших данных. Apache Cassandra может обрабатывать структуру, полуструктуру и неструктурированные данные. Apache Cassandra был первоначально разработан в Facebook, после этого был открыт исходный код в 2008 году, и после этого он стал одним из проектов Apache верхнего уровня в 2010 году.
Рисунок 1.Кольцевая архитектура Cassandra без мастеров
Apache Cassandra - это масштабируемая распределенная база данных, которая строго следует принципу теоремы CAP (доступность согласованности и устойчивость к разделам).
Рисунок 2: Теорема CAP
В Apache Cassandra нет архитектуры мастер-клиент. Он имеет одноранговую архитектуру. В Apache Cassandra мы можем создать несколько копий данных во время создания пространства ключей. мы можем просто определить стратегию репликации и RF (коэффициент репликации) для создания нескольких копий данных.
Пример:
CREATE KEYSPACE Пример С репликацией = {'class': 'NetworkTopologyStrategy', 'коэффициент_репликации': '3'};
В этом примере мы определяем RF (коэффициент репликации) равным 3, что просто означает, что мы создаем здесь 3 копии данных на нескольких узлах по часовой стрелке.
Рисунок-3: RF = 3
cqlsh: оболочка CQL
cqlsh - это оболочка командной строки для взаимодействия с Cassandra через CQL (язык запросов Cassandra).
CQL-запрос для базовой операции:
Шаг 1: Для создания пространства ключей используется следующий запрос CQL.
СОЗДАТЬ КЛЮЧЕВОЕ ПРОСТРАНСТВО Emp С репликацией = {'class': 'SimpleStrategy', 'коэффициент_репликации': '1'};
Шаг 2: CQL-запрос для использования пространства ключей
Синтаксис: ИСПОЛЬЗОВАТЬ имя-пространства ключей USE Emp;
Шаг 3: Для создания таблицы используется следующий CQL-запрос.
Пример: СОЗДАТЬ ТАБЛИЦУ Emp_table ( имя текст ПЕРВИЧНЫЙ КЛЮЧ, Emp_id int, Текст emp_city, Emp_email текст, );
Шаг 4: Для вставки в Emp_table используется следующий запрос CQL.
Вставить в Emp_table (имя, Emp_id, Emp_city, Emp_email) ЦЕННОСТИ ('ashish', 1001, 'Delhi', 'ashish05.rana05@gmail.com'); Вставить в Emp_table (имя, Emp_id, Emp_city, Emp_email) ЦЕННОСТИ («Ашиш Гупта», 1001, «Бангалор», «ashish@gmail.com»); Вставить в Emp_table (имя, Emp_id, Emp_city, Emp_email) ЗНАЧЕНИЯ ('amit', 1002, 'noida', 'abc@gmail.com'); Вставить в Emp_table (имя, Emp_id, Emp_city, Emp_email) ЗНАЧЕНИЯ ('dhruv', 1003, 'pune', 'xyz@gmail.com'); Вставить в Emp_table (имя, Emp_id, Emp_city, Emp_email) ЦЕННОСТИ ('шиванг', 1004, 'мумбаи', 'test@gmail.com'); Вставить в Emp_table (имя, Emp_id, Emp_city, Emp_email) ЗНАЧЕНИЯ ('aayush', 1005, 'gurugram', 'cass_write@gmail.com'); Вставить в Emp_table (имя, Emp_id, Emp_city, Emp_email) ЦЕННОСТИ ('bhagyesh', 1006, 'chandigar', 'welcome@gmail.com');
Шаг 5: Для чтения данных используется следующий запрос CQl.
ВЫБРАТЬ * ИЗ Emp_table;