次のニーズを満たすデータ ストアを探しています。
- クエリするデータが大量にあるため (TB 単位)、分散されています。
- 集中的なデータ ストアを書き込みます。データはサービスから生成され、データを保存してそれらの分析を実行したいと考えています。
- 分析クエリを適度に高速にしたい (数時間ではなく数分のオーダー)
- クエリのほとんどは、「選択、フィルター、集計、並べ替え」タイプです。
- システムの要件の変化に応じて保存するものが変わるため、スキーマは頻繁に変更されます。
- 当社が保存するデータの一部は、純粋な大縮尺の map/reduce ジョブに他の目的で使用される場合もあります。
キー値ストアはスケーラブルですが、クエリ要件をサポートしていません。
Map/Reduce ジョブはスケーラブルで、クエリを実行できますが、クエリ レイテンシの要件を満たしていないと思います。
RDBMS (MySQL など) はクエリのニーズを満たしますが、スキーマを固定する必要があります。スケーリングすることはできますが、共有などを行う必要があります。
Vertica のような商用ソリューションは、すべての問題を解決するソリューションのように思えますが、可能であれば商用ソリューションは避けたいと思います。
HBase は、基礎となる HDFS により、Hadoop と同じくらいスケーラブルなシステムのようであり、フィルターと集約を実行する機能を備えているようですが、HBase でのフィルター クエリのパフォーマンスについてはよくわかりません。
現在、HBase はセカンダリ インデックスをサポートしていません。これは、任意の列でのフィルタリングに HBase が適切なオプションであるかどうか疑問に思います。ドキュメントによると、行 ID と列ファミリーでのフィルタリングは、列修飾子だけでのフィルタリングよりも高速です。ただし、RowId および Column ファミリにブルーム フィルター インデックスを設定すると、ブルーム フィルターのサイズが大幅に増加し、このオプションを実質的に実行不可能にすることも読みました。
HBase でのフィルター クエリのパフォーマンスに関する多くのデータをオンラインで見つけることができません。ここでさらに情報を見つけられることを願っています。
ありがとう!