こんにちは。CData Software Japan リードエンジニアの杉本です。
今日は CData ODBC REST Driver を使って、SenseWay Mission Connect のREST APIで取得できるデータを Power BIから分析する方法を紹介したいと思います。
SenseWay Mission Connect とは?
SenseWay Mission Connect(センスウェイ ミッションコネクト)とは、IoTに必要な通信であるLPWAのLoRaWAN™ を用いた日本全国で活用できるIoT通信プラットフォームサービスです。
SenseWay Mission Connect では 2019年12月にREST APIがリリースされており、今回はこのREST APIを活用しました。
https://www.senseway.net/press-release/rest-api_20191210/
デバイスはセンスウェイ社からお借りした以下のようなLoRaWAN湿度温度センサーで、それをセンスウェイのサーバーに送信するゲートウェイを通じて、やり取りするようになっています。
このデバイスから送信されたデータは SenseWay Mission Connect のWebサービスに渡り、REST APIを経由して取得することができます。また、今回は利用していませんがデバイスへリクエストを送信することも可能です。
実現イメージ
今回は Microsoft PowerBI からSenseWay Mission Connect に接続しますが、SenseWay Mission Connect は単純にツールと接続することはできません。PowerBI がどのようにWeb API側へリクエストを投げるべきかの判断材料やメタデータの情報が無いためです。
そこで、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に変換してツールに返します。
これにより、各種ツールからアドホックにSQLによるリクエストがあったタイミングで最新のデータを API から取得することが可能です。
なお、今回はPowerBIから接続としましたが、TableauやQlikなどからも同じように接続が可能です。
手順
それでは実際に PowerBI と SenseWay Mission Connect の接続方法を説明します。
PowerBI は以下URLから予めデスクトップ版をダウンロードしておいてください。
SenseWay Mission Connect REST API の有効化
SenseWay Mission Connect REST API を使うためには、デバイスごとのREST API機能を有効化しておく必要があります。
有効化はSenseWay Mission Connect のWeb画面から行います。
以下のようにSenseWay Mission Connect にアクセスし、ログインを行い
デバイス管理から「編集」をクリック
「REST API」を「使用する」に切り替えて、「更新」をクリックすればOKです。
REST データ処理用 RSDファイルの作成
次に、SenseWay Mission Connect REST API を CData 各種 REST DeiverがSQLとして解釈できるように設定ファイルを作成します。
以下のGitHubから保存してください。
保存先フォルダは後ほど使用するので「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/
ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。
※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。
インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。
以下の項目をセットし、保存します。
OtherにはSenseWay Mission Connect にログインするためのユーザーIDとパスワードを指定します。また、もしデバイスをあらかじめ指定する場合はDevEUIの値を指定してください。
- Location=C:\CData_REST\SenseWay;
- Other="SenseWayUser=XXXXX;SenseWayPassword=XXXXX;DevEUI=XXXXX;";
以上で、CData REST Driverの準備は完了です。
PowerBI からの接続
それでは、PowerBIから CData REST ODBC Driverに接続します。
PowerBI デスクトップを立ち上げて「データを取得」をクリックし
ODBC 接続を選択します。
データソース名から先程ODBCで登録したDSNを選択し、Windows認証で接続します。
すると、以下のようにテーブル化されたSenseWay Mission Connect REST APIテーブルが選択できるようになります。
以上で、Power BIにフラットな形で SenseWay Mission Connect のデバイスデータが取り込まれます。
なお、通常デバイスから送信されたデータは16進数の文字列で構成されていますが、CData REST Driverであらかじめ扱いやすい下腿に分解されるように構成しています。
そのため、TemperatureやHumidityの項目をそのまま利用可能です。
なのでそのままPowerBIの折れ線グラフなどで分析値として利用可能です。
デバイスデータを参照するにあたっての注意事項
なお、デバイスから送信されたデータは24時間だけ保存されているため、PowerBI経由で参照できるデータも24時間分に限定されます。
もし24時間以前のデータを参照したい場合は別途RDBやDWHなどに保存するのが良いでしょう。
CData では DataSyncという製品でMySQLやSQL Server・BigQueryといったサービスにデータをレプリケートすることが可能です。
こちらでも是非ためしてみてください。
おわりに
本記事では PowerBI をもとに解説しましたが、CData REST DriverではPowerBI以外のBIツールやアナリティクスツールの接続もサポートしています。
以下のURLで各ツールの接続リファレンスを公開していますので、普段使っているツールから是非試してみてください。
http://www.cdata.com/jp/drivers/rest/