SlideShare a Scribd company logo
1 of 14
Download to read offline
Web Data Connector Deep Dive
Technical Support Engineer
Aki Iimura
そもそもなんでWeb Data Connector
 Tableauの外部接続機能拡張
 pluginモデルより「手軽」で「安全」な拡張インターフェイス
 “tableauwdc.js”が提供しているインターフェイス上で、自由なデータ取得拡張が可
能
Web Data Connectorの簡単なおさらい
<html>
<script
src=“tableauw
dc-x.x.x.js”>
Tableau内蔵ブラウザにロードされたJavaScriptを実
行することで、データを取得し、Tableauへ渡す
http
Web Server
JavaScript実行
Web Data ConnectorはWebサーバからサーブされる必
要があります
 該当のhtml/jsファイルを直接ブラウザにドラッグアンドドロップしても、動作しません
 必ず”http://”またはhttps://スキームでアクセスする必要があります
 前回使ったwebrick.exeや”python –mSimpleHTTPServer”など、簡易的な方
法でOK
 もちろん、別の(用途)のWebサーバにおいておくことも可
Web Data Connectorは、なぜ「子ブラウザ」を開くのか
 TableauがWDC拡張として読み込むコードが安全かどうかは一概にはわからない
 「子ブラウザ」を開く理由は、そのURL欄で提供されているJavaScriptリソースを、
httpサーバのホスト名や、httpsの証明書で確認するため
 ポップアップした「子ブラウザ」上で「接続」ボタンを押すことは、ユーザーがそのWDC
コードの実行を許可することと同義
WDC JavaScriptコールバックのしくみ
元のWDCのJavaScriptに
追加されたコールバック関数
(がコールされる)
Web Data Connector 読み込みHTMLの骨格
<html>
<meta http-equiv="Cache-Control" content="no-store" />
<head>
<title>WDC for WORLD BANK indicator</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"
type="text/javascript"></script>
<script src="https://connectors.tableau.com/libs/tableauwdc-2.1latest.js"
type="text/javascript"></script>
<script src=“wb_wdc.js" type="text/javascript"></script>
</head>
<body>
<br>
<button type="button" id="submitButton">Get Stock Data</button>
</body>
</html>
Wdc.js読み込み
自作JS読み込み
トリガー
Web Data Connector 登録JavaScriptの骨格
(function () {
var myConnector = tableau.makeConnector();
myConnector.getSchema = function (schemaCallback) {
var tableInfo = {
...省略 //スキーマ定義JSON
};
schemaCallback([tableInfo]);
};
myConnector.getData = function(table, doneCallback) {
$.getJSON("http://apiserver.com/NY.GDP.MKTP.CD?format=json", function(resp) {
var tableData = [];
...省略 //取得データをループで回して
tableData.push(//アイテムごとにJSON化しtableDataへプッシュ//);
}
table.appendRows(tableData);
doneCallback();
});
};
tableau.registerConnector(myConnector);
})();
$(document).ready(function () {
$("#submitButton").click(function () {
tableau.submit();
});
});
tableauオブジェクトイ
ンスタンス作成
スキーマデータ定義
実データ取得
tableData配列に格納
コネクタ登録
トリガー->コネクタ
submit
WDCコード中のデータの定義やアクセスは、JSON形式
のデータで扱います
 JavaScript中、配列や連想配列の操作によって、スキーマの定義や、取得データの
格納をおこないます。
 JavaScript中では、JSON形式のデータが最も扱いやすいものです
JSONデータとは
 “JavaScript Object Notation”の略、XMLと同様にデータの集合を表現する
フォーマット
 XMLより簡潔な表現
 JavaScriptとの親和性が高い(XMLはJavaとの親和性が高い)
 文字コードはUTF-8が前提
