2015-10-27 4 views

ответ

1

Да, это возможно. Вы можете представить модель данных HBase как несколько вложенных карт. Map<RowKey, Map<ColumnFamilyKey, <Map<ColumnKey, <Map<Version, Value>>>>. Все kyes, как значение, имеют массивы типа байтов, кроме версии, которая должна быть длинной (64-битное целое число). Число и значения Column Families должны быть предварительно определены для таблицы и не должны превышать 3-4 из-за проблемы с производительностью. Из этого вы имеете два варианта для хранения значений кратных строк: в разных столбцах или в одном столбце с разными версиями. Версия должна быть длинной.

+0

Благодарим вас за этот подход. Возможно, конкатенация ценностей - лучшее решение для моей задачи. Или я могу сохранить массив значений? –

+1

Массив значений не очень удобен, чтобы добавить элемент, вы должны его прочитать и изменить, а затем сохранить новую версию. Когда у вас будет несколько значений в массивах, производительность будет страдать, потому что количество данных, которые будут переданы, будет превышено в несколько раз больше одного элемента. –

+1

Вы можете указать версию или по умолчанию это будет временная метка java. –

Смежные вопросы