Зачем нам нужны семейства столбцов в Hbase?

В чем причина наличия семейств столбцов? Пример:

Сценарий 1:

Table Row-Key ColumnFamily1 ColumnFamily2 ColumnFamily3

Сценарий 2:

Table1 Row-Key Column1...ColumnN
Table2 Row-Key Column1...ColumnN
Table3 Row-Key Column1...ColumnN

В сценарии 1, хотя в таблице может быть много семейств столбцов, все семейства столбцов хранятся отдельно. Тогда зачем вообще существует концепция семейств столбцов? Почему не может быть просто сценария 2? Опять же, в сценарии 2 я не блокирую никакие функции, предоставляемые HBase. Вы все еще можете добавить динамические столбцы позже (и другие функции).

Меня беспокоит только то, что если семейства столбцов хранятся отдельно, то почему они находятся в одной таблице? Меня интересует только то, какова цель создания семейств столбцов (и какую проблему они решают)?


person Community    schedule 21.11.2020    source источник


Ответы (1)


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

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

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

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

person DMH    schedule 23.11.2020