supposer que je ce tableau RDBM (Entity-attribute-value_model):comment concevoir le schéma Hbase?
col1: entityID
col2: attributeName
col3: value
et je veux utiliser HBase en raison de problèmes d'échelle.
Je sais que la seule façon d'accéder à la table Hbase est d'utiliser une clé primaire (curseur). Vous pouvez obtenir un curseur pour une clé spécifique et parcourir les lignes une à une.
Le problème est que, dans mon cas, je veux pouvoir itérer sur les 3 colonnes. par exemple:
- pour un donné un entityID je veux obtenir tous ses attriutes et les valeurs
- pour donner attributeName et de la valeur que je veux tous les entitiIDS ...
si une idée que j'ai eu est de construire une table Hbase qui contiendra les données (table DATA, avec entityID comme index primaire), et 2 tables "index" une avec attributeName comme clé primaire, et l'autre avec valeur
chaque onglet d'index le tiendra une liste de pointeurs (entityIDs) pour la table DATA.
Est-ce une approche raisonnable? ou est un abus des concepts Hbase?
Dans ce blog le author disent:
HBase permet obtenir des opérations de clé primaire et des analyses (pensez: curseur) sur la ligne plages. (Si vous avez à la fois l'échelle et besoin d'indices secondaires, ne vous inquiétez pas - Lucene à la rescousse Mais c'est un autre poste!.)
Savez-vous comment Lucene peut vous aider?
- Yonatan