データのインデックスを作成しています。これには、多くのトリプレットをフォームに格納する必要があります(document, term, weight)
。このような行を最大数百万行保存します。現在、MySQL で単純なテーブルとしてこれを行っています。ドキュメントと用語の識別子を、他のテーブルへの外部キーよりも文字列値として保存しています。ソフトウェアを書き直し、データを保存するより良い方法を探しています。
HBase の仕組みを見ると、これはかなりスキーマに適合しているように見えます。多くのトリプレットを保存する代わりにdocument
、{term => weight}
.
私は単一ノードでこれを行っているので、分散ノードなどは気にしません。MySQL が機能するのでそのまま使用する必要がありますか、それとも HBase を試すのが賢明でしょうか? Lucene がこれをフルテキスト インデックス作成に使用していることがわかります (これは、私が行っていることと似ています)。私の質問は、単一の HBase ノードが単一の MySQL ノードとどのように比較されるかということです。私は Scala から来ているので、直接の Java API は、JDBC や MySQL の各クエリの解析などよりも優れているのでしょうか?
私の主な関心事は、以前はボトルネックだった挿入速度です。処理後、ライブ クエリのためにデータを MySQL に戻すことになるでしょう。
両方のプロトタイプを作成してみますが、コミュニティがこれに関する貴重な洞察を提供してくれると確信しています。