Pull to refresh

Comments 11

Начало более длинной статьи, оборванное на середине постановки задачи. Было бы неплохо дописать до конца. Тема-то актуальная!

Что-то мне подсказывает что Wide-Column-базы это частный случай базы "ключ-значение" где просто к ключу можно добавить суффикс с названием колонки.

По сути так и есть Wide-Column - частный случай Key-Value. Причём многие почему-то рассматривают ключи как какой-то один идентификатор, хотя ключи также как и значения могут иметь структуру. @keich ниже привёл примеры и оставил ссылку на статью в этом же блоге.

Собственно иногда от Key-Value даже остаётся только Key (какое-нибудь дерево B/R/LSM), в котором есть как техническая информация для сканирования, так и само значение (например, различные индексы, графы в триплетах и т.д.).

Собственно таже Amazon DynamoDB база Key-Value, при работе с которой внешне может быть даже похоже на Wide-Column/Document Oriented.

Есть стандартные способы хранения данных в key-value и они все(не уверен) перечислены в  статье https://habr.com/ru/company/vk/blog/480850/

1)      Если не нужен поиск по содержимому данных и получение частичных данных, то структура ключа как обычно.

Key1 | {Field1:Val1,Field2:Val2}

2)      Если нужно получения только части данных. Естественно база должна уметь scan с первого совпадения части ключа.

Key1.Filed1 | {Val1}

Key1.Filed2 | {Val2}

3)      Если нужен поиск по содержимому

Key1.Field1.Val1|NULL

Key1.Field2.Val2|NULL

Справедливости ради, «документо-ориентированные» БД также решают все перечисленные проблемы.

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

Троллинг зачётный. Но у реляционных баз другая проблема - они не очень горизонтально масштабируются. Всё-таки Yugabyte и Cockroach - пока экзотика, и имхо вряд ли из этого статуса когда-нибудь выйдут.

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

Redis Hashes решает эту задачу не выходя за принцип базы "ключ-значением".

Все зависит от задачи:
если надо найти одну строку и в ней что то поискать
- Ключ значение вполне подойдет
если надо найти по атрибуту все строки
- Wide-Column

Те кто пробуют искать что то внутри полей json ....
ну такое на любителя.....

потому что у колонок есть фишки которых нет в Key Value
- Тип данных
- Статистика по колонке
- Индексы


Возвращает целое значение

Кажется, не очень удачная формулировка: можно подумать, что речь идет о целочисленном значении.

Sign up to leave a comment.