Amazon Redshift:管理コンソール「クエリ」タブに出てくる「稲妻」マークの意味

小ネタです。

Amazon Redshiftの管理コンソール画面、[クエリ]タブで記録・表示されているSQLを見てみると、ところどころ雷マーク()が付いている行を確認出来ます。このタブは「実行結果」を表示するものなので、実行自体は問題無く、正常に完了はしているようです。当エントリではこのマークが何を意味しているものなのか、簡単ではありますが探ってみたいと思います。

雷マークの意味

この雷マーク()、調べてみると以下のフォーラムがヒットしました。「Versions 1.0.4349/1.0.4515」で対応となった、「AWSコンソールで"マルチパートクエリ"のコンポーネントを管理出来るようになった」という対応によるもののようです。

Redshiftでは、実行パフォーマンスを向上させる為に、クエリを内部で書き換えています。書き換えの詳細としては、サブクエリを1回だけ実行したり、相関サブクエリの相関を解除する、等を行っている模様。(書き換え=代わりに実行する必要があるクエリ、という訳ではない)

書き換えられた要素は、中間結果テーブルを作成する為に別々に実行される小さなクエリとなります。管理コンソールでは、これら細分化されたクエリを「親クエリ(細分化対象となったクエリ)」と一緒にグループ化します。雷マークはそのグループを識別?する為のアイコンマークだった、という訳ですね。

試しに幾つかの情報を確認してみましょう。まずはVACUUM処理について。一覧をざっと見る限りでも、VACUUMに関する処理がズラッと並んでますね。

詳細内容の確認。親クエリは実行したであろうVACUUM文そのもの(vacuum reindex lineorder_ir;)が、そして書き換えられたクエリについてはそれらを分割されたであろうクエリが記録されています。

別のクエリについても確認してみましょう。今度はINSERT文です。

親クエリは幾つかの処理がまとめて記録されています。

書き変えられたクエリは、その中から分解したクエリが1つ、記録されていました。大部分をモザイク処理してしまったので何かアレですが、ちゃんと所定の1クエリが書き換えられて実行されていることを確認出来ました。

まとめ

という訳で、Amazon Redshiftの管理コンソール上「クエリ」タブでの挙動というか表示内容の確認でした。まさに「へぇ〜」という内容ですが、こういった形で実行情報が整理して表示されるのは嬉しいポイントですね!