【TC19】ダッシュボードの表示が遅い… Tableau Doctorによる診断を受けてきました

はじめに

こんにちは。TechDivの宇治川です。
皆さんTableau Serverにパブリッシュしたダッシュボードの表示速度がなぜかすごく遅いという経験ございませんか? 私はその患者の1人です。本件、いろいろGoogleで検索してもなかなか良い情報は拾えませんでした。そこで今回はせっかくラスベガスまできたので本場のTableau Doctorにこの症状を診断してもらいました。
私ごとですが、最近急に「消化器科」「歯科」「内科」「眼科」にお世話になっていて、とうとう「データ科」の診断もするなんて、何事も健康を意識した生活が大事だと痛感しました。

目次

Tableau Doctor について

Tableau Doctorとは、技術的な課題の解決、開発したもののレビュー、高度なツールの極め方など、ダッシュボードを最高の形にするためにTableauエキスパートと1対1で対応する機会のことです。今回のTC19では1対1の相談で約45分間専任の医師に相談することができました。
参考:Tableau Doctorについて

この度は”Desktop Performance Tuning”という枠でTableau Doctor診断の申し込みをしました。受付でチェックインを済ませるとこんな感じの診察カードをもらいました。本物のお医者さんみたいな感じで、おしゃれだなと関心しました。

■表

■裏

環境について

今回の”ダッシュボードの表示が遅い”件について環境周りを簡単にご紹介致します。

・Tableau Desktopバージョン: 2019.3
・データサイズ:900MB
・Tableau Server上での表示速度:40秒
・データについて:PostgreSQL, Googleスプレッドシート

また今回はTableau Doctorに少しでもわかりやすく症状を説明するために予め資料を準備していきました。この資料はTableau Doctorからすごく理解しやすいと褒められました!前もってTableau Desktopのデータ準備だけでなくこのような簡単な資料を準備することをおすすめします。

自分でチャレンジしたこと

個人的にパッと思いついてチャレンジしたことは「使用していないディメンションとメジャーを非表示にする」という対応です。この対応によって表示速度は約2~3秒削減と少し改善することができましたが、使用していないディメンションとメジャー自体が少なく、あまりインパクトの大きい結果にならなかったという点と、今後もし非表示にしたディメンションとメジャーを使いたくなった時に融通が利かなくなってしまうと感じました。

Tableau Doctorのアドバイス

今回のTableau DoctorはTableau社のBryanさんが専任医として担当してくれました。
結論からご紹介すると”ダッシュボードの表示が遅い”件についての解決策は、以下の優先度順になると彼はアドバイスをくれました。

1. データソースを抽出し、データを自動的更新するように設定しパブリッシュする。
2. ダッシュボードのフィルターの数を減らし、フィルターアクションに置き換える。
3. ビュー内のマーク(データポイント)を減らす。
4. クロスタブスタイルのビジュアルを一連のチャートに置き換える。
5. 使用していないディメンションとメジャーを非表示にする。

こちらの1から5の概要ですが、1によって問題は60%~70%解決するとのことでした。また私自身先ほどご紹介した「使用していないディメンションとメジャーを非表示にする」は彼自身あまりおすすめしないが、解決策の1つとしてはあるとのことでした。おすすめしない理由としては、やはりそもそも将来的に使用するかもしれない、かつデータ全体の未来の可能性を引き出すためには残している方が絶対的にいい結果になるだろうと彼はおっしゃっていました。※あくまでも全てBryanさん自身の考え方とのこと。

ここからは各項目に対して詳しく説明させていただきます。

1. データソースを抽出し、データを自動的更新するように設定しパブリッシュする。


まずこちらなのですが、完全に私自身軽んじていました。なぜなら過去に他の業務の兼ね合いもありつつ業務時間内で、データを抽出し、抽出データをパブリッシュするのに結構な時間がかかったからです。※連続約1時間弱ほど(やり方が悪かったかもしれません)また、すごく待ったのに関わらず、何かしらエラーが出て最初からやり直しになったという経験があり、抽出パブリッシュは後回しになっていました。今回Doctorから表示が遅い問題は、この解決策により60%~70%解決すると言うアドバイスをいただき、抽出パブリッシュの時間はかなりかかるが、絶対対応しようと思いました。
参照:抽出データについて

簡単に抽出データの作り方を図にしてみました。1~4の順にクリックすると抽出データが作成できます。ご参考までに。

2. ダッシュボードのフィルターの数を減らし、フィルターアクションに置き換える。


こちらですが、すごくシンプルでわかりやすく合理的な解決策だと思いました。彼が言うにはビューはもちろんダッシュボードに表示されているフィルタにも対してもクエリを持っているとのことでした。例えば「1つのダッシュボードに1つのビューと4つのフィルターがある」場合は、合計5つのクエリが存在していることになります。この場合フィルターを2つ減らすと合計3つのクエリのみとなり速度の向上が計かれるとのことでした。またこの場合、全てのフィルターをフィルターアクションに置き換えることができると、1つのビューのみのクエリつまり合計1つのクエリのみでダッシュボードを表示でき、速度の向上が見込めるとのことでした。これは知らなかったです。勉強になりました。
参照:フィルターアクションについて

3. ビュー内のマーク(データポイント)を減らす。


こちらTableau Desktopの左下(データソース下部タブの下)に表示されているマークの数を減らすとのことでした。下の図で説明すると、マークによってVizに表示されているデータの数(この場合は棒グラフの棒数)を減らすとのことでした。そんな細かいところまで目を通すなんて流石だと思ったのと、ダッシュボードのデザイン含めて今一度ぜひ考えたい部分だと思いました。

4. クロスタブスタイルのビジュアルを一連のチャートに置き換える。


これは3とほぼ同じ考え方であり、マーク数をいかに削減できるかという点では共通していると思います。このような場合は3つを1つのビューではなく、別々のビューで表現しダッシュボードで1つに組み合わせて表現する方法がベストとのことでした。ただここまで来ると最終手段になってくるのでここはあまりこだわらず、表現したいVizにこだわるべきだとおっしゃっていました。

5. 使用していないディメンションとメジャーを非表示にする。


優先度が一番低いこちらですが、手軽にできる一方で、将来性・メンテ性に欠けるとのことで、できれば避けたいとのことでした。ただ、先ほども述べたように解決策の1つではあるのは間違いないのでチャレンジしてみる価値はあるとのことでした。

簡単に使用していないディメンジョンとメジャを非表示にする抽出データの作り方を図にしてみました。1~5の順にクリックすると未使用データの非表示抽出データが作成できます。ご参考までに。

その他:6 Tips for improving dashboard performance

最後に

久しぶりに海外の方と長時間お話しをしてとても新鮮でした!私の専任医のBryanはすごく丁寧で合理的な方で、最後に別件の診断もしてくれて非常に有意義な診断でした。個人的なモヤモヤが解決してTC19の現地に来れてよかったと改めて思いました。解決策についてはあくまでも参考程度としてください。Tableauの良いところは解決策が1つだけではなく、無限にあるというところだと思います。みなさんも是非試行錯誤し、TableauのUXをさらに向上していきましょう。