Data Saberあれこれ(Ord7)
はじめに
こんにちは、都内で受託でデータ分析をしているけっちんです。2023年11月半ばからDATA Saber Bridge2ndとしてDATA Saber認定制度の試練に挑戦している「Apprentice」の1人です。
DATA SaberはTableauを通じて、組織内・ひいては世界にデータドリブンの文化を広めるために何ができるか、ということを学び実践し伝えることをミッションとしています。以下はHP上の一節です。
データを通して世界を理解し、それを人に正しく伝える努力を怠らず、人の心を動かし、行動を促す。これがDATA Saberである。
DATA Saber認定制度の試練のコミュニティ活動の一貫として、備忘録兼道標として書き記します。
この記事をきっかけにDATA Saber認定制度に挑戦する方が増えたり、参加中の方の一助となれば幸いです。
今回話したいこと
第4,5弾に引き続きData Saber認定制度あれこれ、今回はOrd7やっていきます!
テーマはパフォーマンス関連になります。
パフォーマンスが悪いと、
答えを得るのに時間がかかる、フローに乗れない、本当のTaskを忘れるなど様々な問題がありますが、個人的には昨今のビッグデータ時代において「イライラする」が真理な気がします(Tableau君に限りませんが)
あれこれ
パフォーマンスベストプラクティス
データ(DB側)が遅ければTableau側で早くなることはない
Desktopで遅ければServerで早くなることはない
Sever側での処理があるため
一つのワークブックに詰め込まない
Tableauの計算順序(クエリパイプライン)
データソース(DB)▶Tableauの順で処理が実行される
集計や結合(JOIN)はDBで処理が実行される
抽出フィルター、データソースフィルター(Tableauのシートで作業する前に件数を減らせる)、コンテキストフィルター、FIXED、ディメンションフィルター、EXCLUDE/INCLUDE、メジャーフィルター、表計算フィルターの順で処理が実行される
データの結合方法
結合には大きく分けて、データ結合、ブレンド、クロスデータベース結合の3種類の結合が存在する
データ結合はDB側で処理されるが、ブレンドとクロスデータベース結合はTableau側(ローカルで実行)で処理される。
SQLのクロスジョインとクロスデータベース結合は別物
結合方法の選択
データ結合…同じDBで同じ粒度のデータを結合
ブレンド…粒度が異なるデータを結合
クロスデータベース結合…違うDBで同じ粒度のデータを結合
参考
パフォーマンス関連の個人的おすすめの書籍(Tableauは詳しくないのでDB関連で)
おわりに
第6回目の記事を執筆しました。
今後は様子を見て普段SQLをよく使う人目線での各種関数やLODも先人の記事を参考にまとめたり、実務周りのネタを記事に執筆したいと思います。
このブログを通じて、私自身の成長とともに、読者の皆さんと一緒に学んでいければと思います。次回の記事もお楽しみに!
この記事が気に入ったらサポートをしてみませんか?