データ連携

MotionBoardのWebAPIを使ってMotionBoardのデータをDataSpiderで外部に出力する

Ryosuke Ishii

はじめに

BIツールに限らず、あらゆるSaaSアプリはAPIを開放しています。そのツール内に保有しているデータベースに対しての外部プログラムからの入力や出力を形式を縛りながらも許可をしているのですね。この機能があることで、たとえば上位システムのデータをAPI経由で流し込んだり、ツール内のデータをAPI経由で出力したりして、ツール間連携が実現しやすくなります。

今回はその例のひとつとしてBIツールのひとつであるMotionBoardのデータをWeb API経由でETLツールであるDataSpiderでひっこぬいてみたいと思います。

置き換えて考えてみていただきたい

今回はMotionBoard、DataSpiderというツールをつかっていますが、「こんな感じでツールからツールへデータを渡せるんだ」とイメージしていただきたいのです。

TableauでもPower BIでもAPIは存在しますし、システム間連携はETLツールじゃなくてPythonでも構いません。

りょうさん
りょうさん

APIのできることを知っておくと、「あ、こんなことできるじゃん!」とひらめくきっかけになりますよ!

今回やりたいこと

MotionBoardでデータを集め・加工して、可視化する以外に、このデータをもっと他のアプリに渡したいというニーズが出てくると思います。
今回はMotionBoardで表示しているデータをWebAPIの機能を使って、外部に出力をしてみたいと思います。

今回使う機能はこちらです。

あわせて読みたい
アイテムのデータ取得操作のWeb API(CSV版)
アイテムのデータ取得操作のWeb API(CSV版)

プログラムでもAPIを叩いてデータ抽出が可能ですが、今回はETLツールであるDataSpiderからAPIを呼び出してみたいと思います。

実装してみる

今回の流れはこちらです。

  • MotionBoardで明細表をつくる
  • DataSpiderでデータを抽出する

MotionBoardで明細表をつくる

まずはMotionBoardから取得したいデータを選択し、明細表を作成します。
(集計したチャートなども選択可能ですが、ここでは明細表を選びます)

この明細表の[アイテムプロパティ]→[共通]タブをクリックし、[WebAPIでのデータ取得を許可する]にチェックを入れます。
そして以下の情報をおさえておきましょう。

  • ボードパス
  • ボード名
  • アイテムID

これらはAPIを呼び出す際に使用をします。

DataSpiderでデータを抽出する

今回解説するところは赤枠の中です。
それ以外はETLツールで効率的にログや実行判断をするライブラリです。
それらについてはこちらで解説をしています。
DataSpiderやETLツールを使う人にはぜひご覧になっていただきたい内容です。

あわせて読みたい
【DataSpider】使い勝手の良いライブラリたちを公開します
【DataSpider】使い勝手の良いライブラリたちを公開します

グローバルリソースの設定

グローバルリソースのRESTを選択します。
URLはMotionBoard Cloudか、MotionBoard Cloud for Salesforceか、MotionBoardオンプレかによって変わります。

詳細はこちらをご覧ください。

あわせて読みたい
Web APIの利用方法(リクエストURL)
Web APIの利用方法(リクエストURL)

スクリプト設定

今回のスクリプトではWebAPIで実行した結果をCSVにして、そのCSVをDr.Sumに格納しています。
今回の解説ではWebAPIをCSVにするところまでを解説します。青枠のところですね。

WebAPI実行(POST実行処理)

まずはWebAPIの実行の定義を作ります。
使用するコンポーネントは[REST]の[POST実行処理]です。

接続先は先ほど設定したグローバルリソースを選択します。

パスは[rest/item/get/csv]
クエリパラメータは
 tenant:%{WebAPI_MBSF_テナント}  ←ここでは環境変数に入れていますがベタ打ちでOKです
 boardpath:先ほどMotionBoardの明細表を作ったボードのパス

リクエスト設定ではマルチパートフォームを選択します。

マルチパートフォームは下記を登録しておきます。
 id
 pw
 itemId
 readCount
種類はすべて文字列です。

レスポンス設定ではCSVをどこに出力するかを設定します。

RESTコンポーネントの設定は以上です。

定数入力(Mapper)

WebAPIで指定したマルチパートフォームに渡すデータを定義します。

私はユーザーIDやパスワードは環境変数に入れています。

アイテムIDは明細表のIDを入れます。

レコードカウントは固定値で[2147483647]を入れます。

設定は以上です。

こちらを実行するとMotionBoardのデータをCSVとして出力することが可能です。
他にもJSON形式にしたり、別のアプリに転送することも可能となります。

さいごに

冒頭でも述べたように、このような手法でツールからデータを抜いて、他のシステムへの連携をすることが可能です。

ぜひ普段つかっているツールでAPIがあるかを確認し、システム間連携をするとどんなメリットがあるか、検討していただけますと幸いです。

ABOUT ME
石井 亮介(りょうさん)
石井 亮介(りょうさん)
データパレード 代表取締役
㈱データパレードの代表取締役で高田馬場の町中華のChief Data Officerをしています。 BIツールのセールスエンジニア・システムエンジニア・カスタマーサクセス歴10年以上経験、データエンジニア領域とコンサルティングが得意です。BIツール研究所・DMS Cubeなどデータ系コミュニティーのアンバサダーをしています
記事URLをコピーしました