Snowpipe Streaming Classicのコスト¶
Snowpipe Streamingのサーバーレスコンピューティングモデルを使用すると、ユーザーは仮想ウェアハウスを管理することなく、任意のデータ量をストリーミングできます。代わりに、Snowflakeはコンピューティングリソースを提供および管理し、現在のSnowpipe Streamingのロードに基づいて容量を自動的に拡大または縮小します。
Snowpipe Streaming Classicでは、サーバーレスコンピュートとアクティブ クライアント ストリーミング インジェストが使用する秒あたりの時間に基づいてアカウントが課金されます。以下のことに注意してください。
ファイルの移行は、ストリーミングのインジェスチョンとは非同期に行われます。
ファイルの移行は、クラスタリングまたはその他の DML 操作によって先に実行される場合があります。
ファイルの移行が常に行われるとは限らないため、コンピューティングコストが削減される可能性があります。
Snowflakeが管理する Apache Iceberg™ テーブルの場合、ファイルの移行はIcebergテーブルのメンテナンスと同様に操作され、必要に応じて新しいコンパクト化されたParquetファイルを作成します。
詳細については、 Snowflakeサービス利用テーブル の「サーバーレス機能クレジットテーブル」をご参照ください。
Snowpipe Streamingの料金の見積もり¶
Snowpipe Streamingの負荷を区別できる要因の数を考えると、Snowflakeがサンプル価格を提供することは非常に困難です。記録のサイズ、記録数、データ型などは、ファイル移行のコンピューティングリソースの消費に影響を与える可能性があります。クライアントの料金は、1秒あたりにアクティブにSnowflakeにデータを書き込んでいるクライアントの数によってのみ決定されます。
一般的なストリーミングインジェスチョンのロードを実行して、将来の料金を見積もってみることをお勧めします。ストリーミングインジェスチョンのサンプルと推定コストについては、 このブログ記事 をご覧ください。
仮ファイルストレージと請求¶
Snowpipe Streaming API は、ユーザーがファイルを明示的にステージングすることなく、Snowflakeテーブルに行を直接書き込むように設計されています。Snowpipe Streaming Classicでは、Snowflakeの内部プロセスはデータの仮バッファーに透過的な内部ステージを使用します。従来のアーキテクチャ SDK を持つSnowpipe Streamingは、Snowflakeのネイティブファイル形式に変換される前に、この内部ステージに中間ファイルを生成してアップロードします。
Snowflakeは、内部ステージでこれらの仮ファイルによって消費されるストレージに対して請求を行います。このストレージコストは、 Snowpipe Streamingサーバーレスコンピューティングコストとは別に、Snowflakeの請求書の一般的な「ストレージコスト」の下に表示されます。
内部ステージにあるこれらの仮ファイルの保持期間は、ターゲットテーブルのデータ保持時間(または、特定のテーブル保持が設定されていない場合はアカウントレベルの保持)に直接関連付けられています。Snowflakeは、定義されたTime Travelウィンドウを外れると、これらのファイルを自動的に削除します。通常、保持期間を終了してから1日以内にデータが削除されます。ユーザーには、これらの内部ステージファイルへの直接アクセス権や可視性はありません。
Snowpipe Streamingを使用したテーブルのクローニング¶
従来のアーキテクチャを持つSnowpipe Streamingを通じてアクティブにデータを受信しているテーブルをユーザーがクローンすると、ストレージコストがより高くなる可能性があります。この追加コストは、基礎となるデータファイルの重複によるものではありません。Snowflakeはゼロコピークローニングを実行します。代わりに、従来のアーキテクチャ SDK を持つSnowpipe Streamingによって処理されたデータは、一時的に内部ステージに格納されますが、まだターゲットテーブルに完全にはコミットされておらず転送中のデータとなるため、元のテーブルとクローンの両方でファイルの移行が必要になります。この仮ファイルの二重処理により、ファイル移行の消費が増加し、ストレージの使用量が多くなります。通常、この追加コストは非常にわずかであり、最大約5分の仮ファイルのコストを反映しますが、これらの移行でシステムに遅延が発生した場合は、スループットが非常に高く、コストが増える可能性があります。この重複は、ストレージ消費の増加につながります。
対照的に、高性能アーキテクチャを持つSnowpipe Streamingは、ストリーミングデータをアクティブに受信するテーブルに対して真のゼロコピークローニングを提供します。高性能アーキテクチャにより、クローニング操作は標準的なSnowflakeテーブルクローンと同様に動作します。これは、クローン操作の後に書き込まれる新しいデータのみが追加のストレージを消費することを意味します。クローニング時に転送中のデータは、この二重移行の対象ではありません。その結果、ストリーミングテーブルのコスト効率に優れたクローニングのメリットを享受できます。
アカウントのデータロード履歴の表示¶
アカウント管理者(ACCOUNTADMIN ロールを持つユーザー)または MONITOR USAGE グローバル権限が付与されたロールを持つユーザーは、SQL コマンドを使用して、指定された日付範囲内でSnowflakeアカウントに請求されるクレジットを表示できます。次のビューを使用してSnowflakeテーブルに移行されたデータの履歴、Snowpipe Streamingを使用してSnowflakeテーブルにデータを読み込むのにかかった時間、および消費したクレジットのクエリを実行することができます。
コンピューティングコストとクライアントコストの両方を含むSnowpipe Streamingコストの合計を表示するには、 SERVICE_TYPE
が SNOWPIPE_STREAMING
にセットされているときに、計測履歴をクエリします。
Snowpipe Streamingの総コストのクエリに関する詳細については、 SQL の例 をご参照ください。
クライアントのインジェスチョンと移行コンピューティングの詳細な内訳を確認するには、以下のビューをクエリします。