我正在建立一个数据索引,这将需要以(document, term, weight)
. 我将存储多达几百万个这样的行。目前我在 MySQL 中将其作为一个简单的表来执行。我将文档和术语标识符存储为字符串值,而不是其他表的外键。我正在重新编写软件并寻找更好的数据存储方式。
看看 HBase 的工作方式,这似乎非常适合模式。我可以映射document
到{term => weight}
.
我在单个节点上执行此操作,所以我不关心分布式节点等。我应该坚持使用 MySQL,因为它可以工作,还是尝试 HBase 是否明智?我看到 Lucene 将它用于全文索引(这类似于我正在做的事情)。我的问题实际上是单个 HBase 节点与单个 MySQL 节点相比如何?我来自 Scala,那么直接 Java API 是否比 JDBC 和 MySQL 解析等每个查询都具有优势?
我主要关心的是插入速度,因为这是以前的瓶颈。处理后,我可能最终会将数据放回 MySQL 进行实时查询,因为我需要做一些在 MySQL 中更好的计算。
我将尝试对两者进行原型设计,但我相信社区可以为我提供一些有价值的见解。