TableauによるプリザンターAPI接続

本記事では、Tableau国産オープンソースのWebデータベースプリザンター」とのAPI連携についてご紹介していきたいと思います。

API連携

Tableauは、各種データストレージ・システムとの連携機能を提供しており、そのうちの一つにWDC(Web Data Connector)と呼ばれる、Web上のデータを取り込むフレームワークがあります。
一方、Webデータベースであるプリザンターは、内部レコードの操作を可能とするAPI機能を提供しています。
そこでここでは、AmazonEC2上に配置したプリザンターから、Tableauにデータを取り込むAPI連携の例を取り上げたいと思います。

なお、記事執筆(動作確認)時のバージョンは以下の通りです。
【Tableau Desktop】2018.1.1
【プリザンター】0.48.15

AmazonEC2へのプリザンター配置は、こちら

データ

サンプル・データ

今回はサンプル・データとして、「1世帯当たり1か月間の収入と支出(勤労者世帯)」(図表1参照)を加工したデータを用いました。

図表1:サンプルデータ

出所:「1世帯当たり1か月間の収入と支出」(家計調査年報:総務省統計局)

データの格納

プリザンターへのデータ格納は、記録テーブル機能を用いました(図表2参照)。
プリザンターのテーブルの設定やデータのインポートについては、本家サイトに詳細な説明がありますので、そちらをご参照ください。

図表2:プリザンターへのデータ格納イメージ

出所:「プリザンター」(Implem Inc.)

プリザンターからのデータ取得

概念図

WDCのフレームワークを通して、Tableauがプリザンターからデータを取得する大まかな流れは、以下のようになります(図表3参照)。

  • WDCサーバ*)からスクリプトを取得
  • プリザンターサーバからAPI経由にてデータを取得

*) WDCサーバに必要とされる機能は、javascriptを含むhtmlファイルの受け渡し機能のみとなるため、PC内に立ち上げた簡易なlocalサーバでも構いません。

図表3:概念図

サンプル・コード

収入データ取得コードと支出データ取得コードは、個別のコードとなります。

APIキー等の設定箇所

年度毎の支出データ要求箇所

*) リクエスト間隔をあけるために単純なループ処理を入れておりますが、HTTPは非同期なレスポンスを返すため、処理順序を保つ仕組みの導入が望まれます。

見える化

以下は、API経由で取得した「1世帯当たり1か月間の収入と支出」データを見える化したサンプルとなります。

【操作】
・「収入項目」フィルター:択一形式で収入項目を選択できます。
・「支出項目」フィルター:択一形式で支出項目を選択できます。


関連記事