Snowflake Account Usage Dashboardsで自社のSnowflake利用状況をサクッと可視化する

タブスノ
2021.03.29

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

こんにちは。
データアナリティクス事業本部ソリューション部プリセールススペシャリストの兼本です。

Snowflakeでは、利用状況レポートを使用して自社のSnowflakeの利用状況を把握するGUIが用意されています。

利用状況はACCOUNTADMINもしくはアクセスを許可されたロール権限を付与されたユーザが画面で確認するほかに、Snowflake共有データベースのAccountUsageスキーマに対して以下のクエリを発行することでも把握できます。

過去365日内の1つのウェアハウス(またはアカウント内のすべてのウェアハウス)の時間単位のクレジット使用状況をクエリ

select * from SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY;

Snowflakeステージの1日あたりの平均データストレージ使用量をバイト単位でクエリ

select * from SNOWFLAKE.ACCOUNT_USAGE.STAGE_STORAGE_USAGE_HISTORY;

過去365日内のさまざまなディメンション(時間範囲、セッション、ユーザー、ウェアハウスなど)でSnowflakeクエリ履歴をクエリ

select * from SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY;

そして、このデータをLooker Blocksを用いて可視化したのが、以下のエントリです。

実は同じようなダッシュボードはTableauでも提供されています。元ネタはTableau社のSENIOR SOLUTION ENGINEERであるSCOTT SMITH氏が2019年に公開しているので、すでにご存じの方もいらっしゃるかもしれません。

以下、Snowflake Account Usage Dashboards の使い方についてご紹介します。

Snowflake Account Usage Dashboardsの利用方法

上述の記事で公開されているTableau Workbook(.twb)をダウンロードします。Tableau Desktopも必要ですので所有していない場合はトライアルバージョンなどをご用意ください。サーバ不要でTableau Desktop単体でも利用できますので、気軽にお試しいただくことができますよ。

事前作業:Tableau WorkbookからSnowflakeへのアクセスを許可

デフォルト設定では、ACCOUNT_USAGEスキーマへのアクセスはACCOUNTADMINに限定されていますので、ACCOUNTADMIN以外のユーザがACCOUNT_USAGEスキーマを参照するにはアクセスを許可します。必要に応じて以下のエントリを参考にアクセス権を設定します。

Tableau WorkbookのSnowflake接続設定の変更

  1. ダウンロードしたTableau WorkbookファイルをTableau Desktopで開きます。Snowflakeへの接続情報が不足しているので、接続情報の入力を促すダイアログが表示されますが、ここでは何も設定を行わずにダイアログを閉じます。

  2. 新規ワークシートを作成して、メニューから「データ>新しいデータソース」を選択し、ご使用のSnowflakeにアクセスするための情報を入力します。役割には適切なアクセス権限を持つロールを設定します。この例ではACCOUNTADMINを設定しています。

  1. 適切なウェアハウスを指定し、データベースとして「SNOWFLAKE」を、スキーマとして「ACCOUNT_USAGE」を選択します。

  1. テーブルの一覧から「QUERY_HISTORY」テーブルを選択してデータソースに設定します。あとでオリジナルのQUERY_HISTORYと置き換えるので、「MY_QUERY_HISTORY」などの分かりやすいデータソース名を付けておきます。

  1. 同様に SNOWFLAKE.ACCOUNT_USAGE.WARHOSE_METTERING_HISTORY と SNOWFLAKE.ACCOUNT_USAGE.STORAGE_USAGE の2つのテーブルをデータソースとして設定します。これらのデータソース名も分かりやすい名前を付けるようにします。

  2. 3つのテーブルをデータソースとして追加したら、新しく追加したデータシートを選択した状態で、メニューから「データ>データソースの置換」を選択して、QUERY_HISTORYをMY_QUERY_HISTORYと置き換えます。

  1. WARHOSE_METTERING_HISTORY とSTORAGE_USAGE に対しても、同様にデータソースの置換を行います。

これで、このダッシュボードをあなたのSnowflake環境で使用する準備が整いました。それぞれのタブを開いてSnowflakeの利用状況を確認することができます。

  • Compute Cost Overview

  • Compute Credit Forecasting

  • Storage Cost

他にも以下のようなダッシュボードが用意されています。

  • User Adoption
  • Performance Monitoring
  • Slowest Running Queries
  • Error Tracking

まとめ

本エントリでは、Snowflake Account Usage Dashboardsを使用して、自社のSnowflake利用状況をサクッと可視化する方法についてご紹介しました。

このワークブックをTableau ServerやTableau Onlineに公開することで、チーム内でSnowflakeの利用状況をシェアすることも可能です。

なお、本ダッシュボードの説明にもある通り、一部データに対するクレジット消費は個別に確認をする必要があります。

Note: As of May, 2019 these tables do not contain any cost information pertaining to Materialized Views, Automatic Clustering or Snowpipe. That information is contained in separate tables.

確認をしたところ、マテリアイズドビューはMATERIALIZED_VIEW_REFRESH_HISTORYテーブル、クラスタリングの履歴はAUTOMATIC_CLUSTERING_HISTORYテーブル、Snowpipe処理によるクレジット消費はPIPE_USAGE_HISTORYテーブルで、それぞれ確認できるので、必要な場合はこれらのテーブルを参照するようにカスタマイズしましょう。

最後になりますが、本ダッシュボードのクレジット消費はあくまでも目安であり、最終的なクレジット消費量は請求情報をご確認いただく必要がありますのでご注意ください。

以上、最後までお読みいただきありがとうございました。