Недостатки большего количества семейств столбцов в hbase?
Я читал, что в hbase у меня не должно быть более 2-3 семейств столбцов в таблице. Я знаю, что для извлечения записей из каждого семейства столбцов подряд мне нужно выполнить отдельное сканирование, но я все еще не понимаю, что будет проблемой, если у меня будет больше семейств столбцов.?
В моем случае я хочу сохранить 20 изображений размером около 10 КБ каждое в hbase, имеющих разные размеры (m x n). Так что, как правило, пришел запрос на выборку для конкретного измерения, и мне нужно обслужить это изображение. Поэтому, если я помещу все эти изображения в одноколоночное семейство, все 20 изображений различного измерения будут излишне загружены в память для кэширования (если запрос будет повторен для того же изображения, он наверняка придет для того же измерения). С другой стороны, если я буду хранить 20 семейств столбцов (по одному для каждого измерения), для кэширования будет загружено только необходимое изображение.
1 ответ
Я бы посоветовал попытаться сохранить разные измерения в разных столбцах в пределах одной строки, и всякий раз, когда появляется запрос на конкретное измерение, вы добавляете только необходимый столбец измерения. Поскольку HBase кэширует данные по блокам ( BlockCache), а не по одному значению, будет кэшироваться блок размером 64 КБ (по умолчанию), содержащий необходимые данные.
Имея более 2-3 семейств столбцов на таблицу, вы столкнетесь с некоторыми проблемами производительности, как описано здесь.
Надеюсь, это поможет.