Что такое магазин с широкой колонной? - PullRequest
1 голос
/ 25 мая 2020

Поиск в Google определения либо возвращает результаты для БД, ориентированной на столбцы, либо дает очень расплывчатые определения.

Насколько я понимаю, хранилища широких столбцов состоят из семейств столбцов, которые состоят из строк и столбцов. Каждая строка в указанном семействе хранится вместе на диске. Это похоже на то, как строковые базы данных хранят свои данные. Это подводит меня к моему первому вопросу:

Чем отличается хранилище широких столбцов от обычной реляционной таблицы БД? Я вижу это так:

* column family        -> table
* column family column -> table column
* column family row    -> table row

Это изображение из Database Internals просто выглядит как две обычные таблицы:

Two column families, contents, and anchors

У меня есть предположение о том, что отличается от тот факт, что "многомерная карта" упоминается рядом с широкими колоночными хранилищами. Итак, вот мой второй вопрос:

Сортированы ли хранилища широких столбцов слева направо? Это означает, что в приведенном выше примере строки отсортированы сначала по Row Key, а затем по Timestamp и, наконец, Qualifier?

1 Ответ

3 голосов
/ 26 мая 2020

Давайте начнем с определения базы данных с широкими столбцами.

Его архитектура использует (а) постоянную разреженную матрицу, многомерное сопоставление (значение строки, столбец -value и timestamp) в табличном формате, предназначенном для массовой масштабируемости (сверх петабайтной шкалы).

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

База данных с широкими столбцами - это один из типов базы данных № SQL.

Возможно, это лучший образ четырех баз данных с широкими столбцами .

Wide column databases

Насколько я понимаю, первое изображение вверху, модель столбца, это то, что мы назвали сущностью / атрибутом / значением. стол. Это таблица атрибутов / значений в определенной сущности (столбце).

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

Customer ID    Attribute    Value
-----------    ---------    ---------------
     100001    name         John Smith
     100001    address 1    10 Victory Lane
     100001    address 3    Pittsburgh, PA  15120

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

Customer ID    Attribute    Value
-----------    ---------    ---------------
     100001    fav color    blue
     100001    fav shirt    golf shirt

Любой атрибут, который может придумать маркетолог, может быть захвачен и сохранен в таблице атрибут / значение. У разных клиентов могут быть разные атрибуты.

Модель надстолбца хранит одну и ту же информацию в другом формате.

Customer ID: 100001
Attribute    Value
---------    --------------
fav color    blue
fav shirt    golf shirt

Вы можете иметь столько моделей надстолбцов, сколько сущностей. Они могут быть в отдельных таблицах № SQL или собраны вместе в семейство суперстолбцов.

Семейство столбцов и семейство суперстолбцов просто присваивает идентификатор строки первым двум моделям на картинке для более быстрого поиска информации .

...