Строки с одинаковыми ключами


Когда мне нужно создать строку HBase, я должен вызвать метод Put(row_key). Тогда что произойдет, если я снова вызову метод Put() с тем же значением row_key? Будет ли обновлена существующая строка или HBase создаст новую строку?

Можно ли создать 2 строки с одинаковыми ключами?

4 3

4 ответа:

Row-ключи используются для однозначной идентификации строки в Hbase. Если вы хотите, чтобы две строки имели одинаковые ключи, то вы что-то упускаете. Пожалуйста, добавьте дополнительную информацию о ваших требованиях или вернитесь к основам архитектуры Hbase

Ваш вопрос также должен включать значения семейства столбцов и квалификатора столбцов. С ключом строки эти три являются уникальным идентификатором значения в таблице hbase.

Также можно включить управление версиями для этого семейства столбцов и иметь несколько значений, которые могут иметь одинаковые значения "ключ строки + семейство столбцов + квалификатор столбцов". В этом случае каждая уникальная версия (значение) определяется "rowkey+ col.fam. +коль.кач. + метка времени "

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

Если вы выпускаете несколько put без указания версии (метки времени), последняя версия KV будет преобладать. Если вы выдадите несколько puts с одной и той же явно установленной меткой времени, одно из этих значений будет возвращено, но HBase не дает никаких гарантий относительно порядка и того, какой KV переживет сжатие (регулярные уборки). Если вы вставляете несколько точек с отрицательными отметками времени, это будет очень плохо. Более ранние версии HBase выдадут непредсказуемые результаты сканирования, в то время как более поздние версии HBase выдадут исключение.

С более новыми версиями Hbase только последняя запись может быть извлечена из запроса say get 'emp' ; по умолчанию версионирование поддерживается на уровне 1 ;но под другой предыдущей версией на там в hfiles и сбрасываются во время сжатия.