データサイエンス

Tableau Desktop初学者が”重さ”で困る時の簡単Tips

法人様にTableauの研修を実施させていただく中で、「データの重さ」や「ダッシュボードの動作の速度低下」などに関する質問を時々いただくことがあります。研修の7割はTableau Desktopを用いたビジネスダッシュボードの作成、つまり「可視化分析」です。Desktop初学者としての入門編の研修では業務データの全量を使用するのではなく、一部の少量のデータを抽出して扱います。抽出で量を絞ったデータを用いることは、Tableauの基本操作や分析の基本的な作法の学習において、都合が良いためです。
一方、研修の延長上で、受講者様は学ばれたスキルを業務の現場で展開していくことを目指すことが多いです。その際、実運用に持って行こうとする時にデータ量やダッシュボードの重さについて皆さん悩まれます。

もちろん、実運用でも問題なくダッシュボードを構築できることも多いです。マーケティングのデータは経験的にローカルで軽く分析できることが多いです。一方で、工場の生産ラインや検品のデータなどの特殊性のある重めのデータの場合は難しくなります。

以下では、浅く広く、データの軽量化もしくはダッシュボードの高速化のためにできる一般的な工夫を紹介します。すぐにTableau上でできる有効な工夫から、Tableau以外の他社のハイテックツールでもできることを書いていきます。

★本記事の執筆に際して、質問をしてくださった受講者の皆様、議論や知識共有で貢献していただいた同僚の方々に感謝を申し上げます。

よくいただく質問その1

データが大きくて、ダッシュボードを開く際に時間がかかり、またグラフに変更を加えた際に反映されるまでに時間がかかります。何か考えられる工夫がありますか?

例えば、工場の製品が1個生産されるにつき、1行のデータが生成されます。これを複数製品、複数生産ライン、さらに何ヶ月ものデータとなると数百万を容易に超えてしまいます。

A1-①データを軽くできないかを検討

可視化の目的とは何かに立ちかえって、その目的のために本当にすべてのデータが必要なのかを考え直してみましょう。

直近数年や数か月に限定すること、あるいは「間引き」することも検討しましょう。後者に関して、各期間について一部のデータのみ標本抽出し、それらを分析し、その分析結果が全体を代表するとみなすという考え方です。

また、使用しないカラムと役割がかぶっているカラムも、Tableau Desktopに取り入れる前に減らすべきです。よくあるのは、実際分析に使うデータの他のカラムも「とりあえず」一緒にデータベースから抽出してTableauに繋げる行為です。行も多いだけに列も増えるとさらに重くなります。

これを防ぐために、分析を始める前にはデータ定義書を作ることを推奨します。データ定義書の中で実際に使用する列のみ含ませ、データ型、サンプル値、分析における役割(メジャー、ディメンション)などを記載します。このデータ定義書に基づいてデータを抽出します。

A1-② DesktopとTableau Prepの併用

Tableau Prep を併せて使えればより効率的にデータ整理やデータ選定ができます。上記で紹介したカラムの削減も、Prep上でビジュアル的に確認しながらでは整理しやすいのでおすすめです。

比較的軽いものであれば、Excelやcsvで100万行でも接続できなくはないです。しかし、より大きなデータセットはPrepからhyper形式(Excelなどより軽い)に変換して出力できます。

さらに、計算フィールドもTableau Desktopの動作を重くする要因の1つとなります。一般的には、前加工はTableau Prepで行い、ある分析に特化した計算フィールドはTableau Desktopで作ることが基本姿勢です。しかし、重さが問題となっているなら、Desktopで作っていた計算フィールドや集計をPrepを用いた前処理段階であらかじめ作っておき、hypter形式で出力してからTableau Desktopに入れると多少は違いが感じられるはずです。

A1-③ Tableau Desktop上ですぐにできる改善点の数々

  • 1つのダッシュボードの上のワークシートの数を減らす
    • うまく二重軸や切り替えで表示する
    • ダッシュボード間のシートの重複に注意
    • ダッシュボードを2つ以上に分割する
  • 計算式の簡略化
    • LOD計算(FIXEDなど)やセットを必要以上に使わない
  • デザインの簡略化
    • 1つのシートでマークが多すぎる表現を簡単化する
    • フィルターの「カードの非表示」、使用していないシートの削除または非表示
    • コンテナを多用しない
  • 「データソースフィルター」や「コンテキストフィルター」など計算順序上位のフィルターが使えないかを検討する
  • 文字列の数値化
  • ライブ接続ではなくデータ抽出を構成する
    • [データ] ペインの上部にあるデータ ソースの名前を右クリックし、[データの抽出] を選択する → 抽出フィルターを使用して抽出に取り込まれるデータの量を制限できる