JSONデータの表現
 配列 (Array)
 文字列や数値などを並置したもの
 角カッコ、スクエアブラケット内に、要素をカンマ区切りで並置
 例 [“リンゴ”, “バナナ”, 34, 400]
 連想配列 (Hash, Dictionary)
 キーとその値のペアの集合
 波カッコ、カーリーブラケット内に、「”キー1”: 値1, “キー2”:値2, ….」の形式で表現
 例: {"郵便番号":"915-0023","県名":"福井県"}
 配列と連想配列はそれぞれがそれぞれの要素として持つことができる
 例: [{"郵便番号":"915-0023","県名":"福井県"}, {"郵便番号":"196-0002","県名":"東京都"}]
JSONデータの操作
 配列の要素にアクセス
 要素番号を[n]としてアクセス(インデックスは0から開始)
 ary = [“リンゴ”, “バナナ”, 34, 400]
ary[1] // -> バナナ
 連想配列 の要素にアクセス
 要素の値は[キー]としてアクセス
 hash = {"郵便番号":"915-0023","県名":"福井県"}
hash[“郵便番号”] // -> “915-0023”
 複合データへのアクセス
 data = [{"郵便番号":"915-0023","県名":"福井県"}, {"郵便番号":"196-0002","県名":"東京
都"}]
data[1][“県名”] // -> “東京都”
次回予告
 日時:第2回 6月7日(木) 19:00 受付開始
 場所: Tableau Hub @ GINZA SIX
 これまでの1回、1.5回のイベントを経験して、「こんなWDCつくってみた!」とか「開発中ここに悩んだ」な
ど、体験談をシェアする会です
 「ネタ」を共有いただける方は、ふるってTDC#wdcチャンネルにポストください
 詳しくは : URL : https://techplay.jp/event/669194
Tableau Developers Club - Web Data Connector Deep Dive

More Related Content

Similar to Tableau Developers Club - Web Data Connector Deep Dive

SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
 
Html5, Web Applications 2
Html5, Web Applications 2Html5, Web Applications 2
Html5, Web Applications 2
totty jp
 
HttpとTelnetをつなぐ何か
HttpとTelnetをつなぐ何かHttpとTelnetをつなぐ何か
HttpとTelnetをつなぐ何か
ShigekiYamada
 
[Ps11]ネットワーク第4回
[Ps11]ネットワーク第4回[Ps11]ネットワーク第4回
[Ps11]ネットワーク第4回
Yukiko Kato
 
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
Amazon Web Services Japan
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19
Hideki Hashizume
 
JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要
Shumpei Shiraishi
 

Similar to Tableau Developers Club - Web Data Connector Deep Dive (20)

Ajax basic
Ajax basicAjax basic
Ajax basic
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
 
Html5, Web Applications 2
Html5, Web Applications 2Html5, Web Applications 2
Html5, Web Applications 2
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
 
20050917
2005091720050917
20050917
 
ネットワーク第5回
ネットワーク第5回ネットワーク第5回
ネットワーク第5回
 
クラウドを活用したシステム開発における、ネットワークのInfrastructure as Code
クラウドを活用したシステム開発における、ネットワークのInfrastructure as Codeクラウドを活用したシステム開発における、ネットワークのInfrastructure as Code
クラウドを活用したシステム開発における、ネットワークのInfrastructure as Code
 
HttpとTelnetをつなぐ何か
HttpとTelnetをつなぐ何かHttpとTelnetをつなぐ何か
HttpとTelnetをつなぐ何か
 
勉強会資料①
勉強会資料①勉強会資料①
勉強会資料①
 
[Ps11]ネットワーク第4回
[Ps11]ネットワーク第4回[Ps11]ネットワーク第4回
[Ps11]ネットワーク第4回
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
 
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
 
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
 
G0042 h
G0042 hG0042 h
G0042 h
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
20100313
2010031320100313
20100313
 
Testing and packaging WebRTC Stack
Testing and packaging WebRTC StackTesting and packaging WebRTC Stack
Testing and packaging WebRTC Stack
 
JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要
 
20080213
2008021320080213
20080213
 

Tableau Developers Club - Web Data Connector Deep Dive