Колоночная база данных NoSQL | OTUS
⚡ Открываем подписку на курсы!
Проходите параллельно 3 онлайн-курса в месяц по цене одного.
Подробнее

Курсы

Программирование
Flutter Mobile Developer Подготовка к сертификации Oracle Java Programmer (OCAJP)
-8%
Алгоритмы и структуры данных
-12%
Web-разработчик на Python
-11%
Архитектура и шаблоны проектирования
-14%
JavaScript Developer. Basic Супер-интенсив «СУБД в высоконагруженных системах»
-18%
iOS-разработчик. Базовый курс
-23%
Разработчик на Spring Framework
-23%
Python Developer. Basic
-16%
C# ASP.NET Core разработчик
-18%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Android Developer. Basic
-10%
C++ Developer. Professional Разработчик C# AWS для разработчиков Software Architect Unity Game Developer. Basic Разработчик голосовых ассистентов и чат-ботов Backend-разработка на Kotlin React.js Developer Разработчик Node.js Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Advanced Fullstack JavaScript developer
Инфраструктура
PostgreSQL
-10%
IoT-разработчик
-12%
Administrator Linux. Professional
-11%
Базы данных
-19%
Administrator Linux.Basic
-18%
Супер-интенсив «СУБД в высоконагруженных системах»
-18%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Сетевой инженер AWS для разработчиков Software Architect Reverse-Engineering. Professional CI/CD VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Колоночная база данных NoSQL

Продолжаем разбираться в типах СУБД NoSQL. В этот раз расскажем о колоночной базе данных.

В колоночных БД данные хранятся в ячейках, которые сгруппированы не в строки, а в колонки. Эти колонки логически группируются в соответствующие колоночные семейства, которые могут состоять, по сути, из неограниченного числа колонок (колонки могут создаваться либо во время работы программы, либо во время определения схемы). Запись и чтение осуществляются с применением колонок, а не строк.

Если сравнивать эту базу с хранением данных в строках, как это принято в большинстве реляционных БД, то у хранения в колонках есть свои плюсы. Например, быстрый поиск/доступ и агрегация данных. SQL-базы хранят каждую строку в виде непрерывной записи на диске, то есть различные строки хранятся в различных местах на диске. В случае с колоночной структурой, БД хранят все ячейки, которые относятся к колонке, в виде непрерывной записи — это и делает выполнение операций по поиску и доступу быстрее.

Простой пример: если мы захотим получить список заголовков нескольких миллионов статей, то при использовании SQL-баз это станет весьма трудоёмкой задачей, ведь для извлечения заголовков понадобится проходить по каждой записи. В случае с NoSQL мы сможем получить все заголовки посредством всего одной операции доступа к диску.

Модель данных в колоночных БД:

  1. Колоночное семейство представляет собой структуру, которая может без проблем группировать колонки и суперколонки.
  2. Ключ является постоянным именем записи. Ключи могут иметь различное число колонок, следовательно, БД способна расширяться неравномерно.
  3. Есть термин пространства ключей. Это пространство определяет самый внешний уровень организации, обычно это имя приложения или имя БД.
  4. Колонка характеризуется упорядоченным списком элементов, которые представляют собой кортежи со значениями и именами.

Примеры успешных решений

Наиболее известные примеры колоночных БД — Google BigTable и HBase с Cassandra.

Если говорить о BigTable, то она представляет собой сжатое, проприетарное и высокопроизводительное хранилище данных от Google со следующими атрибутами: • разреженность (какие-нибудь ячейки могут иметь пустое значение); • распределённость (все данные разделяются между множеством узлов); • постоянство (данные хранятся на диске); • многомерность (более одного измерения); • сопоставление — ключ и значение; • отсортированность (как правило, сопоставления не сортируются, но данный случай является исключением).

2-мерная таблица, которая состоит из колонок и строк, является частью реляционной системы БД.

table2_1-1801-a2f3e7.png

Данную таблицу мы можем представить в качестве BigTable-сопоставления следующим образом:

1-1801-9b3afc.png

Внешние ключи «3PillarCluj», «3PillarTimisoara», «3PillarNoida» и «3PillarFairfax» — это аналоги строк. При этом: • «address» и «details» являются колоночными семействами; • в семействе «address» присутствуют колонки «city» и «pincode»; • в семействе «details» присутствуют колонки «projects» и «strength».

Ссылаться на колонки мы можем посредством колоночного семейства.

Источник — «EXPLORING THE DIFFERENT TYPES OF NOSQL DATABASES».

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться