Tableau Tips: 『パフォーマンスの記録』機能でビューのボトルネック箇所を探る

2014.09.17

ビッグデータ分析を相手にしていると『分析用に作成したこのビュー、なぜか他のものよりも余計に時間が掛かるな〜』と言った局面に遭遇する事が時折あります。単純にビューが相手にしているデータ量が多いのか、クエリは割と早く返ってくるけど返って来てから時間が掛かってるのか、はたまたその両方か。

Tableau Softwareでは、その辺りの原因、遅さの元となっているボトルネック箇所を判定するための便利機能が用意されています。それが今回ご紹介する『パフォーマンスの記録』機能です。使い方はとても簡単ですし、得られる情報も分かりやすいものとなっています。当エントリではその使い方についてさらっとご紹介して行きたいと思います。

データの準備

ここでは、下記エントリで用いたパフォーマンスチューニング用のデータを用いる事にします。一番多いテーブルで6億件。チューニング前後のSQLがありますが、チューニング後の分散キーやソートキー等が設定されている版のものを使ってテーブルを作成し、データを投入します。

CREATE TABLE part (
  p_partkey         integer         not null    sortkey distkey,
  p_name            varchar(22)     not null,
  p_mfgr            varchar(6)      not null,
  p_category        varchar(7)      not null,
  p_brand1          varchar(9)      not null,
  p_color           varchar(11)     not null,
  p_type            varchar(25)     not null,
  p_size            integer         not null,
  p_container       varchar(10)     not null
);
:
:
copy customer from 's3://awssampledb/ssbgz/customer'
credentials 'aws_access_key_id=XXXXXXXXXX;aws_secret_access_key=YYYYYYYYYY' gzip;
:
:
# SELECT COUNT(*) FROM customer;
  count  
---------
 3000000
(1 row)

# SELECT COUNT(*) FROM dwdate;
 count 
-------
  2556
(1 row)

# SELECT COUNT(*) FROM lineorder;
   count   
-----------
 600037902
(1 row)

# SELECT COUNT(*) FROM part;
  count  
---------
 1400000
(1 row)

# SELECT COUNT(*) FROM supplier;
  count  
---------
 1000000
(1 row)

計測用のビューを作成

上記データを用意したら、TableauからRedshiftに接続して適当なビューを作ってみます。以下のビューはリロードした際、凡そ1分程そのデータ取得〜再描画に掛かる内容となりました。

tableau-performance-01

パフォーマンスの記録〜結果確認(Tableau Desktopの場合)

[ヘルプ]→[設定とパフォーマンス]→[パフォーマンスの記録を開始]を選択。

tableau-performance-02

そして徐ろにデータソースの更新を行い、データの再取得以降の処理を実施。

tableau-performance-03

再表示に暫く時間が掛かります...

tableau-performance-04

再表示完了。[パフォーマンスの記録を停止]を選択します。

tableau-performance-05

すると、別ウインドウが立ち上がり、新たなビューが表示されました。パフォーマンス結果もTableauで表示されるのですね。

tableau-performance-06

クエリ実行の部分を選択すると、実際に実行されたSQL文の内容も表示されました!

tableau-performance-07

パフォーマンスの記録〜結果確認(Tableau Serverの場合)

Tableau Serverでも同様の処理・内容確認は可能です(※サーバ管理者であれば可能)。管理メニューから[サイト]を選び、サイトの編集で[パフォーマンスの記録を許可]にチェックを入れて[OK]押下。

tableau-performance-11

その後、ブラウザURLの末尾に『?:record_performance=yes』の文字を付与し再表示。すると、メニューに『パフォーマンスの記録を表示』のリンクが出るようになります。所定の操作を行った後(※ここではリロードボタンを押して全件再取得・再描画しています)にリンクを押すというアクションをしています。

tableau-performance-12

デスクトップ同様に、ビューの実行結果が表示されました。(あれ、日本語文字化けしとる...w)

tableau-performance-13

上記サンプルでは『クエリ実行』くらいしか目ぼしい記録が表示されていませんが、実際はこの他にも色々な情報が連携されて出て来る事になります。この辺りについては以下ドキュメントに記載があるので参考にしてみてください。

まとめ

以上、Tableauにおけるパフォーマンスチューニングの実行結果取得に関するご紹介でした。作成したビューが遅い!という場合は、まずこちらのアクションを実行し『何がどのタイミングで時間が掛かっているのか』を特定する事から始めることで、問題の打開策・解決策をよりスムーズに導き出せるのではないでしょうか。

こちらからは以上です。

参考情報