3

このようなさまざまな時系列メトリックを収集する必要があります

{event_type, event_time, data_point1, data_point2}

次に、「datapoint2=7 の場合、5 分間隔のイベント X のすべての datapoint1 値」または「この時間のイベント Y の datapoint1-datapoint2 の平均」などのアドホック クエリを実行する必要があります。

mongo での時系列のモデリングに関するいくつかの資料を見てきましたが、質問するクエリに基づいてデータを事前に集計しているようです。すべてのデータ ポイントを mongo に保存し、無料のクエリを実行することはまだ可能ですか?

4

1 に答える 1

2

ここで何かが足りないかもしれませんが、次のコレクションが必要だと思います:

{event_type, event_time, data_point1, data_point2}

クエリを実行できるようにします。このドキュメントは両方のクエリを非常に簡単に満たす必要があり、後者は集約フレームワーク ( $avg) で行われます。

これにより、完全な自由形式のクエリが可能になります。

リンクされた投稿( http://www.quora.com/Time-Series/What-is-the-best-way-to-store-time-series-data-in-MongoDB)に混乱しただけかもしれません)。これは、データのトップレベルの結果を形成する事前集計の形式を示していますが、これは通常、オンデマンドで実行するのが非常に困難で困難です。

もちろん、お気づきのように、この方法ではクエリ機能が制限されますが、時系列が信じられないほど大きくなる可能性があり、自由形式のデータ セットに対するより複雑なクエリの集計フレームワークかどうかはわかりません。ここで、事前集計の出番です。最上位レベルのデータを下位レベルのデータに与えることで、効果的に集計がはるかに簡単になります。

したがって、その投稿では、@Jared が実際に彼が持っている最初のコレクションを示していることがわかります。これは次の詳細コレクションです。

{ 
    timestamp: "Sun May 02 2010 19:07:40 GMT-0700", 
    metric1: 10,
    metric2: 20,
}

これは、以下を含む詳細コレクションになります。

{event_type, event_time, data_point1, data_point2}

自由形式でクエリを実行できるコレクションですが、@Jared は、データをその詳細コレクションにレベル付けして他の集計を容易にする方法を示します。

したがって、問題が何であるかはわかりdata_pointsません。もちろん、適切なインデックスがあれば、詳細コレクションにすべてが保存され、無料のクエリを実行できます。

于 2012-12-25T10:51:35.240 に答える