Tableau

【Tableau雑談】ダッシュボードの表示速度が遅い時に試したいこと10選

試してみる前に

Tableau Desktopの「パフォーマンスの記録」機能でダッシュボードの表示が遅い原因を探る

・どのシートが遅いか
・パフォーマンスを測る指標のどの項目で時間がかかっているか
・問題がありそうなのはサーバー側かTableau側か、など

遅い原因の見当をつけてからチューニングを行うのが良いと思います。

試したいこと10選

1. 抽出を使用する

これは初歩的なことだと思いますが、データ数に問題がない場合は抽出を検討しましょう。
※レコード数が数億になってくると抽出は厳しいです。

2. シートを減らす

一つのダッシュボード内にシートを詰め込みすぎると表示に時間がかかります。本当に必要なシートなのかを検討する or ダッシュボードを分けることを検討しましょう。

3. シート内のマーク数を減らす

例えば下記のシートのように、表示しているマーク数が多いと遅くなります。
・フィルターを上手く活用して表示するマーク数を減らす
・シート内のメジャーおよびディメンションの数を制限してマーク数を減らす

4. 文字列型のカラムを数値型へ変換

整数 > ブール値 > 文字列 の順で速いです。
パラメータを利用して文字列型カラムを数値型にする。また、IF文やCASE文で文字列を使用して複雑な計算をしている場合は、数値型へ変換する。

5.  テキストが多いシートを見直す

Excelで見かけるようなクロス集計表等のテキストが多くなるシートは、やはり遅くなるので避けるべきです。
本当に必要なシートか検討しましょう。

6. コンテキストフィルターを上手く使う

データ数を大きく絞り込むことができるフィルターをコンテキストに追加することで、その他のフィルターの処理速度が向上する可能性があります。

7. LOD計算を見直す

通常の計算より遅いため、使わなくても表現できそうかを確認する。
処理速度が大きく変化する可能性があります。

8. 未使用のフィールドはデータペインで非表示にする

非表示にしてもファイルのサイズ自体に変化はないですが、非表示にすることでダッシュボード内で集計する際に、読み込むデータの要素を減らすことができます。特にフィールドが数百とある場合は試してみるのが良いと思います。
※データが除外されるわけではないので、非表示フィールドを再表示できます。

9. データソースがサーバー(BigQuery等)に格納されている場合は、サーバー側のテーブルのチューニングを見直す

BigQueryの場合は、パーティショニングやクラスタリングを設定することで、ダッシュボード内の集計で不必要なデータのスキャンを避けることが可能です。BigQueryに限らずサーバー側でできることはやっておきましょう。

10. 複雑な計算はサーバー側にしてもらう

データソースがサーバー(BigQueryやSnowflake等)に格納されている場合は、サーバー側のスペックを利用してテーブル内で集計してしまうのが良いと思います。
サーバー側でできることはやっておきましょう。

以上です。

Y.K
アナリティクス&デベロップメント所属。雪国出身。