Эффективное сканирование составного ключа строки в hbase

У меня есть таблица hbase, структурированная следующим образом:

a1:b1
a1:b2
a2:b1
a3:b2

Есть ли способ эффективно проверить, существует ли первая часть ключа строки в таблице hbase? Я не хочу извлекать записи, я просто хочу проверить, существуют ли a1, a2, a3.


person PythonBoi    schedule 11.07.2019    source источник


Ответы (1)


Если вы делаете это через Scan, то вы можете работать только с ключами строк, не загружая какие-либо столбцы, добавив следующие фильтры к вашему Scan:

KeyOnlyFilter

FirstKeyOnlyFilter

Однако, если вы делаете это через get, я думаю, вам нужно будет указать хотя бы один столбец. Если я правильно помню, будет выдано сообщение об ошибке, если вы не добавили ни одного столбца в свой get.

person VS_FF    schedule 11.07.2019
comment
Последние версии клиента HBase содержат метод Get.isCheckExistenceOnly(). - person Lagrang; 11.07.2019
comment
Я относительно новичок в HBase, и я хотел узнать, с чем работать. Мне на самом деле не нужно сканировать мою таблицу и получать записи, мне просто нужно проверить, существует ли в таблице мой частичный ключ строки. Итак, могу ли я использовать get, даже если у меня нет полного ключа строки? - person PythonBoi; 12.07.2019
comment
Я не верю, что get работает с частичными ключами строк (потому что как он точно узнает, ЧТО получить, если, скажем, у вас есть 3 записи с одинаковым началом частичного ключа строки?). Скан сделал бы это хорошо. УБЕДИТЕСЬ, однако, что вы указали начальную строку, потому что в противном случае она будет сканировать всю таблицу до достижения первого совпадения вашего частичного ключа. Если вы укажете начальную строку, она сразу же попадет в нужную точку, и это работает очень хорошо. - person VS_FF; 12.07.2019