我想将 HBase 用作存储,我可以在其中推送格式为 {document => {term => weight}}
的几百万个条目,例如“将术语 X 插入权重为 Z 的文档 Y”,然后发出“为该文档选择前 1000 个术语”或“为每个文档选择前 1000 个术语”之类的命令。这适用于我当前的 MySQL 实现,但也许该域更适合 HBase。我注意到 HBase 和 BigTable 用于全文索引,这是一个类似的问题域。
您可以看出我只阅读了几页有关 HBase 的内容,但我希望您能理解我的问题的要点。与this question有关.
可能的障碍可能包括 HBase 不允许使用等效于 LIMIT
子句的查询。鉴于我想按权重查询,我想关联 {weight => term}
,这对于两个具有相同权重的术语来说会有问题(我假设 HBase 只允许唯一键)。或者,我必须为给定权重存储一组术语,但这会限制我准确限制返回术语数量的能力。
最佳答案
简单的回答是。
更复杂的答案,现在这些“无 sql”数据存储区各自实现了自己的程序员接口(interface),并且“无 sql”意味着它们不是基于 SQL 的。因此,请为一些编码做好准备,但这并不困难。大多数这些数据存储只是名称值对存储,通过 REST 或 SOAP 获取(HBase 也有列族的概念)。不过,他们所做的是 Map Reduce,这是一个非常有趣的查询领域,非常值得一读。
关于hadoop - 这是对 HBase 的合适(或可能)使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1683648/