🗂

【Snowflake】クラウドサービスレイヤーと効率的なクエリ実行

に公開

このページは、親記事のうち、1.3節の内容です。
Snowflakeについてさらに学習したい方は、親記事から各ページをご参照ください。


1.3. クラウドサービスレイヤー

1.3.1. 役割

1.2.1. 3層アーキテクチャの各レイヤーの役割から転記

  • クラウドサービスレイヤー
    • 全体の一貫性・セキュリティを統制。
    • 認証、アクセス制御、インフラストラクチャ管理、メタデータ管理、クエリの解析および最適化
    • 上記「クエリの解析および最適化」について、一部のクエリ(後述)ではクラウドサービスレイヤーのみで結果が返せるが、そこも含んだ記載。一般のクエリオプティマイザーの役割だけではない。

1.3.2. 効率的なクエリ実行のためのポイント

より効率よくクエリを実行するために、クラウドサービスレイヤーの観点で1点考慮する

  • 結果キャッシュの利用
    • 全く同じテーブルの状態で、全く同じクエリを実行した場合に、結果キャッシュを用いて即座に全く同じ結果を返すことができる ※実際はもう少し細かい条件あり
    • クラウドサービスレイヤーで実行され、コンピューティングリソースは使わない
    • 逆に、性能検証時は、実際よりも格段に速く実行できてしまう可能性があるため、オフにするかどうかを検討する必要あり
    • 公式:クエリ結果のキャッシュ
  • メタデータキャッシュの利用

Discussion