2011-07-15 7 views
0

現在、MongoDBを使用して、いくつかのセンサーのリアルタイム信号をたくさん格納しています。記憶された情報は、タイムスタンプ、数値、および信号の品質を示すフラグを含む。MongoDB Key-Value DB(圧縮あり)

クエリは非常に高速ですが、使用されるディスクの量は膨大であり、私の目的に最も適した他の非リレーショナルデータベースを試してみたいと考えています。

私はhttp://nosql-database.org/を見てきましたが、自分のニーズに最も適したデータベースがどれもわかりません。

はどうもありがとうございました:)

+0

それぞれが文書全体を設定しているのですか、それともいくつかを1つにグループ化していますか? – CodesInChaos

+0

タイムスタンプ、数値、フラグ....あなたのデータは圧縮に適していますか? – TTT

答えて

1

ディスク容量は安いです、これを気にしないでくださいあなたはRavenDBを試すことができますWindows上の場合は、新しいデータベースでの開発は...はるかに費用がかかります。 )(あなたが直接接続してdb.repairDatabaseを実行しているのmongod --repairを実行するか、 ことで、この「圧縮」を行うことができます

また、MBのmongoデータベースのサイズを縮小することについてthis答えに見てみましょう。それはすべての文書は異なるフィールドを持つことができますが、フィールドは常に同じである場合、ストレージのオーバーヘッドを作成するための素晴らしいですすべての文書、内部

2

のMongoDBストアフィールド名。そして、あなたはあなたの内側より意味のあるものにこれらのフィールド名をマップすることができ

{ 
    _id: "47cc67093475061e3d95369d", 
    t: "2011-06-09T17:46:21", 
    v: 314159, 
    q: 3 
} 

:これを試してみてください

{ 
    _id: "47cc67093475061e3d95369d", 
    timestamp: "2011-06-09T17:46:21", 
    value: 314159, 
    quality: 3 
} 

を:、ディスクの消費量を削減するフィールド名を短縮しようとするので、代わりにするには

応用。

また、別の_idフィールドとtimestampフィールドを別々に保存すると、倍増する可能性があります。 ObjectIdタイプにはtimestamp embeddedが含まれているため、データのクエリおよび使用方法によっては、別々のタイムスタンプフィールドを一切使用しないで行うことができます。