こんにちは、kusakaです!
7/16に【Japan Tableau User Group 2021年第1回総会】のLT枠で登壇してきたので内容を共有します。
資料はこちら↓
Prepでの操作を軽くする方法 7箇条【保存版】
お困りの方も結構いらっしゃるかと思いますが、Prepって結構な頻度で固まったりしますよね…
以下の方法で少しでも軽くなればよいなとおもうのでご紹介していきます。
他のツールでも通じる話かと思いますのでぜひ読んでいただければとおもいます。
1.ワイルドカードユニオンに読み込ませるデータはなるべく絞り込みましょう
こちらはInputするデータ量を絞り込むというお話です。
Inputツールにはワイルドカードユニオンという機能があり、特定フォルダ配下のファイルを一括でインポートすることができます。
Prep含め、どのETLツールもデータ量が多い=処理対象も多いのでパフォーマンス低下に繋がりますので、Input対象は早い段階で絞り込みましょう。
許容量は未知ですが、数千万件×過去10年分すべては処理しきれないので確実にPrepが落ちます。
どうしても読み込みたい場合はhyper形式に変換してからInputしましょう!
2.データのサンプリング機能を使用して少なくしましょう
こちらもInput時点で絞り込むというお話です。
Prepにはデータのサンプリング機能というものがあります。
データを部分的に取得することで開発のパフォーマンスを向上させるというものです。
そのためプロファイルペインで表示されている情報は実はデータの全量ではなく、サンプリングされたデータのみが表示されています。
このサンプリングのオプションは3つあるのですが、「固定の行数」というオプションで数千件程度に絞ってあげると見違えるほどに早くなります。
フローの実行時にはデータの全量が読み込まれて処理されますのでご安心ください。
3.データのフィルターはできるだけ早い段階で行いましょう
こちらは設計時に気を付けるお話です。
既に「〇〇年分取得」や「IDが△△のもののみ取得」など、条件が決まっているようであればInput直後にはフィルターするようにしましょう。
4.集計処理は結合処理の前に置きましょう
こちらも設計時のお話。
以下の図のように集計と結合の処理がある場合、集計処理は結合より手前に持ってくるようにしましょう。
これを逆にしてしまうと、集計処理で処理するデータ量も多くなるので処理の負荷がかかってしまいます。
5.データの更新の一時停止機能を活用しましょう
これは20.1から追加された機能の話です。
これまでは計算式を1つつくるごとにフローが更新されていたので、都度待たされていたのですが、この機能を使うことで更新が走らなくなるので開発時間短縮につながります!
6.使わないカラムは落としておきましょう
こちらも設計時のお話です。
1にてデータ量が多いほどパフォーマンスも低下していくというお話をしましたが、これはレコード数だけではなくカラム数も同様です。
いつか使うかも…で残しておいてもその機会は大体やってこないですし、使わないカラムはあっても見づらくなるだけなので消しておきましょう!
Inputnツールにはチェックボックスがあるので削除がしやすいのでこの段階で落としておくのがおすすめです。
7.端末のスペックを上げられるなら上げましょう
これはお財布との相談ですが、1~6をどれだけ駆使してもやはり端末のスペックによってパフォーマンスは異なります。
端末スペックを上げられるなら上げておきましょう!
おまけ
定期的に消しましょう!!
C:\Users\~\Documents\マイ Tableau Prep リポジトリ\ログ
登壇の所感
今回イベントに初登壇したのですが、他登壇者の方々やチャットの熱量に刺激されてもっと頑張ろう!という気持ちになりましたし、参考になる情報が本当に多くて素晴らしい時間を過ごせました。
ご興味ある方は次回ぜひご参加ください!
ではまた!