Snowflakeでクエリをキューに入れるとは?(マルチクラスタウェアハウス)
通常、Snowflakeのウェアハウス(仮想データベースサーバーのようなもの)は、クエリを処理するためにコンピューティングリソース(CPUやメモリ)を使います。仮想ウェアハウスが1つのクラスタ(単一の計算リソース群)で構成されている場合、そのクラスタのリソースだけを使ってクエリを処理します。
たとえば、クラスタのリソースが10クエリ分しか対応できないのに、15クエリが同時に実行しようとすると、最初の10クエリにはリソースが割り当てられますが、残りの5クエリにはリソースが足りません。このとき、Snowflakeは「今はリソースが不足しているので、リソースが空くまで待っててください」という形で、実行待ちのクエリを順番待ちリスト、つまり**「キュー」に入れます**。
キューに入れられたクエリは、リソースが空き次第、順番に実行が開始されます。
マルチクラスタウェアハウスについて:
Snowflakeの「マルチクラスタウェアハウス」は、複数のクラスタ(リソースのグループ)を使って負荷を分散できる仕組みです。これにより、例えばクエリ数が15に増えたとき、自動的に2つ目のクラスタを追加して処理できるようになり、キューに入れて待たせることなく、より多くのクエリを同時に実行できるようになります。
シンプルに言うと: クエリを待たせることが多い場合にマルチクラスタウェアハウスを使えば、Snowflakeが必要に応じてクラスタを増やしてくれるため、クエリがキューに入るのを防ぎやすくなります。
公式ドキュメント
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?