В чем проблема с базами данных «ключ-значение» и как ее решают Wide-column-хранилища

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


Базы данных «ключ-значение» великолепные — ультрабыстрые, простые, почти линейно масштабируемые по количеству узлов. Но с ними все не так просто. Команда VK Cloud Solutions перевела статью о том, какие у таких баз есть проблемы и как их решить с помощью Wide-column-хранилищ.

Проблемы с базами данных «ключ-значение»


Основная концепция базы данных «ключ-значение» в том, что сами значения ее не беспокоят. Ее работа основана на некоторых допущениях, например, как у Redis, но на структуру данных она вообще не обращает внимания. Из-за этого могут возникнуть три проблемы.

1. База не может фильтровать поля атрибутов. Ведь с ее точки зрения значение — это большой блок двоичных данных.

2. Возвращает целое значение. Если это не кажется проблемой, то вспомните, что главное преимущество баз «ключ-значение» — скорость. Посмотрите на процесс извлечения данных из базы:



Производительность большинства этапов зависит от размера передаваемых данных, а не от них самих. Именно поэтому команда  SELECT * говорит о том, что человек ничего не смыслит в производительности.

3. Значение можно обновить только целиком. Из-за этого нам приходится:

  • выводить клиенту полные данные;
  • работать с данными целиком;
  • отправлять в базу данные целиком.

Это звучит даже хорошо, ведь мы обновляем объект целиком, разве нет? Но подумайте о вариантах, когда нужно:

  • обновить дату последнего входа пользователя в систему;
  • прикрепить элемент к списку (например, в корзине интернет-магазина);
  • заменить цены на некоторые товары по акции.

Как решить эти задачи и не потерять в скорости?

Wide-column-базы данных


В основе такой базы лежит простой принцип работы: давайте снова структурировать данные (то есть их значения) в пары «ключ-значение». Вот что у нас есть в базах «ключ-значение»:



А вот как представляют данные Wide-Column-базы:



Столбцы позволяют определять подмножество данных, которое нужно вывести клиенту или обновить. В чем здесь отличие от обычной таблицы реляционной базы данных? В большинстве Wide-column-баз столбцы определяются на уровне одного элемента. Здесь нет схемы на уровне всей БД, что наводит на мысль о некоторых интересных характеристиках Wide-column-баз.

Преимущества Wide-column-баз данных


У Wide-column-баз данных в основном те же плюшки, что и у баз «ключ-значение». Но есть и дополнительные преимущества, пускай они заметны и не в каждой реализации:

  • частичные операции. Можно добавить или обновить значение столбца;
  • сжатие данных. При работе с разреженными данными не нужно хранить пустые значения или null. Можно сэкономить обычно зарезервированное место, так как значения определяет схема;
  • предложение WHERE. Эта функция редко встречается в базах этого типа, но появляется фильтрация данных.

Команда VK Cloud Solutions развивает собственные Big-Data-решения. Будем признательны, если вы их протестируете и дадите обратную связь. Для тестирования пользователям при регистрации начисляем 3000 бонусных рублей.

Что еще почитать:

  • Hudi, Iceberg и Delta Lake: сравнение табличных форматов для озера данных
  • Как начать работать с библиотекой для машинного обучения Metaflow
  • Как дата-сайентистам эффективно сотрудничать с дата-инженерами
Источник: https://habr.com/ru/company/vk/blog/675556/


Интересные статьи

Интересные статьи

Драфт этой статьи был написан почти два месяца назад. Затем я заболел ковидом, а потом долго восстанавливал свои когнитивные способности, изгоняя из себя древесину.Предполагаю, что многие из нас видел...
A survey of data quality tools (2005) Достаточно часто каждый аналитик сталкивается с ситуацией, когда загрузил данные в блок анализа, а в ответ – тишина, хотя в тестовом режиме все ...
Всем привет. Когда я искал информацию о журналировании (аудите событий) в Bitrix, на Хабре не было ни чего, в остальном рунете кое что было, но кто же там найдёт? Для пополнения базы знаний...
Пост-призер новогоднего NUCо-конкурса Intel. Возникла необходимость создания портативного приемопередатчика, предназначенного для цифровой обработки и формирования ВЧ сигналов в реальном времени...
Сейчас многие и очень многие люди (обычно их называют аналитиками, но в целом это может быть какая угодно специальность) готовят различные красивые таблицы и графики, на основании которых в иде...