Treasure Data × Tableau

この記事は約5分で読めます。
sponsored link

Treasure DataをDesktopに接続

接続手順 – 認証

  1. Prestoのドライバー (Simba Presto 1.1.pkg) をDL
  2. Desktop の[データソース]から[Presto]を選択
  3. 必要な項目を入力(表参照)
  4. 完了
項目 入力内容
サーバー api-presto.treasuredata.com
ポート 443
カタログ td-presto
スキーマ (空のままでOK)
認証 ユーザー名
ユーザー名 *(自分のMasterKey)
SSLが必須 チェック✔︎

※Master Keyの取得方法は下記画像を参照してください。

Desktopの [データソース] 画面

Treasure Data から Master Key をコピペ

[My Setting] > [My Profile] > [Master Key] > コピペ

接続手順 – Desktop での読み込み

次は Desktop でスキーマやテーブルを読み込みたいのですが、デフォルトでは空で表示されます。

こちらはスキーマで小さな虫眼鏡アイコンをクリックすれば解決するので、安心して進めてください。

あとは該当スキーマとテーブルを選択しビューにドラッグ&ドロップすれば完了です。

接続方法 – ライブ vs. 抽出

Treasure Data は月額固定制なので “ライブ” のまま最新のデータのクエリを発行し続けるのも良いのですが、Tableau でのパフォーマンス性でいうと “抽出” の方が良いです。

前回の記事では、ライブ接続で最もパフォーマンスを発揮できるとお伝えしましたが、それは BigQuery と Tableau の相性が極めて良いからです。(多分)

Tableau 公式のベストプラクティスでは「基本的に抽出の方がライブよりパフォーマンスが高い」と言及されているので、今回の Treasure Data の場合もそれが該当します。

①最新データにアクセスするには「ライブ」
(フィルタの適用, 自動更新OFF)
②ダッシュボード作成/運用では「抽出」
(データ軽量化)
③Treasure Data 側で そもそものデータ量を減らせないか を検討
(直近2年に絞る, 不要カラムの削除, データマートの用意..etc)

Treasure Dataの結果をServer/Onlineに出力

出力したいクエリを用意

SELECT COUNT(TD_TIME_FORMAT(time, 'yyyy-MM-dd hh:00:00', 'JST')) AS cnt
FROM test_table
WHERE TD_TIME_RANGE(time,'2021-01-01','2021-01-02','JST') 

※適当です。

Treasure Data でクエリを書く際には以下の点に注意してください。

・timeでフィルタをかけないと「WARNING: time index filtering is not set on」というエラーが出ます。
・timeはunixtimeで格納されているので、Tableauに取り込む前に文字列型に変えましょう

Authenticationsの設定

画面右上にある Export Results にチェックを入れ、Tableau 用に新たなエクスポート先(Create New Integration)を設定します。

項目 入力内容
Type Tableau Server
Name (任意)
Host(赤字部分) https://***.online.tableau.com/#/site/***/home
Username (Tableau ID: メールアドレス)
Password (Tableau パスワード)
Use SSL? チェック✔︎
Verify server certificate? チェック✔︎
Server version Server / Onlineを指定

Export Resultsの設定

先ほどの Authentication の設定が完了したら、そのまま Export Results の設定に入ります。

項目 入力内容
Datasource Name (任意: 新しいデータソース名)
Site ID(赤字部分) https://***.online.tableau.com/#/site/***/home
Project Name (Onlineのプロジェクト名)
Mode append(追加) / replace(置き換え)
Data Source Type hyper / tde
Extract File Chunk Size(in MB) (50〜512MBの間で指定)
Timezone Japan

設定ができたら右下の完了ボタンを押しましょう。

クエリ実行

Treasure Dataで書いたクエリを実行していきます。

※クエリを実行した段階で「javax.ws.rs.WebApplicationException: HTTP 401 Unauthorized」というエラーが出てしまったら、「Host, Username, Site ID, Project Name」が正しいか、そもそもTableauの権限はあるのか、を確認してください。

無事成功すると、Server/Onlineにデータがパブリッシュされます。

Appendix

↓私が実務でよく利用する関数を簡単にまとめた記事です。参考にどうぞ。

Treasure Dataでよく使う関数9選