Tableau Desktopのダッシュボードに関するパフォーマンス最適化
Tableauはエンドユーザが分析をスピーディに行えるがテーマとしてあるように感じますが、それには動作の早いダッシュボードが欠かせないと思います。
レポート化(紙、PDFなど)はしないでTableau Desktop上で色々と集計の切り口を変えながら分析を行うことでスピーディに分析を進められます。
初めてTableau Desktopで開発を行った際にチャートなどを配置して項目を設定するたびに集計結果が表示されるたびにロードが走って煩わしいと感じましたが、
経験していくうちにこれは逐一確認できるエンドユーザ向けの良い仕様になっているなと理解したのを覚えています。
しかし大量データを扱う都合上でどうしてもダッシュボードのパフォーマンス劣化が起こりがちですが、意識しておけば回避できることもあります。
今回はパフォーマンス劣化を起こさないためにデータ設計や製造で考慮しなければいけない点をいくつか紹介します。
以下、#1~2はパフォーマンス向上の効果が大きい対応となります。優先で検討をお勧めします。
#1.データ前処理はTableau DesktopではなくTableau Prep Builderに処理を移すことを検討する
Tableau Desktopでデータ前処理などの計算が多ければ多いほどダッシュボードのパフォーマンスは落ちます。
データ前処理はTableau Desktopでデータを読み込む前にTableau Prep Builderなどで済ませておくことをお勧めします。
Tableau Desktopはビジュアライズ処理のみ行うようにすればパフォーマンスは向上します。
またTableau Desktopで複数のデータソースをリレーションしている場合は、リレーション自体が遅くなる原因のため、こちらもTableau Prep Builderに処理を移すことを検討してください。
#2.データへの接続は抽出(Hyper)を使用する
抽出はTableau専用のファイル形式であり、Tableauが一番パフォーマンスを発揮できる接続方式です。
頻繁に更新されるデータソースの場合はライブ接続が必須要件となるかもしれませんが、そうではない場合は迷わず抽出を使用したほうがパフォーマンス面ではかなり有利です。
以下、#3~#6は状況によってはパフォーマンス向上の効果が得られる対応となります。こちらも検討する価値はあります。
#3.未使用の列を削除 もしくは 非表示にする
使用している列と使用していない列を整理して、使用していない列は削除するか非表示にします。
チャートで使用していない列だとしても存在しているだけでパフォーマンスには影響します。
#4.必要に応じて列を行にピボットする
Tableauは縦持ちのデータに向いているので列が日付の数だけ存在するような横持ちデータは、接続前の段階で縦横変換しておくことをお勧めします。
そもそもですが、そうしないとTableau Desktopでは扱いづらいですし、パフォーマンス面でも有利です。
#5.行数を減らす
よくあるパターンとして月毎のデータが見たいのに、データは日毎にレコードが存在している場合があります。こういう場合は月毎までデータを予め集計することをお勧めします。
当然ながら行数が少ない方がパフォーマンスは向上するため、ダッシュボードで本当に必要な集計の粒度を検討します。
#6.大きいクロス集計表(帳票)を配置している場合は表示件数を絞る
Tableauが一番苦手とする処理がクロス集計表の描画です。どうしても帳票のようなビューが必要な場合は1画面に収まるように表示件数を絞ります。
スクロールしないと全部が確認できないようなクロス集計表は、表示件数を絞るなりすればパフォーマンスは向上します。
以下の例ではOrder IDごとのSalesを表示していますが、そのままだと表示件数が多いのでフィルターで上位10件を表示するようにしています。
以上がダッシュボードの代表的なパフォーマンス改善の方法となります。
今回紹介した方法以外にもダッシュボードのパフォーマンスを向上させる手段はありますが、
まずは今回紹介した比較的お手軽にできる方法の検討をお勧めします。