Amazon QuickSightのパフォーマンスを改善したい時のTips
データアナリティクス事業本部インテグレーション部コンサルティングチーム・新納(にいの)です。
Amazon QuickSightをはじめ、BIツールの困りごとあるあるに「ダッシュボードの表示が遅い」ことが挙げられます。せっかく作成した立派なダッシュボードも、表示が遅いと意思決定に時間がかかったりユーザーに見てもらえなくなったり、活用してもらえなくなる可能性があります。
そこで、Amazon QuickSightでダッシュボードが遅いときに抑えておくべきTipsをご紹介します。
本エントリはAWS Analytics Advent Calendar 2022の12/14(水)の記事です。
データセットで工夫する
SPICEを使う
特に頻繁に更新されるデータを可視化したい場合、データソースに直接接続するケースがあります。リアルタイム性を重視しない場合はAmazon QuickSightのインメモリデータベースであるSPICEの利用を検討してみてください。SPICEでのデータ更新は最短1時間からスケジュール実行可能です。
SPICEは増分更新にも対応しています。
可視化に使用しないデータはあらかじめ除外する
特に大量のデータセットに接続している場合、分析に使用しない項目やレコードはあらかじめ除外しておくことで読み込み量を減らせます。Amazon QuickSight上でデータセットを作成する際にカスタムクエリを使用する他、データソース側でデータマート(BIツールで効率用データを参照するために作成されるテーブル)を作成するのも選択肢となり得ます。
行レベルセキュリティや列レベルセキュリティのルールをシンプルにする
行レベルセキュリティや列レベルセキュリティを設定している場合、データセットルールとデータを突き合わせて表示するデータを制限する仕組みになっています。可能であればデータセットルールの数を減らしてルール自体もシンプルにすることでこのルックアップの処理を高速にできます。データセットルールはSPICEに入れておくことで直接クエリを発行するよりも処理の高速化が見込めます。
分析で工夫する
計算フィールドをシンプルにする
分析で計算フィールドを使用している場合、できるだけデータ前処理(データセットの編集)で実施することをおすすめします。ビジュアルを描画する際に計算処理で時間を取らないようにするためです。
toString関数の使いどころに気を付ける
toString関数は他の数値計算を伴う関数よりもパフォーマンスが良くないため、使いどころは慎重に検討する必要があります。
コントロールオプションでテキストボックスの利用を検討する
コントロールでドロップダウン・一覧・テキストフィールドから値の選択方法が選べますが、選択可能な値の取得の処理が走るドロップダウンリストよりもテキストボックスのほうがパフォーマンス性能が良いです。
オンシートコントロールの拡張は慎重に
ダッシュボード公開時のオプションに「デフォルトではオンシートコントロールを拡張する」というオプションがあります。これは、デフォルトでは折りたたまれているコントロールを拡張されたまま表示させる機能です。
このオプションを有効にしているとダッシュボード表示時にコントロールの値をフェッチする処理が発生するため、利用可否は慎重に検討してください。
[その他]のカテゴリを非表示にする
分析→ビジュアル右上メニュー→「[その他]のカテゴリを非表示にする」メニューから、ディメンジョンがその他に分類された値を非表示にすることができます。単純に表示数を減らせるため、パフォーマンス向上の一助になります。
ただし、各ビジュアルタイプに設定されているグラフやポイントの表示上限を上回った場合もその他のカテゴリに入れられてしまいます。ディメンジョンが表示上限よりも少ないケースで非表示のオプションを使用するようにしましょう。
テーブルで生データを表示させる場合は「値」に項目を入れる
テーブル形式でデータを確認したい場合、フィールドウェルの「グループ化の条件」「値」どちらにも項目を入れられますが、Group by関数が実行される「グループ化の条件」よりも「値」を使う方がパフォーマンスが良くなります。
ビジュアルの配置を工夫する
ビジュアルの描画は左から右、上から下の順番に処理されていきます。描画に時間がかかるような重たいビジュアルは下に、KPIなどの軽いビジュアルは上に配置することでファーストビューを早く表示できます。
データソースのインフラ側で工夫する
QuickSightで分析を作成すると、接続しているデータソース側に自動で生成されたクエリが発行されます。もし上述の対応でなかなかパフォーマンスが改善しない場合、データソース側のインフラ増強、クエリ実行プランの確認も検討するのもいいかもしれません。
最後に
Amazon QuickSightのパフォーマンス改善につながるポイントをご紹介しました。どんなに良いダッシュボードであっても、たった数秒表示されないだけでユーザーの離脱に繋がるケースがあります。せっかく作ったのに使ってもらえないという結果とならないよう、パフォーマンス改善を考える方の一助になれば幸いです。