Я новичок в hbase и хочу сохранить несколько значений для ключа строки в hbase. Возможно ли это? Например,hbase хранить несколько значений для одного ключа
RowKey | Values
1212 | 12
1213 | 12, 13, 14
Я новичок в hbase и хочу сохранить несколько значений для ключа строки в hbase. Возможно ли это? Например,hbase хранить несколько значений для одного ключа
RowKey | Values
1212 | 12
1213 | 12, 13, 14
Да, это возможно. Вы можете представить модель данных HBase как несколько вложенных карт. Map<RowKey, Map<ColumnFamilyKey, <Map<ColumnKey, <Map<Version, Value>>>>
. Все kyes, как значение, имеют массивы типа байтов, кроме версии, которая должна быть длинной (64-битное целое число). Число и значения Column Families должны быть предварительно определены для таблицы и не должны превышать 3-4 из-за проблемы с производительностью. Из этого вы имеете два варианта для хранения значений кратных строк: в разных столбцах или в одном столбце с разными версиями. Версия должна быть длинной.
Благодарим вас за этот подход. Возможно, конкатенация ценностей - лучшее решение для моей задачи. Или я могу сохранить массив значений? –
Массив значений не очень удобен, чтобы добавить элемент, вы должны его прочитать и изменить, а затем сохранить новую версию. Когда у вас будет несколько значений в массивах, производительность будет страдать, потому что количество данных, которые будут переданы, будет превышено в несколько раз больше одного элемента. –
Вы можете указать версию или по умолчанию это будет временная метка java. –