こんにちは。CData Software Japan リードエンジニアの杉本です。
今日は board のAPIを利用して、BIツール Tableau にデータを取り込み、可視化する方法を紹介したいと思います。
board とは?
請求書作成・見積書発行の機能を提供するクラウドベースの経営管理システムです。
案件管理を軸としながら、見積書・発注書・発注請書・納品書・検収書・請求書・領収書作成がとてもスムーズに実施できるサービスです。
また、以下のリファレンスにもある通り、ほとんどの機能・データをAPI経由で操作できるようになっており、外部とのデータ連携がとても柔軟に実現できるようになっています。
https://developers.the-board.jp/doc/index.html
今回はこのAPIを使って、BIツールのTableauと連携する方法を紹介したいと思います。
データをどのように board API 経由で Tableau に取り込むのか?
Tableau ではWDC(Web Data Connector)などのカスタムAPIに接続するための方法が提供されていますが、独自のTableua内部APIへの理解とJavaScriptによる実装、各REST APIの仕様・認証・ページネーションなどの理解が必要であり、敷居は低くありません。
https://tableau.github.io/webdataconnector/docs/index.html
また、今回は Tableau での紹介に留まりますが、現在BIツールは様々な製品が世の中出回っていて、Microsoft PowerBIを使っていたり、Wingarc MotironBoardを使っていたりと、自身が使っている製品それぞれで各APIを理解したカスタム対応が必要になってしまいます。
そのような仕様への対応、各種BIツールからAPIに接続する際の抽象化の方法として、この記事ではCDataで提供するAPI Driver(ODBC・JDBC・ADO.NETなど)を利用します。
この中間レイヤーで各APIのカスタム仕様を取り込むことで、BIツール間での差異を無くし、またBIツール側が要求するアドホックなクエリ文(いわゆるSQLでのWhere句)やページネーション、認証周りをサポートします。
手順
それでは実際に Tableau と board API の接続方法を解説していきます。
REST データ処理用 API Profile の取得
まず board API を CData API Deiver がSQLとして解釈できるように設定ファイル(API Profile)を作成します。
board APIでは顧客情報や案件情報等にアクセスできる多くのリソースが提供されています。
通常はカスタムで作成する必要がありますが、boardに関してはCDataにて提供しているAPI Profileを利用することが可能です。
以下のURLからダウンロードしてください。
https://www.cdata.com/jp/apidriver/
保存先フォルダは後ほど使用するので「C:\API Profiles」といった書き込み可能な任意のフォルダに配置してください。
CData API ODBC Driverのインストール
続いて Tableau からの接続のために必要となるCData API ODBC Driverをインストールします。
以下のURLからCData API ODBC Driverの30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。
ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。
※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。
インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。
以下の項目をセットし、保存します。 boardの接続にはAPIキーとAPIトークンが必要となるため、それを追加プロパティとして設定します。APIキーとAPIトークンの取得方法はこちらの記事を参考にしてください。
以上で、CData API Driverの準備は完了です。
Tableau からの接続
それでは早速 Tableau から接続してみましょう。
Tabelauを立ち上げて、「その他」のメニューから「その他のデータベース(ODBC)」を選択します。
DSNの一覧から先程作成した「CData API Source」を選択し、「接続」→「サインイン」をクリックします。
すると、予め設定ファイルで定義されたboard のテーブル一覧にアクセスできるようになります。
あとは使いたいテーブルを選択するだけで、そのまま board にデータがロードされます。今回は案件データを扱いたいので、「Projects」テーブルを配置し、プレビューを実行してみました。
内部ではboard APIがCData API Driver経由でアドホックに実行されて、データをローディングします。
あとは、Tableauの機能でビジュアライズするだけです。案件(Projects)テーブルには、案件の見積り金額や案件名、案件の状態などのラベル・数値が提供されているので、現在の会社の案件状況を手軽に可視化することができます。
おわりに
本記事では Tableau をもとに解説しましたが、CData API Driverでは Tableau 以外のBIツールやアナリティクスツールの接続もサポートしています。
以下のURLで各ツールの接続リファレンスを公開していますので、普段使っているツールから是非試してみてください。
http://www.cdata.com/jp/drivers/rest/