Модель данных Cassandra значительно отличается от того, что мы обычно видим в RDBMS. В этой главе представлен обзор того, как Cassandra хранит свои данные.
кластер
База данных Cassandra распространяется на несколько машин, которые работают вместе. Внешний контейнер известен как кластер. Для обработки сбоев каждый узел содержит реплику, а в случае сбоя реплика берет на себя ответственность. Кассандра упорядочивает узлы в кластере в кольцевом формате и присваивает им данные.
пространство ключей
Keyspace — самый внешний контейнер для данных в Cassandra. Основные атрибуты Keyspace в Кассандре:
-
Коэффициент репликации — это количество компьютеров в кластере, которые будут получать копии одних и тех же данных.
-
Стратегия размещения реплик — это не что иное, как стратегия размещения реплик на ринге. У нас есть такие стратегии, как простая стратегия ( стратегия с поддержкой стоек), старая стратегия топологии сети ( стратегия с поддержкой стоек) и стратегия топологии сети ( стратегия с общим центром обработки данных).
-
Семейства столбцов — Keyspace — это контейнер для списка из одного или нескольких семейств столбцов. Семейство столбцов, в свою очередь, является контейнером набора строк. Каждая строка содержит упорядоченные столбцы. Семейства столбцов представляют структуру ваших данных. Каждое пространство ключей имеет по крайней мере одно и часто множество семейств столбцов.
Коэффициент репликации — это количество компьютеров в кластере, которые будут получать копии одних и тех же данных.
Стратегия размещения реплик — это не что иное, как стратегия размещения реплик на ринге. У нас есть такие стратегии, как простая стратегия ( стратегия с поддержкой стоек), старая стратегия топологии сети ( стратегия с поддержкой стоек) и стратегия топологии сети ( стратегия с общим центром обработки данных).
Семейства столбцов — Keyspace — это контейнер для списка из одного или нескольких семейств столбцов. Семейство столбцов, в свою очередь, является контейнером набора строк. Каждая строка содержит упорядоченные столбцы. Семейства столбцов представляют структуру ваших данных. Каждое пространство ключей имеет по крайней мере одно и часто множество семейств столбцов.
Синтаксис создания пространства ключей следующий:
CREATE KEYSPACE Keyspace name WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};
На следующем рисунке показан схематический вид Keyspace.
Семейство колонн
Семейство столбцов — это контейнер для упорядоченного набора строк. Каждая строка, в свою очередь, представляет собой упорядоченную коллекцию столбцов. В следующей таблице перечислены точки, которые отличают семейство столбцов от таблицы реляционных баз данных.
Реляционная таблица | Кассандра колонна Семья |
---|---|
Схема в реляционной модели является фиксированной. Как только мы определим определенные столбцы для таблицы, вставляя данные, в каждой строке все столбцы должны быть заполнены как минимум нулевым значением. | В Кассандре, хотя семейства столбцов определены, столбцы не определены. Вы можете свободно добавлять любой столбец в любое семейство столбцов в любое время. |
Реляционные таблицы определяют только столбцы, и пользователь заполняет таблицу значениями. | В Cassandra таблица содержит столбцы или может быть определена как семейство суперколонок. |
Семейство столбцов Cassandra имеет следующие атрибуты —
-
keys_cached — представляет количество мест для хранения в кеше на SSTable.
-
row_cached — представляет количество строк, все содержимое которых будет кэшироваться в памяти.
-
preload_row_cache — указывает, хотите ли вы предварительно заполнить кеш строк.
keys_cached — представляет количество мест для хранения в кеше на SSTable.
row_cached — представляет количество строк, все содержимое которых будет кэшироваться в памяти.
preload_row_cache — указывает, хотите ли вы предварительно заполнить кеш строк.
Примечание. В отличие от реляционных таблиц, в которых схема семейства столбцов не является фиксированной, Cassandra не заставляет отдельные строки иметь все столбцы.
На следующем рисунке показан пример семейства столбцов Cassandra.
колонка
Столбец — это базовая структура данных Cassandra с тремя значениями: ключом или именем столбца, значением и отметкой времени. Ниже приведена структура столбца.
суперстолбцов
Супер столбец — это специальный столбец, поэтому он также является парой ключ-значение. Но супер столбец хранит карту подколонок.
Обычно семейства столбцов хранятся на диске в отдельных файлах. Поэтому для оптимизации производительности важно сохранить столбцы, которые вы, вероятно, будете запрашивать вместе, в одном семействе столбцов, и здесь может быть полезен супер-столбец. Ниже приведена структура супер-столбца.
Модели данных Cassandra и RDBMS
В следующей таблице перечислены точки, которые отличают модель данных Cassandra от модели СУБД.