2011-01-27 14 views
3

私は数十億件のレコードを含む学術プロジェクトのアーキテクチャ段階にあります。このプロジェクトは、コンピューティングパワーの点で非常に軽量で、スケーラビリティが高いはずです。 情報構造はとてもシンプルです。それぞれの機能が異なるアイテムのリストを保存する必要があります。フィーチャーは、整数、小数点、日付、文字列などです。データがインポートされると、フィーチャーのタイプがわかります。また、機能を使用して他のアイテムを参照することもできます。
フィーチャ間での文字列の場合、>、<、=、regexes、length、left、right、midなどのクエリを使用してアイテムのリスト(複数のアイテム)を取得し、並べ替えることができる必要がありますユーザーの任意の入力に対する値。NoSQL DBとReporting

合計、平均、グルーピングという意味でのレポート作成は、よりリラックスした要求でも必要です。フルキューブの機能は必要ありませんが、それ以上に優れています。

私はNoSQLの世界全体で非常に新しいです。あなたは何をお勧めします?。

答えて

4

MongoDBのチュートリアルをチェックした場合、私の意見では、クエリ/集計に使用されるMap/Reduceシステムの紹介があります。

NoSQLが行くルートであることを前もって結論付けたのはなぜですか。異なる項目には異なるスキーマがあるかもしれませんが、固定数のエンティティと属性が存在し、なぜSQLを排除したのでしょうか(データの保存とクエリのための何十年も蓄積された機能を持っています)。

+0

属性は完全に任意です。私はSQL VLDBの経験があり、それは良くありません。あまりにも多くの処理が必要です。 – Sonia

+0

「完全に任意」とはNoSQLを指しています。つまり、私が言ったように、あなたはMap/Reduceを学びたいと思っています。私は自分自身でそれを学んできましたが、最終的にはMongoDBには行かないかもしれませんが、私はチュートリアルが一番いいと思うので、学ぶのが最善のようです。 –

+0

現在、NoSQL DBに対して複雑なクエリを実行する方法がMap/Reduceを使用していると言われています。 – Sonia

0

集計を使用する場合は、map reduceを使用して集計テーブルを作成し、そのデータを提供することができます。

クエリごとにmap reduceを書くのは面倒かもしれませんが、Apache PigとHiveも見てください。これは、あなたが話しているような珍しい質問のために特に役に立ちます。