предположим, что у меня есть эта таблица RDBM ( Entity-attribute-value_model ):
col1: entityID
col2: attributeName
col3: value
и я хочу использовать HBase из-за проблем с масштабированием.
Я знаю, что единственный способ получить доступ к таблице Hbase - использовать первичный ключ (курсор). Вы можете получить курсор для определенной клавиши и последовательно перебирать строки.
Проблема в том, что в моем случае я хочу иметь возможность повторять все 3 столбца.
например:
- для данного entityID, я хочу получить все его атрибуты и значения
- для данного атрибута name и значения, которое я хочу для всех прав
...
поэтому у меня была одна идея - создать одну таблицу Hbase, в которой будут храниться данные (таблица DATA с entityID в качестве первичного индекса), и две таблицы «index», одна из которых attributeName является первичным ключом, а другая - со значением
каждая таблица индексов будет содержать список указателей (entityID) для таблицы DATA.
Это разумный подход? или это «злоупотребление» понятиями Hbase?
В этом блоге авторе говорят:
HBase позволяет получать операции по основным
ключ и сканирует (думаю: курсор) над строкой
диапазоны. (Если у вас есть и масштаб, и
не нужны вторичные индексы, не волнуйтесь
- Люсьен на помощь! Но это другой пост.)
Вы знаете, как может помочь Lucene?
- Йонатан