0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FIWAREのデータを時系列で蓄積する!QuantumLeapとCrateDBを用いた履歴管理

0
Posted at

はじめに

FIWARE(Orion Context Broker)は、実世界の「現在の状態(Context)」を管理することには長けていますが、標準では過去の履歴を保持しません。
「昨日と比較してどう変化したか」「過去1週間の推移を可視化したい」といったニーズに応えるため、QuantumLeap を使用して時系列データを自動蓄積する構成を構築しました。そのナレッジを共有します。

技術スタック

  • Orion Context Broker: データのハブ(最新状態を保持)。
  • QuantumLeap: FIWARE専用の時系列データ永続化用サービス。
  • CrateDB: QuantumLeapがバックエンドで使用する、時系列データに最適化された分散SQLデータベース。

システム構成のイメージ

FIWAREの Subscription(購読) 機能を利用し、プッシュ型でデータを蓄積します。

  1. Orion: エンティティの属性が更新される。
  2. Subscription: 更新を検知し、QuantumLeapの通知エンドポイントへHTTP Postを送る。
  3. QuantumLeap: 通知されたNGSI形式のデータを整形し、CrateDBへインサートする。

実装の手順

1. QuantumLeapとCrateDBの準備

Docker Composeを使用する場合、以下のようなイメージ構成で連携させます。QuantumLeapの環境変数 CRATEDB_URL で接続先を指定するのがポイントです。

2. Subscription(購読)の登録

Orionに対して、「特定のデータが更新されたらQuantumLeapに通知する」設定を投入します。

curl -iX POST \
  'http://localhost:1026/v2/subscriptions' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -d '{
  "description": "Notify QuantumLeap of count changes",
  "subject": {
    "entities": [
      {
        "idPattern": ".*",
        "type": "Device"
      }
    ],
    "condition": {
      "attrs": [ "count" ] 
    }
  },
  "notification": {
    "http": {
      "url": "http://quantumleap:8668/v2/notify"
    },
    "attrs": [ "count" ],
    "metadata": ["dateCreated", "dateModified"]
  }
}'

3. データの蓄積と参照

蓄積されたデータは、Orionを介さずQuantumLeapのAPIから直接取得できます。特定期間の絞り込みや、最新のN件といった取得も標準機能でサポートされています。

# 特定のエンティティ(Device01)の履歴を取得
curl -X GET 'http://localhost:8668/v1/entities/Device01' \
  -H 'fiware-service: openiot'

この構成のメリット

  • 実装コストの低さ: 自分でデータベース保存用のバッチやプログラムを書く必要がなく、FIWAREの標準機能の組み合わせだけで完結します。
  • NGSI準拠: FIWAREのデータモデルを維持したまま蓄積できるため、他のFIWAREコンポーネントとの親和性が非常に高いです。
  • スケーラビリティ: 大規模な時系列データの処理に特化したCrateDBを利用するため、将来的なデバイス増設にも対応しやすい構成です。

まとめ

最新データのみを扱うFIWAREにおいて、過去データの保持は分析や予測(DX活用)への第一歩です。QuantumLeapを組み合わせることで、最小限の手間で強力な時系列データ基盤を構築することができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?