[アップデート] Amazon Redshift クエリモニタリングと診断を改善した新しいクエリモニタリング機能を試してみた
Amazon Redshiftが、クエリモニタリングと診断を改善した新しいクエリモニタリング機能をリリースしました。この新機能は、データウェアハウス内のクエリパフォーマンスを追跡、評価、診断するための包括的な洞察を提供し、システムテーブルやログを手動で分析することなくマネジメントコンソールから分析可能になります。
クエリモニタリング機能とは
強化されたクエリモニタリングは、パフォーマンスのボトルネックを効率的に特定し、分離するためのツールです。AWS コンソールを通じてアクセス可能で、パフォーマンス履歴の表示、ワークロードの変更の検出、時間の経過に伴うクエリパフォーマンスの変化の理解、そしてクエリプロファイラーによるパフォーマンス問題の診断を可能にします。
この機能の特長
-
包括的な洞察: データウェアハウス内のクエリパフォーマンスを追跡、評価、診断するための詳細な情報を提供します。
-
トレンド分析: パフォーマンス履歴を表示し、長期的なトレンドを分析できます。
-
問題のある問い合わせの特定: 特定の時間枠を分析し、パフォーマンスに問題のあるクエリを見つけることができます。
-
詳細なクエリプラン: 問題のあるクエリに対して、詳細なクエリプランまでドリルダウンして分析できます。
クエリモニタリングのロールベースのアクセス制御
この機能を利用するには、SYS:MONITOR ロールを付与する必要があります。「ロール」とは、IAMロールのことではなく、DBのロールです。DB(Redshift)のロールとは、ユーザーやグループに対して特定の権限や責任を割り当てるための仕組みです。
ユーザに対して、SYS:MONITOR ロールを付与するには以下のようなGRANTを実行します。
grant role sys:monitor to <db_user>;
マネジメントコンソールからは、IAMユーザーまたはIAMロール経由で接続するため、「ロール」をIAMユーザーまたはIAMロールに付与する形になります。
クエリモニタリング機能を試す
今回は、Amazon Redshift Serverlessのクエリモニタリングを例に解説します。なお、私の環境はマネジメントコンソールにログインした後、IAMユーザーからIAMロールにスイッチしています。
SYS:MONITOR ロールを付与
マネジメントコンソールのIAMユーザーもしくはIAMロールにSYS:MONITOR ロールを付与します。
IAMロールに対して「ロール」を付与しています。ここが混乱するポイントです。
grant role sys:monitor to "IAMR:cm-ishikawa.satoru";
[Query and database monitoring]を選択
マネジメントコンソールから[Query and database monitoring]を選択します。「How it works」のところに3種類のビューが表示されています。
- Data warehouse overview
- Query performance summary
- Query profiler
Data warehousesの名前のリンク「demo-nxgn-wg」をクリックします。
すると、Data warehouse overview が表示されます。Query IDをクリックすると、Query Detailsが表示されます。
クエリは、クエリ分割されているので確認したい Child queriesのいずれかを選択します。
選択したChild queriesが表示されます。
最後に
この強化されたクエリモニタリング機能は、データウェアハウスの管理者やデータアナリストが、この機能を活用することで、クエリパフォーマンスの詳細な分析や長期的なトレンドの把握が可能になります。マネジメントコンソールから直接アクセスできる包括的な洞察により、システムテーブルやログを手動で分析する手間が大幅に削減されます。特に、問題のあるクエリの迅速な特定と、詳細なクエリプランへのドリルダウン機能は、パフォーマンスのボトルネックを効率的に解決するのに役立ちます。
さらに、SYS:MONITORロールを通じたアクセス制御により、適切な権限管理が可能となり、セキュリティ面でも配慮されています。この機能がAmazon Redshift Serverlessとプロビジョニングされたデータウェアハウスの両方で利用可能であることは、様々な規模や要件のユーザーにとって大きな利点となります。
今回、同じクエリを数回実行したのですが、「View Query Patterns」にヒットしないため、残念ながらこの機能を確認できませんでした。この機能は同じパターンのクエリのパフォーマンスの変化をワークロードの状況や実行時間帯などによる影響を把握できると考えられます。
参考
ロールベースのアクセス制御に関しては、こちらの動画をご覧ください。