Будет ли сканирование HBase работать лучше с несколькими семействами столбцов или с одним семейством столбцов?

#mapreduce #hbase

#mapreduce #hbase

Вопрос:

Я хотел бы сохранить объект (полезную нагрузку) вместе с некоторыми метаданными в HBase.

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

Например, допустим, у меня есть следующие квалификаторы столбцов

  • P: Полезная нагрузка (больше, чем M1 M2).
  • M1: метаданные 1
  • M2: метаданные 2

Затем я бы выполнил запрос, такой как:

  • Извлеките всю полезную нагрузку, где M1 = ‘search-key1’ amp;amp; M2 = ‘search-key2’

Имеет ли смысл:

  1. хранить M1 и M2 в одном семействе столбцов, а P — в другом семействе столбцов? Будет ли сканирование быстрее?
  2. Сохранить все 3 столбца в одном семействе столбцов?

Обычно я бы сделал спайк (возможно, мне все еще понадобится) — я думал, что сначала спрошу.

Ответ №1:

Я бы попытался последовать совету, приведенному в ссылке на HBase, и выбрать вариант № 2 (сохранить все 3 столбца в одном семействе столбцов):

Попробуйте обойтись одним семейством столбцов, если сможете, в своих схемах. Вводите второе и третье семейства столбцов только в том случае, когда доступ к данным обычно ограничен областью столбцов; т. Е. Вы запрашиваете одно семейство столбцов или другое, но обычно не оба одновременно.