suponer que tengo esta tabla RDBM (Entity-attribute-value_model):cómo diseñar el esquema Hbase?
col1: entityID
col2: attributeName
col3: value
y quiero utilizar HBase debido a problemas de escala.
Sé que la única forma de acceder a la tabla Hbase es utilizando una clave principal (cursor). puede obtener un cursor para una clave específica e iterar las filas una a una.
El problema es que, en mi caso, quiero poder iterar en las 3 columnas. por ejemplo:
- para un dado una entityId quiero conseguir todos sus attriutes y valores
- para un attributeName valor de dar y quiero todos los entitiIDS ...
por lo una idea que tuve es construir una tabla Hbase que contenga los datos (tabla DATA, con entityID como índice principal) y 2 tablas "indexadas" una con attributeName como clave principal y la otra con valor
cada pestaña de índice le mantendrá una lista de punteros (entityID) para la tabla DATA.
¿Es un enfoque razonable? o es un 'abuso' de los conceptos de Hbase?
HBase permite obtener operaciones por clave principal y exploraciones (piensa: cursor) sobre la fila rangos. (Si usted tiene ambos escala y necesidad de índices secundarios, no se preocupe - Lucene al rescate Pero eso es otro post!.)
¿Conoce cómo Lucene puede ayudar?
- Yonatan