見出し画像

Performance Best Practice勉強会

前回(データプラットフォーム)に続いて勉強会メモをもとにした気づきのまとめです。実はこの回は欠席したため、あとから録画参加でしたが、それでも多くの示唆を得られました。
特にパフォーマンス周りはなかなか自学するのが難しいですし、ソフトウェア側もアップデートしていることもあるため、知識や情報を持っている人の話を聞くのは有効と感じました。


Q1.パフォーマンスが悪いとなぜいけないのですか?

データ処理以外の文脈でもパフォーマンスがある
役員への説明時にツールヒント使えないなどTableauが苦手な場面はあるので、そういった観点でもパフォーマンスを検討する必要がある

Q2.表計算はどこで処理されますか?
Q3.結合(JOIN)はどこで処理されますか?
Q5.次のうちTableauのシートで作業する前に件数を減らせるフィルターを選びなさい

クエリパイプラインを意識していないと期待する結果が得られなかったり、間違ったアウトプットを出してしまうことになる。
逆に期待した結果を得られなかったときは、クエリパイプラインを思い出すことを心がける。

Q4.TableauDesktopで表示が遅くてもTableauServerで高速に表示できる?

TableauServerのハードウェア要件としてメモリ128GBが推奨されている。AWSなどでインストールするとめちゃくちゃ高くつく。
一方、TableauCloudはTCO(Total Cost of Ownership)が安いと評価されてきている。BIとインフラ両方わかる人材がなかなかいないため、大手企業でもServerからCloudに乗り換える企業が増えてきている。

Q6.データの集計が遅い場合、DBで事前にテーブルを準備してもよい

BIツールの場合は、必要になったときに集計するのがよいけど、変数が多い場合やドリルダウンしない場合は事前に集計テーブルを用意してしまったほうがよい。

実務上は多対1を結合して分母を平均で取ったりするので、ブレンディングを使えないツールでやるときはどうするかというのを知っておく必要がある
単価が一定の場合は最小最大平均どれをとっても同じだけど、数が多い場合は平均すると遅くなるので、最小か最大を使うのがよい。

現在のTableauのバージョンではブレンディングよりリレーションシップ使うことを推奨。

Q10.抽出は必要な粒度で集計した状態で作成することができる

必要な粒度は日付にだけ機能がある

Q15.日付のフィルターを作成したい。一番パフォーマンスがよいのは?

不連続の場合、SQLではinを使うイメージ
連続型の場合、SQLではbetweenを使うイメージ
相対日付の場合、SQLでは不等号を使うイメージ


パフォーマンスについては、ハードウェアのスペックに依存したり、処理の場所やプロセスなど気を使わなければいけない箇所が多く、実際に組織的にBIでのデータ活用に取り組んでいるTAさんの話はとても参考になりました。
また、ソフトウェア側のアップデートをキャッチアップしていかないと、無駄なコストやできる改善に取り組めなかったりすることも感じました。
TableauServerは環境を用意するのがなかなかハードル高いですが、Cloudはトライアルできるようなので、やりたいことや確認したいことを整理して情報収集してから使ってみたいと思います。

この記事が気に入ったらサポートをしてみませんか?