CData Software Blog

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

請求書作成・見積書発行クラウドサービス boardのデータをAPI経由でBIツールのTableauに取り込む

こんにちは。CData Software Japan リードエンジニアの杉本です。

今日は board のAPIを利用して、BIツール Tableau にデータを取り込み、可視化する方法を紹介したいと思います。

https://the-board.jp/

f:id:sugimomoto:20200503230345p:plain

board とは?

請求書作成・見積書発行の機能を提供するクラウドベースの経営管理システムです。

f:id:sugimomoto:20200503230357p:plain

案件管理を軸としながら、見積書・発注書・発注請書・納品書・検収書・請求書・領収書作成がとてもスムーズに実施できるサービスです。

f:id:sugimomoto:20200503230404p:plain

また、以下のリファレンスにもある通り、ほとんどの機能・データをAPI経由で操作できるようになっており、外部とのデータ連携がとても柔軟に実現できるようになっています。

https://developers.the-board.jp/doc/index.html

f:id:sugimomoto:20200503230412p:plain

今回はこの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

f:id:sugimomoto:20200503230420p:plain

また、今回は Tableau での紹介に留まりますが、現在BIツールは様々な製品が世の中出回っていて、Microsoft PowerBIを使っていたり、Wingarc MotironBoardを使っていたりと、自身が使っている製品それぞれで各APIを理解したカスタム対応が必要になってしまいます。

f:id:sugimomoto:20200503230428p:plain

そのような仕様への対応、各種BIツールからAPIに接続する際の抽象化の方法として、この記事ではCDataで提供するREST Driver(ODBCJDBCADO.NETなど)を利用します。

この中間レイヤーで各APIのカスタム仕様を取り込むことで、BIツール間での差異を無くし、またBIツール側が要求するアドホックなクエリ文(いわゆるSQLでのWhere句)やページネーション、認証周りをサポートします。

f:id:sugimomoto:20200503230437p:plain

手順

それでは実際に Tableau と board API の接続方法を解説していきます。

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

まず board API を CData REST DeiverがSQLとして解釈できるように設定ファイルを作成します。

board APIでは顧客情報や案件情報等にアクセスできる多くのリソースが提供されています。今回は予め私が作成した以下の設定ファイル(RSDファイル)を利用します。これは独自のXMLで定義されていますが、ユーザー自身でカスタマイズして作成することも可能です。

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

github.com

f:id:sugimomoto:20200503230500p:plain

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

CData REST ODBC Driverのインストール

続いて Tableau からの接続のために必要となるCData REST Driverをインストールします。

以下のURLからCData REST ODBC Driverの30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。

https://www.cdata.com/jp/drivers/rest/download/odbc/

f:id:sugimomoto:20200115120319p:plain

f:id:sugimomoto:20200115120325p:plain

ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。

※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。

インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。

以下の項目をセットし、保存します。 boardの接続にはAPIキーとAPIトークンが必要となるため、それを追加プロパティとして設定します。APIキーとAPIトークンの取得方法はこちらの記事を参考にしてください。

  • Location=C:\CData_REST\board;
  • Other="APIToken=YOUR_API_TOKEN;APIKey=YOUR_API_KEY"

f:id:sugimomoto:20200503230508p:plain

以上で、CData REST Driverの準備は完了です。

Tableau からの接続

それでは早速 Tableau から接続してみましょう。

Tabelauを立ち上げて、「その他」のメニューから「その他のデータベース(ODBC)」を選択します。

f:id:sugimomoto:20200503230524p:plain

DSNの一覧から先程作成した「CData REST Source」を選択し、「接続」→「サインイン」をクリックします。

f:id:sugimomoto:20200503230532p:plain

すると、予め設定ファイルで定義されたboard のテーブル一覧にアクセスできるようになります。

あとは使いたいテーブルを選択するだけで、そのまま board にデータがロードされます。今回は案件データを扱いたいので、「Projects」テーブルを配置し、プレビューを実行してみました。

内部ではboard APIがCData REST Driver経由でアドホックに実行されて、データをローディングします。

f:id:sugimomoto:20200503230538p:plain

あとは、Tableauの機能でビジュアライズするだけです。案件(Projects)テーブルには、案件の見積り金額や案件名、案件の状態などのラベル・数値が提供されているので、現在の会社の案件状況を手軽に可視化することができます。

f:id:sugimomoto:20200503230544p:plain

おわりに

本記事では Tableau をもとに解説しましたが、CData REST Driverでは Tableau 以外のBIツールやアナリティクスツールの接続もサポートしています。

以下のURLで各ツールの接続リファレンスを公開していますので、普段使っているツールから是非試してみてください。

http://www.cdata.com/jp/drivers/rest/

f:id:sugimomoto:20200115120402p:plain