Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разница между Hbase и Cassandra.docx
Скачиваний:
6
Добавлен:
12.02.2024
Размер:
29.51 Кб
Скачать

2 Cassandra: определение, структура, особенности

Cassandra — это база данных NoSQL с открытым исходным кодом, нереляционная и в значительной степени распределенная. Такая БД обладает преимуществами как: горизонтальная масштабируемость, распределенная архитектура и гибкость в определении схемы. Cassandra предназначена для хранения больших объемов данных, представленных в виде хэша.

Модель данных Cassandra состоит из следующих элементов:

  • столбец (column) – ячейка с данными, состоящая из 3 частей: имя (column name) в виде массива байтов, метка времени (timestamp) и само значение (value) также в виде байтового массива.

  • строка (row) – наименованная коллекция столбцов;

  • семейство столбцов (column family) – наименованная коллекция строк;

  • пространство ключей (keyspace) – набор из нескольких семейств столбцов, собранных вместе. Пространство ключей логически группирует семейства столбцов и обеспечивает изолированные области имен.

В Cassandra реализовано еще два оператора: сравнитель (comparator), задаваемого для имени столбца и валидатор (validator) для значений и ключей. Сравнитель задает правила для сравнения и упорядочивания байтовых значений, используемых для имен столбцов, в то время как валидатор определяет правила для подтвреждения значений столбцов и ключей.

Для распределения данных по узлам Cassandra используется последовательное хэширование. Каждому элементу данных, такому как имя столбца или ID строки, присваивается хэш-значение ключа с помощью хэш-алгоритма. Диапазон всех возможных хэш-значений т.е. «пространство ключей» служит для равномерного распределения между узлами кластера, где каждый узел отвечает за хранение/управление своими назначенными элементами данных.

Распределенная архитектура позволяет юзерам отправлять запросы на обработку данных на любые серверы кластера. В случае, если запрашиваемая информация хранится на другом узле, запрос будет перенаправлен.

Также есть возможность самостоятельно изменить необходимое количество реплик данных и управлять ими. Cassandra предоставляет возможность самостоятельно настроить уровень согласованности данных для каждой операции чтения и записи.

Cassandra имеет возможность для высокой записи скорости благодаря тому, что большая часть данных хранится в оперативной памяти ответственного узла, и обновления сначала выполняются в памяти, а только потом сохраняются на диск. Транзакции также фиксируются в специальном журнале на диске, чтобы избежать потери информации. Запись в журналы фиксации только добавляется, что исключает задержку при вращении диска. Cassandra может записывать данные в достаточное количество узлов без разрешения конфликтов несоответствия, что позволяет избежать задержек при записи данных.

Cassandra также обладает гибкой масштабируемостью. Кластер может состоять из сотен узлов и обрабатывать петабайты данных.

Отсутствие центрального узла в Cassandra помогает с отказоустойчивости в работе. Каждый узел в кластере Cassandra равноценен и, если один узел выходит из строя, его функции автоматически переносятся на другой узел.