コアデータIoTPerformanceプランとScaleプラン

IoTとメトリクスの時系列

センサーやメトリクスのサンプルを取り込み、生データを必要な期間だけ保持し、長期保存の系列にコピーし、必要に応じてバケットに集計します。

系列ごとに設定
保持期間
コピールール
自動
系列の検索
ラベル
ステップ 1 / 6
系列を作成

生のサンプルを24時間保持し、建物と種類でラベルを付けます。

サンプルセッションplaying
# 系列を作成
hotkv> TS.CREATE temp:b4:f2 RETENTION 86400000 LABELS building b4 type temperature
OK

実際のHotKVコマンドと応答例を使ったアニメーションのウォークスルーです。任意のステップをクリックすると、そこに移動します。 コマンドと応答は、HotKVで実際に入力し表示されるとおり英語のままです。

課題

何千ものセンサーが、それぞれ数秒ごとに測定値を送ってきます。アラートには数時間分の生データが、レポートには1年分の履歴が必要で、目的の系列を見つけるには建物、フロア、デバイスの種類で検索しなければなりません。そのために別の時系列データベースを動かせば、運用するシステムがまた1つ増えます。

HotKVでの解決方法

HotKVの時系列には保持期間とラベルがあります。デバイスはTS.ADDでサンプルを追加し、ダウンサンプリングのルールが新しいサンプルをすべて、より長く保持する系列にコピーし、TS.AGGが任意の範囲をavg、min、maxなどの関数で固定幅のバケットに集計します。

ステップごとに

コマンドごとに何が起きるか

  1. 01

    系列を作成

    生のサンプルを24時間保持し、建物と種類でラベルを付けます。

    TS.CREATE temp:b4:f2 RETENTION 86400000 LABELS building b4 type temperature
  2. 02

    長期保存の系列

    サンプルを1年間保持する2つ目の系列です。

    TS.CREATE temp:b4:f2:1y RETENTION 31536000000
  3. 03

    サンプルをコピー

    新しいサンプルはすべて長期保存の系列にもコピーされます。TS.AGGで1時間ごとの平均として読み取ります。

    TS.DOWNSAMPLE temp:b4:f2 temp:b4:f2:1y avg 3600000
  4. 04

    サンプルを取り込む

    センサーはゲートウェイを通じて報告します。*はサーバーの時刻を使います。

    TS.ADD temp:b4:f2 * 21.4
  5. 05

    グラフ用に集計

    直近1時間の5分ごとの平均で、すぐにグラフにできます。

    TS.AGG temp:b4:f2 1790982000000 1790985600000 300000 avg
  6. 06

    ラベルで系列を検索

    建物b4のすべての温度の系列です。

    TS.LIST LABEL building b4
活用シーン

実際のシナリオ

スマートビルディング

温度、CO2、在室状況はフロアごとに保存され、生データは1日、レポート用には1時間ごとの平均が保持されます。

車両テレメトリ

車両の速度、バッテリー、エンジンのデータを絶えず取り込み、車両ごとにグラフ化します。

アプリケーションのメトリクス

エンドポイントごとのリクエストのレイテンシとエラー数が、別のメトリクスデータベースなしでライブのダッシュボードに反映されます。

標準搭載

得られるもの

系列ごとの保持期間

古いサンプルは自動的に削除されます。

TS.CREATETS.RETENTION

ダウンサンプリングのルール

新しいサンプルは長期保存の系列にコピーされ、読み取るときに集計します。

TS.DOWNSAMPLE

バケット集計

任意の範囲を固定幅のバケットに集計します。

TS.AGGTS.RANGE

ラベル

ラベルの値で系列を見つけます。

TS.LISTTS.INFO

よくある質問

独自のタイムスタンプを送れますか?

はい。TS.ADDに、*の代わりにミリ秒単位のUnix時刻を渡します。

どんな集計が使えますか?

avg、min、max、sumを含む全一覧は、TS.AGGのリファレンスをご覧ください。

どのプランに含まれますか?

時系列は、PerformanceプランとScaleプランに含まれます。

関連するユースケース

ご自身のワークロードで試してみましょう

HotKVはRedisプロトコルに対応しているため、既存のクライアントを向けるだけで、これらと同じコマンドを実行できます。