[Tableau] Web データコネクタ (WDC) 機能を使ってみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

車輪開発大好きおたいがです。こんにちは。( 挨拶 )

今回、Tableau 9.1 から実装された Web データコネクタ ( 以後 WDC ) を試してみたので、実際に動かすまでに行った工程をまとめておきます。

WDC とは、Web に接続してデータを抽出するためのコネクタ機能 ( JavaScript コードを含む HTML ファイル ) です。

WDC の構築

Web Data Connector SDK の取得

WDC には専用の JavaScript SDK が用意されており、下記 URL のいずれかから取得することが可能です。

WDC 初期化

var myWDC = tableau.makeConnector();

tableau.makeConnector() メソッド
http://onlinehelp.tableau.com/current/api/wdc/ja-jp/WDC/wdc_ref.htm#tableau_functions_makeConnector

データソースのフィールド情報取得 ( 構築 )

myWDC.getColumnHeaders = function() {
  var fieldNames = ['Field_1', 'Field_2', 'Field_3', 'Field_4', 'Field_5', 'Field_6'];
  var fieldTypes = ['string', 'date', 'float', 'float', 'float', 'float'];
  tableau.headersCallback(fieldNames, fieldTypes);
};

wdc.getColumnHeaders() メソッドでフックして、tableau.headersCallback() メソッドで値を返却します。

wdc.getColumnHeaders() メソッド
http://onlinehelp.tableau.com/current/api/wdc/ja-jp/WDC/wdc_ref.htm#connector_getColumnHeaders

データ取得 ( 生成 )

myWDC.getTableData = function(lastRecordToken) {
  var dataToReturn = [];
  var hasMoreData = false; //データソースにデータがさらに存在するかどうかを示すブール値
  …
  dataToReturn.push({
    'Field_1' : 'hoge',
    'Field_2' : new Date(),
    'Field_3' : 1.234,
    'Field_4' : 1.234,
    'Field_5' : 1.234,
    'Field_6' : 1.234
  });
  …
  tableau.dataCallback(dataToReturn, lastRecordToken, hasMoreData);
};

wdc.getTableData() メソッドでフックして、tableau.dataCallback() メソッドで値を返却します。

wdc.getTableData() メソッド
http://onlinehelp.tableau.com/current/api/wdc/ja-jp/WDC/wdc_ref.htm#connector_getTableData

WDC 登録

tableau.registerConnector(myWDC);

tableau.registerConnector() メソッド
http://onlinehelp.tableau.com/current/api/wdc/ja-jp/WDC/wdc_ref.htm#tableau_functions_registerConnector

データ収集トリガー時の処理

var submitHandler = function() {
  tableau.connectionName = 'Stock Data for ' + dataName;
  tableau.connectionData = dataName;
  tableau.submit();
};

tableau.submit() メソッド
http://onlinehelp.tableau.com/current/api/wdc/ja-jp/WDC/wdc_ref.htm#tableau_functions_submit

WDC サンプル

私たちの業種に馴染みのある米国主要銘柄 (Amazon, Twitter, Google, Apple) の株価情報を Yahoo! Finance API 経由で取得する WDC サンプルを用意しました。

具体的な実装コードはこちらをご確認ください。

Tableau Desktop から WDC 接続

Tableau Desktop から前述のサンプル WDC に 接続して、データソースを抽出します。

[接続] -> [Web データコネクタ] を開く

tableau-wdc-001

上記サンプル URL を入力して WDC を展開

tableau-wdc-002

任意の銘柄ボタンを押してデータソースを抽出

tableau-wdc-003

抽出完了

tableau-wdc-004

あとはお好みで可視化してください

tableau-wdc-005

さいごに

Tableau Web データコネクタを使用すれば、Web を経由したデータソースの構築が可能なので、簡単に色々なマッシュアップ WDC を作ることができ、可視化・分析がより一層捗りそうな気がしました。