Snowflake仮想ウェアハウス、ストレージ、クラウドサービスの使用について

Snowflakeは、データウェアハウジングでこれまでにない柔軟性とスケーラビリティを実現します。Snowflakeの価格設定の目標は、これらの機能を可能な限り簡単な方法で低コストで有効にすることです。

Snowflakeクラウドアーキテクチャは、データウェアハウジングを次の3つの異なる機能に分類します:コンピューティングリソース(仮想ウェアハウス として実装)、データストレージ、クラウドサービス。Snowflakeの使用に関連するコストは、これらの各機能の使用状況に基づいています。

このトピックの内容:

仮想ウェアハウスのクレジット使用状況

仮想ウェアハウスは、顧客によるクエリの実行、データのロード、他の DML 操作の実行を可能にする1つ以上のコンピュートクラスタです。 Snowflakeクレジット は、各仮想ウェアハウスで使用される処理時間の支払いに使用されます。

Snowflakeクレジットは、使用する仮想ウェアハウスの数、実行時間、およびサイズに基づいて請求されます。

ウェアハウスには8つのサイズがあります。サイズは、ウェアハウス内のクラスターごとのサーバーの数を指定します。ウェアハウスクラスター内のサーバーの数と、ウェアハウスが フル に稼働している時間ごとに請求されるクレジット数は、1対1の関係があります。

XS

S

M

L

XL

2XL

3XL

4XL

1

2

4

8

16

32

64

128

重要

  • ウェアハウスは、稼働中のクレジット使用状況に対してのみ請求されます。ウェアハウスが停止されると、クレジットの使用は発生しません。

  • ここに表示されるクレジットの数は、1時間の使用量です。ただし、クレジットは毎秒、最低60秒(つまり、1分)で請求されます:

    • ウェアハウスが開始されるか、より大きなサイズにサイズ変更されるたびに、上記の時間料金に基づいて1分の使用量に対して請求されます。

    • 1分を過ぎると、それ以降のすべての請求は1秒単位です。

    • 最初の1分以内にウェアハウスを停止して再起動しても、請求額は変わりません。最小請求額は1分です。

    • ウェアハウスのサイズが大きくなると、クレジットはプロビジョニングされた 追加 サーバーに対してのみ請求されます。たとえば、S(2)からM(4)に変更すると、1分の2クレジットの請求料金が発生します。

詳細については、 ウェアハウスの概要 および ウェアハウスに関する考慮事項 をご参照ください。

アカウントのウェアハウスクレジットの使用状況の表示

ACCOUNTADMIN ロールを持つユーザーは、Snowflakeウェブインターフェイスまたは SQL を使用して、アカウント内のすべてのウェアハウスの毎月および毎日のクレジット使用状況を表示できます。

アカウントのウェアハウスクレジット使用状況を表示するには:

ウェブインターフェイス

Account Account tab » Billing & Usage をクリックします

SQL

Query either of the following:

クラウドサービスのクレジット使用状況

クラウドサービスレイヤーは、Snowflake全体のアクティビティを調整するサービスのコレクションです。これらのサービスは、ログインからクエリディスパッチまでのユーザーリクエストを処理するために、Snowflakeのさまざまなコンポーネントをすべて結び付けます。クラウドサービスレイヤーは、クラウドプロバイダーからSnowflakeによってプロビジョニングされたコンピューティングインスタンスでも実行されます。

この層のサービスの中には、

  • 認証

  • インフラストラクチャ管理

  • メタデータ管理

  • クエリの解析および最適化

  • アクセス制御

仮想ウェアハウスの使用と同様に、 Snowflakeクレジット は、コンピューティングリソースの1日の使用量の10%を超えるクラウドサービスの使用に対する支払いに使用されます。

クラウドサービスの使用は、クラウドサービスの1日の消費量がコンピューティングリソースの1日の使用量の10%を超えた場合にのみ請求されます。料金は毎日計算されます( UTC タイムゾーン)。これにより、その日のクレジット価格で、毎日10%の調整が正確に適用されます。

クラウドサービスの使用に対する請求について

  • クラウドサービスの10%調整は、毎日( UTC タイムゾーンにて)の計算に10%を掛けて毎日計算されます。

  • 月次使用状況ステートメントの調整は、これらの日次計算の合計に等しくなります。

  • 特定の日のクラウドサービスの消費が、コンピューティングクレジットの10%未満の場合、その日の調整は顧客が使用したクラウドサービスと同じになります。毎日の調整が、その日の実際のクラウドサービスの使用状況を超えることはありません。したがって、毎月の合計調整額は10%を大幅に下回る場合があります。

例:

日付

コンピューティングクレジット

クレジットクラウドサービス

含まれるクラウドサービスのクレジット調整(クラウドサービスの最小値またはコンピューティングの10%)

クレジットの請求(コンピューティング、クラウドサービス、および調整の合計)

11月1日

100

20

-10

110

11月2日

120

10

-10

120

11月3日

80

5

-5

80

11月4日

100

13

-10

103

合計

400

48

-35

413

クラウドサービスのクレジット使用状況の表示

ACCOUNTADMIN のロールを持つユーザーは、Snowflakeウェブインターフェイスまたは SQL を使用して、ウェアハウスおよびジョブごとに毎日および毎月のクラウドサービスのクレジット使用状況を表示できます。

アカウントのクラウドサービスのクレジット使用状況を表示するには:

ウェブインターフェイス

Account Account tab » Billing & Usage をクリックします

SQL

ACCOUNT_USAGE:

  • アカウントの1時間ごとの使用状況を表示するには、 METERING_HISTORY をクエリします。

  • アカウントの毎日の使用状況を表示するには、 METERING_DAILY_HISTORY をクエリします。

  • ウェアハウスの使用状況を表示するには、 WAREHOUSE_METERING_HISTORY をクエリしします。

  • ジョブの使用状況を表示するには、 QUERY_HISTORY をクエリします。