【参考】効率的に作業できるワークブックの設計

 

A1- ④  Tableau DesktopでOptimizerを参考に改善する

Optimizer(ワークブックオプティマイザー)を実行し、警告が表示されれば、それを参考に改善点が見つかることもあります。ワークブックのパフォーマンスの観点からベスト・プラクティスに従っているかどうかを識別するツールではあるが、エンジンのアルゴリズムで捉えられるものに限定されます。出力された指摘がいつでも適切とは限らないので、参考程度にするべきです。

また、ソフトウェアバージョン2022.1からのみ使用可能です。

よくいただく質問その2

データソースが非常に重くて、Tableau serverにダッシュボードを組んでもサーバー全体に過負荷をかけすぎないかが心配です。今回はデータを半分くらいに絞りましたが、本当は倍以上のデータを扱いたいです。どういう対策が考えられるのですか? 

A2-① Tableau Server使用の工夫

データを軽くする工夫に関しては、質問その1と同じ内容です。

以下では、インフラに関する提案です。

重いデータをTableau Serverから出力しようとしているときに、動作が重いだけではなくエラーが出やすくなることがあります。エラーの原因は必ずしも明らかではありません。Tableau Serverの容量がひっ迫されると、一度に出力できる限界を超えてしまい、エラーは出やすくなることもあります。複数回に分けて実行することをご検討ください。他に、データの通信が途中で切れることも要因となり得ます。

単純に、契約しているTableau Serverのスペックをあげることを検討すると良さそうですが、もちろん予算の課題があります。

分析の要件によってはできないかもしれませんが、事前に集計をして行数を減らした上で、Tableau Serverに保管することも考えられます。

A2-② Tableau Server以外のデータベースの使用を検討

Tableau DesktopやTableau Prepと同じCreatorライセンスで使用可能である点から、可能なら、まずはTableau Serverを使いこなしたいところです。しかし、社内の経験からでもわかるように、データの量によってはTableau Serverには限界があります。

最近注目されているのは、高速化を特徴とするSnowflakeなどのクラウド型のデータウェアハウス(DWH)にデータを置いて、Tableau Desktopから直接的にSnowflakeのDWHに接続してデータを読みこむと、Tableau Desktop上での動作が比較的軽くなることがあります。この場合、Snowflakeのリソースを使えることが高速化に繋がります。

Snowflakeにデータを置いても、そのデータを使って作成したダッシュボードは今まで同様にTableau Server上で共有可能です。

例えば、センサーのデータなど毎日何万件もデータが追加されるようなところであれば、やはりTableau Serverでは厳しいケースが少なくないです。そんなときにSnowflakeなどのクラウドDWHにデータソースを置くという手法がとられます。

他に、Kineticaも高速DWHとしてTablauと連携が可能です。こちらはメモリ上で動作し、GPU演算と並列分散処理が可能です。

やや蛇足な話になりますが、データ前加工のツールはTableau Prepだけではありません。日本ユーザーはまだ少ないのですが、Prepと似ておりなおかつデータ整形の機能がより豊富と言われているMatillionが注目されています。Prepの場合はデータを加工する際に一旦抽出しないとPrepに読み込めないのですが、Matillionの場合はデータの抽出をせずにSnowflakeのマシンパワーを使ってデータ加工を行えるのがメリットです。

【参考】

MatillionのTable OutputとRewrite Tableの違いMatillionとは、ELTツールの1つです。Tableau Prepに似ているところがあり、コンポーネントと呼ばれるパーツを繋げてい...
クラウドネイティブなELTツール、Matillionとはなんなのか?本ブログ記事でも度々紹介しております「Matillion」。 そもそもそれはなんなのか?なにがそんなにいいのか? その謎を探るべくA...

 

 

yan
データ分析官・データサイエンス講座の講師