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