私のカスタムWebサーバーは、壁掛け時計のタイムスタンプ(セッションの開始)とセッションが続いた壁のクリック秒数の形式でセッション情報を報告します。
この情報をデータウェアハウス(MySQL +開始スキーマ)に保存して、たとえば特定の時間における特定のエンティティのセッション数を照会できるようにしたい。要件は、グラフにフィードされる時系列データを抽出できる必要があることです。
セッションの絶対秒ごとに行を挿入する以外に、データを保存する方法はありますか?
私のカスタムWebサーバーは、壁掛け時計のタイムスタンプ(セッションの開始)とセッションが続いた壁のクリック秒数の形式でセッション情報を報告します。
この情報をデータウェアハウス(MySQL +開始スキーマ)に保存して、たとえば特定の時間における特定のエンティティのセッション数を照会できるようにしたい。要件は、グラフにフィードされる時系列データを抽出できる必要があることです。
セッションの絶対秒ごとに行を挿入する以外に、データを保存する方法はありますか?
最も簡単な方法は、セッションごとに 1 つの行を StartTime、EndTime とともにファクト テーブルに格納することです。
私たちが持っているとしましょうfactSession:
(
...
,SessionID int
,StartTime datetime
,EndTime datetime
,EntityID int
...
) ;
と
TimeSeries TABLE ( TimePoint datetime ) ;
あなたはできる:
SELECT t.TimePoint
,f.EntityID
,COUNT(f.SessionID) AS cnt
FROM TimeSeries AS t
LEFT JOIN factSessions AS f ON ( f.StartTime <= t.TimePoint
AND t.TimePoint <= f.EndTime
)
GROUP BY t.TimePoint ,f.EntityID
ORDER BY t.TimePoint