文字通り、すべての主要なNoSQLデータベースがその要件をサポートすると思います。特に、実際に大量のデータがない場合はそうです(これは、なぜNoSQLなのかという疑問を投げかけます)。
とは言うものの、私は最近、時系列データ用にNoSQLデータベースを設計および操作する必要がありました。これにより、その設計に関する入力を提供し、それを他のすべてのデータに外挿することができます。
選択したデータベースはCassandra
、そして私たちのデザインは次のとおりでした:
- すべての「記号」の単一のキースペース
- 各シンボルは新しい行でした
- 毎回のエントリは、その関連する行の新しい列でした
- 各値(複数の値にすることができます)は、時間エントリの値の部分でした
これにより、要求したすべてのことを実現できます。特に、単一のシンボルのデータを読み取り、必要に応じて範囲を使用できます(列範囲の呼び出し)。パフォーマンスは重要ではないとおっしゃっていましたが、これは私たちにとっても非常にパフォーマンスが良かったです。単一のシンボルのすべてのデータは、定義上並べ替えられ(列名の並べ替え)、常に同じノードに保存されます(単純なクエリの場合はノード間の通信はありません)。 )。最後に、この設計は、動的な列を持つ他のNoSQLデータベースにうまく変換されます。
これに加えて、時系列ストアでのMongoDB(および必要に応じて上限付きコレクション)の使用に関する情報を次に示します。時系列データベースとしてのMongoDB
最後に、時系列のSQLとNoSQLについて説明します。 https: //dba.stackexchange.com/questions/7634/timeseries-sql-or-nosql
その議論に次のことを追加できます:
- NoSQLの学習曲線は高くなり、「ソフトコスト」の観点から無料で追加の柔軟性と機能を利用することはできません。このデータベースを運用上サポートするのは誰ですか?
- この機能が将来的に拡張されると予想される場合(各時間エントリに追加されるフィールドが増えるか、シンボルの数またはシンボルの時系列のサイズに関してはるかに大きな容量になる)、間違いなくNoSQLを使用してください。柔軟性のメリットは非常に大きく、「シンボルごと」と「シンボルの数」の両方に基づいて(上記の設計で)得られるスケーラビリティはほぼ無制限です(ほぼ無制限と言います-行あたりの最大列数は数十億、最大キースペースあたりの行数には制限がないと思います。