こんにちは。CData Software Japan リードエンジニアの杉本です。
本記事では データレプリケーションツールのCDataSync を使って、SenseWay Mission Connect のREST APIで取得できるデータを Google BigQuery に連携し、分析する方法を紹介したいと思います。
SenseWay Mission Connect とは?
SenseWay Mission Connect(センスウェイ ミッションコネクト)とは、IoTに必要な通信であるLPWAのLoRaWAN™ を用いた日本全国で活用できるIoT通信プラットフォームサービスです。
https://www.senseway.net/
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を経由して取得することができます。また、今回は利用していませんがデバイスへリクエストを送信することも可能です。
実現内容
SenseWay Mission Connect ではデバイスから定期的に送信されたデータを REST API経由でまとめて取得することが可能になっています。
ただし、SenseWay Mission Connect 上に保存されるデバイスデータは過去24時間分のみとなっており、もし長期間にわたるデータを可視化・分析したい場合は別途RDBやDWHなどへ連携しておく必要があります。
そこで本記事では、クラウドサービスからRDB・DWHへの自動レプリケーション・データ連携を可能にするノーコーディングツールのCData Syncを使って、
https://www.cdata.com/jp/sync/
SenseWay Mission Connect から取得できるデバイスデータをGoogle BigQuery に連携し、Google Data Portalで可視化する方法を紹介します。
必要なもの
- Google BigQuery・Data Portalが利用可能な GCPアカウント
- SenseWay Mission Connect アカウント
- CData Sync
手順
それでは実際に PowerBI と SenseWay Mission Connect の接続方法を説明します。
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 各種 CDataSync REST コネクタ がSQLとして解釈できるように設定ファイルを作成します。
以下のGitHubから保存してください。
github.com
保存先フォルダは後ほど使用するので「C:\CData_REST\SenseWay」といった書き込み可能な任意のフォルダに配置してください。
Google BigQuery の準備
まずは、データの格納先となる Google BigQueryのプロジェクトとデータセットを構成しておきます。
なお、今回はあらかじめ専用のアカウントを作って対応しています。
手順は特に難しくありません。GCPの管理コンソールへ移動し、新しいプロジェクトを作成
BigQuery に移動し、プロジェクト配下にデータセットを作っておきます。ここに連携結果がテーブルとして格納されます。
以上で BigQuery 側の準備は完了です。
CDataSyncのインストール
それでは、取得した情報を元にCDataSyncの設定を行っていきましょう。
CDataSyncはインストール型のソフトウェアなので、以下のURLからダウンロードして、任意のPCでセットアップを行います。
https://www.cdata.com/jp/sync/
セットアップ後、CData Syncの画面がブラウザで立ち上がるので、セットアップ時に入力したパスワードとユーザー名「admin」を入力して、ログインします。
ログイン後「情報」タブに移動し、「30日間の評価版をアクティベート」を行えば、CDataSyncの初期設定は完了です。
REST データソースの設定
まずはデータのSyncを行うためのデータソースの設定を行っていきましょう。
CDataSyncでは任意のデータソースを自由に追加して、連携することが可能です。
デフォルトでは REST データソースが含まれていないため、「接続」に移動し「+ Add More」をクリックし、追加を行います。
一覧の中から「REST」を検索し、追加します。
追加後、CDataSyncが再起動します。再起動後、データソースの一覧から「REST」が選択できるようになるので、これを選択し接続設定を行います。
接続設定では、「接続文字列」を選択して、以下の項目をセットし、保存します。
- Location=C:\CData_REST\SenseWay;Other="SenseWayUser=XXXXX;SenseWayPassword=XXXXX;DevEUI=XXXXX;";
OtherにはSenseWay Mission Connect にログインするためのユーザーIDとパスワードを指定します。また、もしデバイスをあらかじめ指定する場合はDevEUIの値を指定してください。
BigQueryへの同期先設定
続いて、同期先となるBigQueryへの接続を構成します。
「接続」→「同期先」から「Google BigQuery」を選択し
あらかじめ作成しておいた、「ProjectId」と「Dataset Id」を入力し、「接続」をクリックします。
クリックすると、OAuthの認証プロセスが開始されますので、対象アカウントでログインし、アクセス許可を承認してください。承認後、設定を保存すれば準備完了です。
ジョブの作成
それでは実際にジョブを作成し、データをBigQueryに連携してみましょう。
ジョブのタブから「ジョブを作成」をクリックし
事前に構成した「SenseWay」と「BigQuery」を、ソースと同期先としてそれぞれ構成します。
次に連携するデータを決定するために、「テーブルを追加」をクリックし
DeviceDataテーブルを選択します。
最後にスケジュールタブから日次の処理にするためにスケジューラーを設定します。これで1日1回、BigQueryへ最新のデータが同期されます。
後は設定を保存すれば、完了です。
手動実行
手動実行はテーブルタブから対象となるテーブルを選択し、「実行」ボタンをクリックすることで実施可能です。
正常に同期されると、以下のようにBigQuery上でデータが閲覧できるようになります。
Google Data Portal でビジュアライズ
あとはBigQueryが接続できるBIツール・サービスであれば、そのまま分析ができるようになります。
例えばGCPのサービスで提供されている Google Data Portalの場合
Google Data Portalのトップ画面にアクセスし、空のレポートを作成し
新しいデータソースの作成から
BigQueryに接続します。
最初、データ接続の承認が必要なので、承認処理を実施し
連携されたテーブルを選択
あとは「レポートに追加」をクリックすればOKです。
これで Google Data Portal の機能を使って、分析・可視化を行うことができます。
さいごに
本記事では、SenseWay Mission Connect のデータを BigQueryに連携しましたが、CDataSyncではBigQuery以外にも AmazonRedShiftやAzure SQL Serverといった多様な連携先をサポートしています。
是非普段皆さんの会社でお使いのDWH・データベースに同期してみてください。
関連コンテンツ