INFORMATION_SCHEMA:

注釈

含まれるクラウドサービスの調整(コンピューティングの10%まで)は、毎月の使用状況ステートメントと METERING_DAILY_HISTORY ビューにのみ表示されます。 UI および WAREHOUSE_METERING_HISTORY ビューで表示可能な情報は、この調整を考慮しないため、実際のクレジット消費量よりも大きくなる可能性があります。

クラウドサービスの使用状況の情報源を調べる方法

次のクエリを使用して、クラウドサービスの使用状況を確認します。

クエリ履歴

例:最も多くのクラウドサービスクレジットを消費するクエリをタイプ別に検索

-- The current role must have access to the account usage share
use schema snowflake.account_usage;

select query_type, sum(credits_used_cloud_services) cs_credits, count(1) num_queries
from query_history
where true
and start_time >= timestampadd(day, -1, current_timestamp)
group by 1
order by 2 desc
limit 10;

例:最も多くのクラウドサービスクレジットを消費する特定のタイプのクエリを検索

-- The current role must have access to the account usage share
use schema snowflake.account_usage;

select *
from query_history
where true
  and start_time >= timestampadd(day, -1, current_timestamp)
  and query_type = 'COPY'
order by credits_used_cloud_services desc
limit 10;

例:クラウドサービスの使用状況のさまざまなコンポーネントで並べ替え

-- The current role must have access to the account usage share
use schema snowflake.account_usage;

select *
from query_history
where true
  and start_time >= timestampadd(minute, -60, current_timestamp)
  and query_type = 'COPY'   --- optional
order by compilation_time desc,
               execution_time desc,
               list_external_files_time desc,
               queued_overload_time desc,
               credits_used_cloud_services desc
limit 10;

ウェアハウス履歴

例:最も多くのクラウドサービスクレジットを消費しているウェアハウスを検索

-- The current role must have access to the account usage share
use schema snowflake.account_usage;

select warehouse_name,
       sum(credits_used_cloud_services) credits_used_cloud_services,
       sum(credits_used_compute) credits_used_compute,
       sum(credits_used) credits_used
from warehouse_metering_history
where true
  and start_time >= timestampadd(day, -1, current_timestamp)
group by 1
order by 2 desc
limit 10;

データストレージの使用状況

データストレージは、次を含むSnowflakeアカウントに毎日保存されるすべてのデータのディスク上の平均バイト数に基づいて毎月計算されます。

  • バルクデータのロード/アンロードのために、Snowflakeの場所(つまり、ユーザーステージとテーブルステージまたは内部の名前付きステージ)に保存されているファイル。ファイルをステージングするユーザーは、ストレージを削減するためにファイルを圧縮するかどうかを選択できます。

  • Time Travel用に保持される履歴データを含む、データベーステーブルに保存されたデータ。Snowflakeはテーブルに保存されているすべてのデータを自動的に圧縮し、圧縮されたファイルサイズを使用して、アカウントに使用される合計ストレージを計算します。

  • Fail-safeのために保持される履歴データ。

Snowflakeにデータを保存するための月額費用は、テラバイト(TB)あたりの定額に基づいています。 TB ごとに請求される金額は、アカウントのタイプ(容量またはオンデマンド)と地域(US または EU)によって異なります。データストレージの価格については、 価格設定ページ (Snowflake Webサイト)をご覧ください。

アカウントのデータ使用量を表示する

ACCOUNTADMIN のロールを持つユーザーは、Snowflakeウェブインターフェイスまたは SQL を使用して、アカウントの月間および日単位の平均データストレージ(バイト単位)を表示できます。

アカウントのデータストレージ(テーブル、ステージ、Fail-safe用)を表示するには:

ウェブインターフェイス

Account Account tab » Billing & Usage をクリックします

SQL

Query any of the following:

テーブルのデータ使用量を表示する

適切なアクセス権限を持つユーザーは、ウェブインターフェイスまたは SQL を使用して、スキーマ/データベース内の個々のテーブルのサイズ(バイト単位)を表示できます。

ウェブインターフェイス

Databases Databases tab » <データベース名> » Tables をクリックします

SQL

SHOW TABLES コマンドを実行します。

さらに、 ACCOUNTADMIN ロールを持つユーザーは SQL を使用してテーブルサイズ情報を表示できます。

SQL

Query either of the following:

重要

テーブルに表示されるサイズは、テーブル全体がクエリでスキャンされる場合にスキャンされるバイト数を表します。ただし、この数字はテーブルの物理バイト数(つまり、ディスクに保存されているバイト数)とは異なる場合があります。具体的には、クローンテーブルと削除されたデータを含むテーブルの場合です。

  • クローンテーブルは追加のストレージを使用しません(表に行が追加されるか、表の既存の行が変更または削除されるまで)。その結果、表示されるテーブルのサイズは、テーブルに保存されている実際の物理バイトよりも 大きく 、つまり、サイズが示すよりもアカウントのデータストレージ全体においてより 小さい 容量を占めています。

  • テーブルから削除されたデータは、表示されるテーブルサイズには含まれません。ただし、データのTime Travel保持期間(デフォルトは1日)とFail-safe期間(7日)の両方が経過するまで、データはSnowflakeに保持されます。これらの2つの期間中、表示されるテーブルサイズは、テーブルに保存されている実際の物理バイトよりも 小さく 、つまり、サイズが示すよりもアカウントのデータストレージ全体においてより 大きい 容量を占めています。

クローンテーブルおよび削除されたデータのストレージの詳細については、 データストレージに関する考慮事項 をご参照ください。