CData Software Blog

クラウド連携のCData Software の技術ブログです。

SenseWay Mission Connect REST API から取得した温度湿度センサーデータを Power BI で可視化する:CData ODBC REST Driver

こんにちは。CData Software Japan リードエンジニアの杉本です。

今日は CData ODBC REST Driver を使って、SenseWay Mission Connect のREST APIで取得できるデータを Power BIから分析する方法を紹介したいと思います。

SenseWay Mission Connect とは?

SenseWay Mission Connect(センスウェイ ミッションコネクト)とは、IoTに必要な通信であるLPWAのLoRaWAN™ を用いた日本全国で活用できるIoT通信プラットフォームサービスです。

https://www.senseway.net/

f:id:sugimomoto:20200107100859p:plain

SenseWay Mission Connect では 2019年12月にREST APIがリリースされており、今回はこのREST APIを活用しました。

https://www.senseway.net/press-release/rest-api_20191210/

バイスはセンスウェイ社からお借りした以下のようなLoRaWAN湿度温度センサーで、それをセンスウェイのサーバーに送信するゲートウェイを通じて、やり取りするようになっています。

f:id:sugimomoto:20191225180102j:plain

このデバイスから送信されたデータは SenseWay Mission Connect のWebサービスに渡り、REST APIを経由して取得することができます。また、今回は利用していませんがデバイスへリクエストを送信することも可能です。

f:id:sugimomoto:20200107101056p:plain

実現イメージ

今回は Microsoft PowerBI からSenseWay Mission Connect に接続しますが、SenseWay Mission Connect は単純にツールと接続することはできません。PowerBI がどのようにWeb API側へリクエストを投げるべきかの判断材料やメタデータの情報が無いためです。

f:id:sugimomoto:20200107101103p:plain

そこで、CData REST ベースの各種 Driverを用いて、このボトルネックを解決します。

まず、各ツールからはODBCインタフェースでSQL(Select文)をCData REST ODBC Driverに向けて発行してもらいます。そのリクエストを受け取った、CData ODBC REST Driverは、SenseWay Mission Connect REST API のエンドポイントに対して、SQL文を解釈し、HTTPリクエスト形式に変換して、Getメソッドを発行します。

リクエスト後、Jsonフォーマットで返ってきたデータセットはCData REST ODBC DriverがODBCインタフェースのResultsetに変換してツールに返します。

f:id:sugimomoto:20200107101112p:plain

これにより、各種ツールからアドホックSQLによるリクエストがあったタイミングで最新のデータを API から取得することが可能です。

なお、今回はPowerBIから接続としましたが、TableauやQlikなどからも同じように接続が可能です。

手順

それでは実際に PowerBI と SenseWay Mission Connect の接続方法を説明します。

PowerBI は以下URLから予めデスクトップ版をダウンロードしておいてください。

powerbi.microsoft.com

SenseWay Mission Connect REST API の有効化

SenseWay Mission Connect REST API を使うためには、デバイスごとのREST API機能を有効化しておく必要があります。

有効化はSenseWay Mission Connect のWeb画面から行います。

以下のようにSenseWay Mission Connect にアクセスし、ログインを行い

f:id:sugimomoto:20200107101122p:plain

バイス管理から「編集」をクリック

f:id:sugimomoto:20200107101129p:plain

REST API」を「使用する」に切り替えて、「更新」をクリックすればOKです。

f:id:sugimomoto:20200107101136p:plain

REST データ処理用 RSDファイルの作成

次に、SenseWay Mission Connect REST API を CData 各種 REST DeiverがSQLとして解釈できるように設定ファイルを作成します。

以下のGitHubから保存してください。

github.com

f:id:sugimomoto:20200107101142p:plain

保存先フォルダは後ほど使用するので「C:\CData_REST\SenseWay」といった書き込み可能な任意のフォルダに配置してください。

CData REST ODBC Driverのインストール

PowerBI と SenseWay Mission Connect REST APIを繋ぐために必要となるCData REST Driverをインストールします。

まず、以下のURLからCData REST ODBC Driverの30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。

https://www.cdata.com/jp/drivers/rest/download/odbc/

f:id:sugimomoto:20200107101148p:plain

f:id:sugimomoto:20200107101154p:plain

ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。

※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。

インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。

以下の項目をセットし、保存します。

OtherにはSenseWay Mission Connect にログインするためのユーザーIDとパスワードを指定します。また、もしデバイスをあらかじめ指定する場合はDevEUIの値を指定してください。

  • Location=C:\CData_REST\SenseWay;
  • Other="SenseWayUser=XXXXX;SenseWayPassword=XXXXX;DevEUI=XXXXX;";

f:id:sugimomoto:20200107101200p:plain

以上で、CData REST Driverの準備は完了です。

PowerBI からの接続

それでは、PowerBIから CData REST ODBC Driverに接続します。

PowerBI デスクトップを立ち上げて「データを取得」をクリックし

f:id:sugimomoto:20200107101206p:plain

ODBC 接続を選択します。

f:id:sugimomoto:20200107101210p:plain

データソース名から先程ODBCで登録したDSNを選択し、Windows認証で接続します。

f:id:sugimomoto:20200107101215p:plain

f:id:sugimomoto:20200107101220p:plain

すると、以下のようにテーブル化されたSenseWay Mission Connect REST APIテーブルが選択できるようになります。

f:id:sugimomoto:20200107101252p:plain

以上で、Power BIにフラットな形で SenseWay Mission Connect のデバイスデータが取り込まれます。

なお、通常デバイスから送信されたデータは16進数の文字列で構成されていますが、CData REST Driverであらかじめ扱いやすい下腿に分解されるように構成しています。

そのため、TemperatureやHumidityの項目をそのまま利用可能です。

f:id:sugimomoto:20200107101258p:plain

なのでそのままPowerBIの折れ線グラフなどで分析値として利用可能です。

f:id:sugimomoto:20200107101305p:plain

バイスデータを参照するにあたっての注意事項

なお、デバイスから送信されたデータは24時間だけ保存されているため、PowerBI経由で参照できるデータも24時間分に限定されます。

もし24時間以前のデータを参照したい場合は別途RDBやDWHなどに保存するのが良いでしょう。

CData では DataSyncという製品でMySQLSQL Server・BigQueryといったサービスにデータをレプリケートすることが可能です。

こちらでも是非ためしてみてください。

おわりに

本記事では PowerBI をもとに解説しましたが、CData REST DriverではPowerBI以外のBIツールやアナリティクスツールの接続もサポートしています。

以下のURLで各ツールの接続リファレンスを公開していますので、普段使っているツールから是非試してみてください。

http://www.cdata.com/jp/drivers/rest/

f:id:sugimomoto:20200107101317p:plain