データストア機能のご紹介

はじめに

enebularにデータを保存するための機能をリリースしました。これまでenebularを使ってデータを保存するには外部のクラウドサービスと連携させる必要がありました。今後は、enebularのフリープランでもこのデータストア機能を使ったアプリケーションをすぐに作れるようになります!

まだ、ベータ版という扱いですが、以下のような機能があります。

  1. データの保存
  2. データの検索
  3. データの可視化(INFOMOTIONのデータソース)
  4. データ更新の検知

今回は、データの保存とデータの検索機能をご紹介します。

準備

プライベートノードとInfoTypeをDiscoverからインポートしておきます。

プライベートノード

lcdp-toolkit

https://enebular.com/discover/privatenode/7861b7c9-35cd-4ad7-bb0a-840251568a8d

ee-connect-v2

https://enebular.com/discover/privatenode/a34b2986-5340-488a-b89e-220e54ba9970

テーブルの作成・操作

プロジェクトの左メニュー、データストアをクリックします。

データストアメニュー

プラスボタンでテーブルを作成します。ここでは、infomotionで利用するにチェックを入れたまま、次へボタンをクリックします。

テーブルを作成する画面

暫くすると、空のテーブルができました。

テーブル作成後の画面

フローでの保存

作成したテーブルにはフローからデータを保存できます。

enebular editorかWeb flow editorを開いて、さっそく以下の様なフローを作ってみましょう。

ee-connect-v2というプライベートノードをインポートするとDSデータ保存ノードがエディター上で見つかるはずです。

データ保存のフロー

injectノードは、画像の様に、設定します。

injectノードのプロパティ

msg.nameはデバイスの名前、msg.tempは温度をランダムな数値として出力できるようにJSONata式で入れておきます。この場合は、18度から36度までの温度がランダムにでることを期待して、$floor($random()*18+18)と入れています。

msg.tableIdには、テーブルの設定タブのテーブルIDをコピーして、その値を入れておきます。

テーブル設定の画面

templateノードは、テーブルにデータを送るときの形式を想定して、

メインキーをlabel、サブキーをtsとして、tempに先ほどのランダムな温度を入れるように設定します。出力形式はJSONです。

{
    "label": "{{name}}",
    "ts": {{payload}},
    "temp": {{temp}}
}
templateノードのプロパティ

DSデータ保存ノードを使ってpayloadで受け取ったデータをテーブルに保存します。

DSデータ保存ノードのプロパティ

データストア設定は、msg.tableIdとしていますが、これはどのテーブルにデータを保存するかを特定するために使われます。

テーブルIDの指定方法

Injectノードを実行すると、問題無ければ保存できたデータがdebugノードに表示されます。

フローの実行結果

保存できたデータは、enebularの画面からも確認できます。

enebularの検索タブ

データ取得

次に保存したデータを取得します。これには、DSデータ取得ノードを使用します。

データ取得のフローと実行結果

データ取得は簡単で、メインキーとサブキーのセットをノードに指定すれば、一致するデータがdebugノードに表示されます。メインキーとサブキーを事前にわかっている場合はこの方法が簡単です。

DSデータ取得ノードのプロパティ

データ検索

一定の条件に合致したデータを取得したいケースもあります。その場合は、DSデータ検索(簡易版)ノードを使用します。

データ検索のフロー

サブキーのタイムスタンプtsの検索条件に合致したデータが出力されます。

DSデータ検索簡易版ノードのプロパティ

enebularの画面の検索機能でも検索してデータを閲覧することが可能です。

enebularの検索タブ

様々な利用用途

データストアはJSON形式のデータを柔軟に格納できるので、様々用途に活用可能です。

センサーデータ: メインキーにデバイス名、サブキーにタイムスタンプを使用して、センサー取得値をJSON形式で保存できます。

設定情報: システムやアプリケーションの設定情報を保存するのに使うことができます。メインキーは設定のカテゴリ、サブキーは具体的な設定項目とすることで、設定データを効率的に保存・検索できます。

カタログや商品データベース: メインキーは商品カテゴリ、サブキーは商品名やモデル番号として使用。JSON形式のデータには商品の詳細情報やスペックを保存できます。

FAQや知識ベースの管理: メインキーは質問のカテゴリ、サブキーは具体的な質問やキーワードとすることで、JSONには回答や関連情報を保存します。サブキーの部分一致検索機能を活用して、ユーザーのクエリに近いFAQを検索するのに利用できます。

まとめ

今回はデータの保存とデータの取得機能をご紹介しました。

この他にも、ダッシュボードを作ることができるINFOMOTIONのデータソースに使うこともできますし、データストアに更新があったときに、クラウド実行環境に通知を送ることもできます。このあたりについては、また機会を改めてご紹介したいと思います。

INFOMOTION機能のグラフ設定
データソースをデータストアか外部データソースを選択できるようになった
INFOMOTIONでのグラフ表示

まだβ版扱いということもあり、画面の操作性など少しずつ改善していく予定です。スクリーンショットは現時点のものと変わっている可能性があります。もし、わかりにくい点、不具合などありましたら、お気軽にお問い合せください。

よろしくお願い致します。