假设我有这个 RDBM 表(Entity-attribute-value_model):
col1: entityID
col2: attributeName
col3: value
由于缩放问题,我想使用 HBase。
我知道访问 Hbase 表的唯一方法是使用主键(光标)。您可以获得特定键的游标,并逐个迭代行。
问题是,就我而言,我希望能够迭代所有 3 列。例如 :
- 对于给定的 entityID,我想获取它的所有属性和值
- 对于给定的属性名称和值,我想要所有的 entitiIDS ...
所以我的一个想法是构建一个 Hbase 表来保存数据(表 DATA,以 entityID 作为主索引),以及 2 个“索引”表,一个以 attributeName 作为主键,另一个以 value
每个索引表都将保存 DATA 表的指针(实体 ID)列表。
这是一个合理的方法吗?或者是 Hbase 概念的“滥用”?
HBase 允许通过主键获取操作并在行范围内扫描(想想:游标)。(如果你有二级索引的规模和需要,别担心 - Lucene 来拯救!但那是另一篇文章。)
您知道 Lucene 如何提供帮助吗?
——约纳坦