CData Software Blog

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

SenseWay Mission Connect REST APIで取得したデータをGoogle BigQueryへ定期的に連携する:CData Sync

こんにちは。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/

f:id:sugimomoto:20200107112931p:plain

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

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

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

f:id:sugimomoto:20200107113019p:plain

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

f:id:sugimomoto:20200107112953p:plain

実現内容

SenseWay Mission Connect ではデバイスから定期的に送信されたデータを REST API経由でまとめて取得することが可能になっています。

ただし、SenseWay Mission Connect 上に保存されるデバイスデータは過去24時間分のみとなっており、もし長期間にわたるデータを可視化・分析したい場合は別途RDBやDWHなどへ連携しておく必要があります。

そこで本記事では、クラウドサービスからRDB・DWHへの自動レプリケーション・データ連携を可能にするノーコーディングツールのCData Syncを使って、

http://www.cdata.com/jp/sync/

f:id:sugimomoto:20200107113029p:plain

SenseWay Mission Connect から取得できるデバイスデータをGoogle BigQuery に連携し、Google Data Portalで可視化する方法を紹介します。

f:id:sugimomoto:20200107113036p:plain

必要なもの

  • 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 にアクセスし、ログインを行い

f:id:sugimomoto:20200107113044p:plain

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

f:id:sugimomoto:20200107113051p:plain

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

f:id:sugimomoto:20200107113057p:plain

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

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

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

github.com

f:id:sugimomoto:20200107113103p:plain

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

Google BigQuery の準備

まずは、データの格納先となる Google BigQueryのプロジェクトとデータセットを構成しておきます。

なお、今回はあらかじめ専用のアカウントを作って対応しています。

手順は特に難しくありません。GCPの管理コンソールへ移動し、新しいプロジェクトを作成

f:id:sugimomoto:20200107113111p:plain

BigQuery に移動し、プロジェクト配下にデータセットを作っておきます。ここに連携結果がテーブルとして格納されます。

f:id:sugimomoto:20200107113116p:plain

以上で BigQuery 側の準備は完了です。

CDataSyncのインストール

それでは、取得した情報を元にCDataSyncの設定を行っていきましょう。

CDataSyncはインストール型のソフトウェアなので、以下のURLからダウンロードして、任意のPCでセットアップを行います。

https://www.cdata.com/jp/sync/

f:id:sugimomoto:20200107113122p:plain

セットアップ後、CData Syncの画面がブラウザで立ち上がるので、セットアップ時に入力したパスワードとユーザー名「admin」を入力して、ログインします。

f:id:sugimomoto:20200107113128p:plain

ログイン後「情報」タブに移動し、「30日間の評価版をアクティベート」を行えば、CDataSyncの初期設定は完了です。

f:id:sugimomoto:20200107113135p:plain

REST データソースの設定

まずはデータのSyncを行うためのデータソースの設定を行っていきましょう。

CDataSyncでは任意のデータソースを自由に追加して、連携することが可能です。

デフォルトでは REST データソースが含まれていないため、「接続」に移動し「+ Add More」をクリックし、追加を行います。

f:id:sugimomoto:20200107113139p:plain

f:id:sugimomoto:20200107113144p:plain

一覧の中から「REST」を検索し、追加します。

f:id:sugimomoto:20200107113150p:plain

追加後、CDataSyncが再起動します。再起動後、データソースの一覧から「REST」が選択できるようになるので、これを選択し接続設定を行います。

f:id:sugimomoto:20200107113154p:plain

接続設定では、「接続文字列」を選択して、以下の項目をセットし、保存します。

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

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

f:id:sugimomoto:20200107113200p:plain

BigQueryへの同期先設定

続いて、同期先となるBigQueryへの接続を構成します。

「接続」→「同期先」から「Google BigQuery」を選択し

f:id:sugimomoto:20200107113206p:plain

あらかじめ作成しておいた、「ProjectId」と「Dataset Id」を入力し、「接続」をクリックします。

クリックすると、OAuthの認証プロセスが開始されますので、対象アカウントでログインし、アクセス許可を承認してください。承認後、設定を保存すれば準備完了です。

f:id:sugimomoto:20200107113211p:plain

ジョブの作成

それでは実際にジョブを作成し、データをBigQueryに連携してみましょう。

ジョブのタブから「ジョブを作成」をクリックし

f:id:sugimomoto:20200107113216p:plain

事前に構成した「SenseWay」と「BigQuery」を、ソースと同期先としてそれぞれ構成します。

f:id:sugimomoto:20200107113221p:plain

次に連携するデータを決定するために、「テーブルを追加」をクリックし

f:id:sugimomoto:20200107113226p:plain

DeviceDataテーブルを選択します。

f:id:sugimomoto:20200107113231p:plain

最後にスケジュールタブから日次の処理にするためにスケジューラーを設定します。これで1日1回、BigQueryへ最新のデータが同期されます。

f:id:sugimomoto:20200107113236p:plain

後は設定を保存すれば、完了です。

手動実行

手動実行はテーブルタブから対象となるテーブルを選択し、「実行」ボタンをクリックすることで実施可能です。

f:id:sugimomoto:20200107113242p:plain

正常に同期されると、以下のようにBigQuery上でデータが閲覧できるようになります。

f:id:sugimomoto:20200107113248p:plain

Google Data Portal でビジュアライズ

あとはBigQueryが接続できるBIツール・サービスであれば、そのまま分析ができるようになります。

例えばGCPのサービスで提供されている Google Data Portalの場合

Google Data Portalのトップ画面にアクセスし、空のレポートを作成し

f:id:sugimomoto:20200107113253p:plain

新しいデータソースの作成から

f:id:sugimomoto:20200107113259p:plain

BigQueryに接続します。

f:id:sugimomoto:20200107113306p:plain

最初、データ接続の承認が必要なので、承認処理を実施し

f:id:sugimomoto:20200107113311p:plain

連携されたテーブルを選択

f:id:sugimomoto:20200107113317p:plain

あとは「レポートに追加」をクリックすればOKです。

f:id:sugimomoto:20200107113322p:plain

これで Google Data Portal の機能を使って、分析・可視化を行うことができます。

f:id:sugimomoto:20200107113328p:plain

さいごに

本記事では、SenseWay Mission Connect のデータを BigQueryに連携しましたが、CDataSyncではBigQuery以外にも AmazonRedShiftやAzure SQL Serverといった多様な連携先をサポートしています。

f:id:sugimomoto:20200107113401p:plain

是非普段皆さんの会社でお使いのDWH・データベースに同期してみてください。