Что такое Cassandra

Cassandra

колоночная распределенная система управления базами данных (РСУБД) класса NoSQL (Not Only SQL). Рассчитана на работу с большими массивами информации. Написана в Facebook на Java и передана в 2009 году в фонд Apache Software Foundation.

Поддерживаются системы Linux на основе пакетов deb (Debian, Ubuntu) и RPM (Red Hat, CentOS). Для работы Cassandra требуется Java. Сама СУБД устанавливается из репозитория или бинарника, а также, как процесс docker. Скачать последнюю версию можно с официального сайта. На нем же можно ознакомиться с документацией (но только на английском языке).

Cassandra поддерживает свой собственный язык запросов — CQL. Он схож с SQL, но поддерживает только простейшие запросы SELECT. Также в ней нет команды INSERT — вместо нее и для добавления, и для обновления используется UPDATE. Подключение к базе можно выполнить с помощью cqlsh — оболочки, которая идет в комплекте с Cassandra.

Особенности:

  • Нет транзакций.
  • Нет поддержки JOIN в запросах.
  • Нет поддержки логического оператора ИЛИ (OR) в WHERE.
  • При создании вторичного индекса создается новая таблица.
  • При удалении записей, они еще какое-то время остаются в системе.
  • Идемпотентные операции — повторное действие оставляется систему в таком же состоянии.

Cassandra устанавливается в режиме кластера. Узел, на который отправляется запрос считается координатором. Он автоматически отправляет изменения на часть нод кластера (согласно настройки Replication Factor), которые будут называться репликами. Также при попытке сделать выборку, координатор может разбить запрос по разным нодам.

Плюсы:

  1. Высокая скорость работы.
  2. Отказоустойчивость и масштабирование.

Минусы:

  1. Плохо подходит для проектов, где часто меняются или удаляются данные.
  2. Нет транзакций.

Среди других баз класса NoSQL можно выделить:

Подробнее о Cassandra на Википедии.

admin

Share
Published by
admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

3 недели ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

3 недели ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

3 недели ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

3 недели ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

3 недели ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

3 недели ago