こんにちは、時系列データプロダクト開発チームです。
今回も「時系列データの本質と時系列データベースを使った取り扱い方にフォーカスしたIoTエンジニア必見の技術情報サイト」として、時系列データを取り扱うときに意識すべき7つのポイント?に迫ってみます。
前回は、「時系列データの扱いの大変さ」についてお話しました。
時系列データを集める・貯める・整理するには、それなりの労力と時間が必要で、さらにそれを自動化するためには、各ステップの様々な問題をクリアする必要があることをご紹介しました。
今回は、そんな時系列データを取り扱うときに意識すべきことを7つのポイントに分けてわかりやすくお話ししたいと思います。
▶7つのポイント
時系列データを取り扱うときに意識すべきポイントは、以下の7つです。
言い換えると、この7つのポイントさえクリアすれば、時系列データの取り扱いが分かります。
1.時系列データはデータ発生点ごとに管理します
2.時系列データは生のデータ(生値)が命です
3.時系列データの収集間隔はバラバラです
4.データ発生点は倍々に増加します
5.時系列データは発生タイミングが異なります
6.時系列データの流れは途切れることがあります
7.時系列データは時計がズレると大変です
では、順に説明します。
■ 1.時系列データはデータ発生点ごとに管理します
時系列データが発生する箇所を「データ発生点」と言います。(ポイントIDやタグというユニークキーを付けて扱われます)
データ発生点ごとに時系列データを管理できると、データの検索に無駄がなくなり、高速にデータを取り扱うことができます。
「Aさん宅のリビングの温度」という感じに時系列データへアクセスできたり、子供部屋の温度を計測していても、リビングと区別して温度データを取り扱うことができます。
■ 2.時系列データは生のデータ(生値)が命です
時系列データにおいて、センサで計測した生のデータをそのまま保存することは非常に大切です。(昨今の生成系AIやそのトレーニングに必要な生データが注目されています)
例えば、知りたいデータが1時間ごとの平均温度であっても、センサで計測した1分ごとのデータはそのまま時系列データとして保存します。
なぜなら、将来のさらなる活用が見込めるからです。
1時間ごとの平均気温推移の傾向がわかってくると、今度はAIを学習させて気温予測システムを開発する、といった流れはよくあります。
このとき1分ごとの生データが必要になることは想像に難くないでしょう。
「時系列データってなんだ?」で触れたように、もし生のデータを保存していなかったら同じデータは二度と手に入らないですし、同じようなデータを取り直すとしたら多くの時間がかかります。
これは、さまざまな機会損失につながります。
その意味で生の時系列データは十分に資産価値があるのです。
■ 3.時系列データの収集間隔はバラバラです
データ発生点では、センサによってデータ計測間隔が異なります。
そのため、時系列データの収集間隔もそれに応じてデータ発生点ごとに異なり、一定の期間で貯まるデータ数も異なります。
発生するデータ数を考慮してデータ保存容量の設計を行いますので、事前にこれらを把握しておくことは重要です。
■ 4.データ発生点は倍々に増加します
下図にある通り、Aさん宅のリビングの温度と電力の時系列データを収集していて、マンション全体のエネルギー管理システムへ発展させる場合、25室分のデータを24時間分計測すると2,196,000データとなります。
すごい量ですね。
もちろん条件にはよりますが、「データ発生点が増えることによってデータ数が膨大になる」ことが分かります。
1の時系列データ収集間隔とともに、どれくらいのデータ総量が発生するのか見積もっておく必要があります。
■ 5.時系列データは発生タイミングが異なります
センサは、センサのタイミングで次々と計測データを送信してきます。
さらに、データが相手に届いたのかを確認せずに、どんどん送信するセンサも少なくありません。
こうしたデータを取りこぼすことなく受信して蓄積するためには、非常に難易度の高い仕組みが必要です。
■ 6.時系列データの流れは途切れることがあります
センサで計測したデータは、ネットワークを介して時系列データベースに蓄積される構成が一般的です。
そのときに何らかのネットワーク障害で時系列データの流れが途切れ、データベースに届かないことがあります。
これをデータ欠損と呼びます。
時系列データを欠損なく取り扱うためには、途切れたデータをあらためてデータベースへ届ける仕組み(データ再送)が必要です。
ただ、欠損を避けるための再送はコストもかかります、インフラが復旧すると元々その時間帯に送るべきデータに加えて、再送データの送信による負荷も発生することを設計で考慮しておく必要があります。
■ 7.時系列データは時計がズレると大変です
暖房の電力使用量と、室温の上昇をそれぞれグラフ化し、2つの関係を確認したいとします。
もし、電力センサ側の時刻が現在の時間より1時間早く設定されていたら、どうなるでしょうか。
1時間ずれていると、関係を正確につかめなくなります。
そのため、時刻のズレは時系列データを扱う上では非常に厄介なので、ズレが発生しないような対策が必須となります。
対策の一例としては、
「あるプロジェクトで設置したすべてのセンサデータは必ず一つのゲートウェイで集約するように設計し、データを受信したタイミングで、そのデータにゲートウェイで管理している時刻を設定する」
という方法があります。
しかし、一般的なSNTPを使ってても「時刻は数百msはズレ」が発生します。時刻はズレているものであるという前提での設計が求められるのもまた現実です。
▶時系列データの保管は難易度高し
意識すべき7つのポイントについて、長々とお話しましたがいかがでしたでしょうか?
これら全てに対処して、時系列データを保管することはとても難しく、大変コストがかかります。
そのため、例えば、アプリで時系列データを活用するにしても、必要なところだけ抽出・要約して使います。
多大なコストを払ってまで生の時系列データを保管することはしません。
ですが、「2.時系列データは生のデータ(生値)が命です」で、説明したように後から時系列データが必要になったときに機会損失が発生します。
次回の記事では、機会損失について具体的なイメージを持つことができるように、機会損失に至るちょっとしたストーリーをお話したいと思います。
それでは、また。
▶時系列データの保管と管理はCLOUDSHIP/RealBoardにお任せ
弊社の製品であるCLOUDSHIPとRealBoardでは、今回説明した7つのポイントをクリアし、時系列データベースを低コストで構築できます。
詳しく知りたい方は↓
Kommentarer