Snowflakeのコスト確認方法をまとめてみる #SnowflakeDB

2021.12.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

※本エントリは、Snowflakeをより使いこなそう! Advent Calendar 2021の10日目の記事となります。

さがらです。

Snowflakeを使用する上で、「どれだけコストがかかっているんだろうか」と気になる方は多いと思います。 そんな方向けに、Snowflakeでのコスト確認方法をこの記事でまとめてみます。

Snowflakeのコストを確認する方法

大きく、以下の3パターンになると思います。以下、それぞれ説明していきます。

  1. SnowflakeのAccount管理画面で確認する
  2. Snowflake上でクエリを書いて確認する
  3. BIツールを使う

1.SnowflakeのAccount管理画面で確認する

これが一番さくっと出来る方法だと思います!

Snowflakeログイン後、ACCOUNTADMINロールで画面上部の「アカウント」をクリックします。

すると、下図のように月ごとに使用されているクレジット量と、その内訳(ウェアハウス別・日別)が確認できます。

「平均使用ストレージ」を押すと、現在使用されているストレージ容量と日別の推移がわかるようになっています。

こういった形で、GUI上でボタンをポチポチするだけでコストの全体像はわかるようになっています。

2.Snowflake上でクエリを書いて確認する

一方で、GUI上では確認できないことも多くあります。具体的には、こういった内容になるかと思います。

  • 年間での各ウェアハウスのクレジット使用量の合計
  • 時間帯別のクレジット使用量の確認
  • クエリの種類ごとにクレジットの使用量を確認

こちらについては、クレジット使用状況を確認できるビューが、SNOWFLAKEデータベースのACCOUNT_USAGEスキーマ内に用意されており、そのビューに対して独自のクエリを記述して実行することで、確認できるようになっています。

そして、こちらのクエリを記述する方法に関しては、すでに弊社でも記事としてまとめられています。クエリの書き方に関しては、ぜひこちらを御覧ください。

また、現在はSnowsightという、Snowflake上でクエリを書いて返ってきた結果を元にグラフとして可視化する機能もあります。

下記は海外の記事になりますが、Snowsightを使ったモニタリングダッシュボードを構築しており、実際のクエリも書いてあります。

また、Snowsight自体の使い方に関しても、弊社で検証しておりますのこちらもぜひ御覧ください。

3.BIツールを使う

2番ではクエリを書いてSnowsightを使う方法を記載しましたが、やはり自分でクエリを書いたりダッシュボードを作ることが少し手間に感じてしまうことも在ると思います。

そんなときは、BIツールによってはSnowflake用の監視ダッシュボードのテンプレートが提供されていますので、それを利用するのがオススメです。

この記事では、弊社で取り扱いのあるTableauとLookerでのダッシュボードのテンプレートについてまとめておきます。

Tableau

まず、TableauについてはTableau Workbook(.twb)ファイルの形式で公開されています。

対象のWorkbookファイルをダウンロードして頂いた上で、Snowflakeへのアクセス権を持つユーザー情報を用いてTableauからSnowflakeへの接続設定をすれば、それだけでTableau上でSnowflakeのクレジット使用量などを確認できるようになっています。

Tableauでの方法については下記の記事にまとまっておりますので、こちらも併せて御覧ください。

Looker

続いてLookerについては、Looker Marketplaceを介して、Snowflakeのコスト監視が出来るダッシュボードを導入することが出来ます。

実態はLookMLですので、ユーザー自身でカスタマイズしたフィールド定義や、ダッシュボードを作ることも可能です。

このLookerでの方法についても下記の記事にまとまっておりますので、こちらも併せて御覧ください。

次回

Snowflakeをより使いこなそう! Advent Calendar 2021、次回の11日目では、「Snowflakeのサーバーレスタスクを試してみた」というタイトルで執筆します。お楽しみに!