Snowflake データを利用する
Snowflake データをプラットフォームにインポートしたら、Cloud Analytics や Budgets、Allocations、Anomaly detection などの DoiT の機能を使用して、Snowflake のコストと使用状況を分析・モニタリングできます。
Cloud Analytics における Snowflake データ
標準ディメンション
標準の Cloud Analytics ディメンション を通じて Snowflake データを取得できます。Cloud Analytics と Snowflake の用語の対応表は次のとおりです。
| DoiT term | Snowflake term | Snowflake definition |
|---|---|---|
| Billing account ID | ORGANIZATION_NAME | 組織の名前。 |
| Cost | USAGE_IN_CURRENCY | USAGE_DATE の USAGE に対して USAGE_TYPE により課金された合計金額。 |
| Cost type | BALANCE_SOURCE | 日次使用量の支払いに使用された資金のソース。BALANCE_SOURCE の取り得る値 を参照してください。 |
| Project ID | ACCOUNT_NAME | 使用が発生したアカウントの名前。 |
| Service ID | SERVICE_TYPE | 使用の種類。SERVICE_TYPE の取り得る値 を参照してください。 |
| SKU | RATING_TYPE | レコード内の使用量がどのように評価または価格付けされるかを示します。取り得る値: compute、data_transfer、storage、other。 |
| Unit | USAGE | SERVICE_TYPE に基づき課金される合計使用量。 |
| Usage | BILLING_TYPE | 何が請求またはクレジットされているかを示します。BILLING_TYPE の取り得る値 を参照してください。 |
BALANCE_SOURCE の取り得る値
-
capacity: 組織のキャパシティコミットメントに残っているクレジットで支払われた使用量。 -
free usage: 組織に付与された無料クレジットでカバーされる使用量。 -
overage: 組織がキャパシティ、ロールオーバー、および無料クレジットをすべて使い切った後に、オンデマンド料金で支払われた使用量。 -
rebate: 組織が別の組織とデータを共有した際に付与されたクレジットでカバーされる使用量。 -
rollover: ロールオーバーク レジットで支払われた使用量。組織がキャパシティコミットメントを更新すると、未使用クレジットはロールオーバークレジットとして新しい契約の残高に追加されます。
SERVICE_TYPE の取り得る値
-
ai_functions: AI_COMPLETE、AI_TRANSLATE、SUMMARIZE などの Cortex AI Functions を指します。Cortex AI cost attribution を参照してください。 -
automatic_clustering: 自動クラスタリングを指します。 -
cloud_services: クラウドサービスのクレジット使用量を指します。 -
cortex_agents: Cortex Agents を指します。Cortex AI cost attribution を参照してください。 -
cortex_search: Cortex Search サービスを指します。Cortex AI cost attribution を参照してください。 -
data_transfer: データ転送料金の理解を指します。 -
logging: ログおよびトレーシングの概要を指します。 -
materialized_view: マテリアライズドビューの操作を指します。 -
query_acceleration: Query Acceleration Service の使用を指します。 -
replication: 複数アカウント間のレプリケーションとフェイルオーバーの概要を指します。 -
search_optimization: Search Optimization Service を 指します。 -
serverless_task: タスクの概要を指します。 -
snowflake_intelligence: データ分析向けの対話型アシスタントである Snowflake Intelligence を指します。 -
snowpipe: Snowpipe を指します。 -
snowpipe_streaming: Snowpipe Streaming を指します。 -
storage: ストレージコストの理解を指します。 -
warehouse_metering: 仮想ウェアハウスのクレジット使用量を指します。サーバーレスやクラウドサービスのコンピュート使用量は示しません。
Snowflake が AI 機能を拡張するに伴い、その他の Cortex および AI 関連のサービス種別が請求データに現れる場合があります。DoiT は、認識された推論処理、エージェント、および AI コーディングのサービス種別のみを GenAI の支出としてフラグします。非推奨の ai_services や、他の混在型・インフラ型のサービス種別は分 類されないままです。
BILLING_TYPE の取り得る値
-
consumption: コンピュートクレジット、ストレージコスト、データ転送コストに関連する使用量。 -
priority support: プライオリティサポートサービスの料金。この料金はアカウントではなく、契約上の条件に紐づきます。 -
rebate: 組織が別の組織とデータを共有した際に付与されたクレジットでカバーされる使用量。 -
support_credit: Snowflake に起因する問題として認定された請求を取り消すために、Snowflake Support がアカウントに付与したクレジット。 -
vps_deployment_fee: Virtual Private Snowflake デプロイメントの料金。
システムラベル
以下は、Cloud Analytics で使用できる Snowflake のシステムラベルです。
-
genai/genai_spend: 基盤モデルの直接推論、エージェント、または AI コーディングに対する支出を示します。非推奨の
AI_SERVICES、Cortex Search、ガードレール、ツール、ドキュメント処理、ファインチューニング、プロビジョンドスループットは GenAI の支出として分類されません。 -
genai/model および genai/model_family: 正準 Snowflake AI テレメトリにより報告されるモデルおよび正規化されたファミリー。
-
genai/usage_type および genai/pricing_unit: AI 使用量について報告されるトークン方向および単位。
-
genai/inference_region: Cortex REST API 推論について報告されるルーティング地域。
-
genai/user_id、genai/user_name、genai/user_email: 呼び出しユーザー。Cortex Agents のテレメトリはユーザー名を直接提供できます。メールアドレスの付与や、ユーザー ID のみを提供するソースに対する名前解決には、
SNOWFLAKE.SECURITY_VIEWERデータベースロールが必要です。ユーザー ID が名前の代わりに使用されることはありません。 -
snowflake/cortex_function、snowflake/cortex_agent、snowflake/cortex_agent_service_type: 帰属された使用量に関連する Snowflake AI SQL 関数または Cortex Agent のワークロード。
GenAI Spend には、認識された AI_FUNCTIONS、AI_INFERENCE、AI_INFERENCE_DEPRECATED、CORTEX_AGENTS、SNOWFLAKE_INTELLIGENCE、SNOWFLAKE_COWORK、Cortex Code、および Snowflake CoCo のサービス種別が含まれます。DoiT は CORTEX_AI_FUNCTIONS_USAGE_HISTORY を使用して、クレジットベースの AI SQL コストをアロケーションします。入力および出力トークン数は、Snowflake が関数呼び出しのクレジットをトークン種別ではなく合計として報告するため、ゼロコストの使用詳細として表示されます。Cortex REST API テレメトリにはリクエストレベルのコストがないため、AI_INFERENCE のモデル、ユーザー、リージョン、およびトークンの詳細もゼロコストの使用行として出力され、一方で集計請求行が正確なコストを保持します。
履歴の付与は、Snowflake の正準 Cortex 使用ビューの保持期間によって制限されます。古い請求期間についてテレメトリが利用できない場合、DoiT はモデル、トークン、ユーザーの詳細を重複または非推奨ビューから推定することなく、元の請求行とコストを保持します。
-
snowflake/database_id: Snowflake データベースの ID。
-
snowflake/database_name: Snowflake データベースの名前。
-
snowflake/query_hash: 識別およびグルーピングに使用される、クエリテキストの暗号ハッシュ。Query cost を参照してください。
-
snowflake/query_parameterized_hash: 識別およびグルーピングに使用される、パラメータ化後のクエリテキストの暗号ハッシュ。Query cost を参照してください。
-
snowflake/service_level: Snowflake ウェアハウスに関連付けられているサービスレベル(Standard や Enterprise など)。
-
snowflake/user_name: クエリを実行したユーザーの名前。
-
snowflake/warehouse_credit_cloud_services_rate: ストレージやネットワーキングなど、クラウドサービスに対するウェアハウスクレジット単価。
-
snowflake/warehouse_credit_compute_rate: コンピュートリソースに対するウェアハウスクレジット単価。
-
snowflake/warehouse_id: Snowflake ウェアハウスの ID。
-
snowflake/warehouse_name: Snowflake ウェアハウスの名前。
Cortex AI labels
次のシステムラベルが Snowflake Cortex AI の請求行に表示されます。これらのラベルが何を表しているかの詳細については、Cortex AI cost attribution を参照してください。
-
genai/coding_agent: Cortex Code のサービス種別(
cortex_code_*)に対してtrueに設定されます。 -
genai/genai_spend: すべての Cortex および AI 関連のサービス種別に対して
trueに設定されます。このラベルを使用して、プロバイダをまたいだ GenAI の支出をフィルターできます。これは GenAI Intelligence で使用されているものと同じフラグです。 -
genai/model: 使用された AI モデル名(例:
claude-3-5-sonnet、llama3.1-70b)。ai_functionsの行および、使用 タイプ がembed_text_tokensのcortex_searchの行で利用可能です。 -
genai/model_family: モデルファミリー(例:
Claude、Meta Llama、Mistral)。ai_functionsの行および、使用 タイプ がembed_text_tokensのcortex_searchの行で利用可能です。 -
genai/pricing_unit: 消費メトリックの測定単位(例 :
tokens、pages)。ai_functionsの行および、使用 タイプ がembed_text_tokensのcortex_searchの行で利用可能です。 -
genai/usage_type: Cortex サービス内での消費タイプ(例:AI Functions の
input、output、total、Cortex Search のserving、embed_text_tokens、batchなど)。 -
genai/user_email: リクエストを開始した Snowflake ユーザーのメールアドレス。
ai_functionsおよびcortex_agentsの行で利用可能で、SECURITY_VIEWER権限が必要です。Connect Snowflake を参照してください。 -
genai/user_id: リクエストを開始した Snowflake ユーザーの数値ユーザー ID。
ai_functionsおよびcortex_agentsの行で利用可能です。 -
genai/user_name: リクエストを開始した Snowflake ユーザーの名前。
ai_functionsおよびcortex_agentsの行で利用可能です。SECURITY_VIEWER権限がない場合、AI Functions の行では数値ユーザー ID が使用されますが、Cortex Agents の行では Snowflake によって報告されたユーザー名が保持されます。 -
snowflake/cortex_agent: Cortex Agent の完全修飾名(例:
MY_DB.MY_SCHEMA.MY_AGENT)。cortex_agentsの行で利用可能です。 -
snowflake/cortex_function: 呼び出された Cortex AI 関数(例:
AI_COMPLETE、AI_TRANSLATE)。ai_functionsの行で利用可能です。 -
snowflake/cortex_search_service: Cortex Search サービスの完全修飾名。
cortex_searchの行で利用可能です。
QUERY_TAG
DoiT は Snowflake の QUERY_TAG をサポートします。これらのタグは、Cloud Analytics レポート の Labels & Tags に表示されます。
Extended metrics
GenAI Units
GenAI Units メトリックは、Snowflake の標準的な AI 使用状況ビューからトークン使用量を記録します。Cortex REST API 推論の場合、これらの使用状況のみの詳細行にはコストがゼロとして表示されます。正確なコストは集約された AI_INFERENCE 行に残ります。
Query Cost
Query Cost メトリックは、特定のクエリが Snowflake ウェアハウスで消費したリソース量の推定値を定量化します。クエリの実行時間に基づき、そのクエリの実行に関連する計算コストを推定します。
コンピュートコストは、そのウェアハウスで実行されるすべてのクエリに対して、ウェアハウス稼働時間の占有率に基づき按分されます。たとえば、あるクエリがウェアハウスの稼働可能時間 1 時間のうち 15 秒間実行された場合、そのクエリは 1 時間分のコンピュートリソースを消費したものとして記録されます。ウェアハウスが 1 時間アイドル状態でクエリがまったく実行されなかった場合、その時間に対応するコンピュートコストは発生しません。
Query Cost メトリックは、クエリのプロファイリングおよびリソース使用状況の把握のみを目的としています。実際に発生したコストに直接対応するものではなく、財務メトリックとして使用すべきではありません。
これをレポートで設定するには、リソース ID でグループ化して、特定のリソース上でどのクエリが実行されたかを確認してください。これにより Snowflake クエリ ID が特定でき、その ID を使って Snowflake 上でクエリを追跡できます。クエリが複数回実行されている場合、それらの繰り返しクエリが全体コストにどの程度寄与しているかを追跡できます。
さらに、次のディメンションを使用すると、値が異なる場合でも同一または類似のクエリを特定するのに役立ちます。
-
snowflake/query_hash: クエリテキストに基づいて生成されます。同じクエリが異なる値で複数回実行された場合でも、
query_hashは同じになります。Using the Hash of the Query (query_hash) を参照してください。 -
snowflake/query_parameterized_hash: 特定の値をプレースホルダーに置き換えた後に生成されます。同じクエリが異なる値で複数回実行された場合でも、
query_parameterized_hashは同じになります。Using the Hash of the Parameterterized Query (query_parameterized_hash) を参照してください。
このメトリックの利用例については、Query cost を参照してください。
GenAI Units
GenAI Units メトリックは、Cortex AI オペレーションによって消費されたトークン数(またはページなどの他の単位)を報告します。ai_functions、cortex_agents、cortex_search サービス種別の請求行で利用可能です。Cortex Search については、Snowflake は embed_text_tokens の使用 タイプ に対してのみトークン数を報告し、serving および batch の行にはトークン数は含まれません。
このメトリックを使用して、コストとは独立に、モデル・エージェント・検索サービス全体のトークンレベルの消費パターンを把握してください。たとえば、genai/model でグループ化してモデル間のトークン使用量を比較したり、genai/user_name でグループ化して最も多くト ークンを消費しているユーザーを特定したりできます。
Cortex AI cost attribution
DoiT は、集約された Snowflake Cortex の請求行を、個々のモデル、関数、エージェント、検索サービス、およびユーザーに帰属された詳細行に分解します。これにより、どの AI ワークロードが Cortex コストを発生させているかをきめ細かく可視化できます。
アトリビューションは、次の 3 種類の Cortex サービス種別で利用可能です。
-
AI Functions(
ai_functions): コストはモデルと関数の組み合わせごと(例:AI_COMPLETE経由のclaude-3-5-sonnet)に、ユーザー単位およびウェアハウス単位のアトリビューションとともに分割されます。トークン数は GenAI Units として報告されます。 -
Cortex Agents(
cortex_agents): コストはエージェントとユーザーの組み合わせごとに分割されます。トークン数は GenAI Units として報告されます。 -
Cortex Search(
cortex_search): コストは検索サービスおよび消費タイプ(servingやembed_text_tokensなど)ごとに分割され、該当する場合はモデル単位のアトリビューションも行われます。
その他の Cortex および AI サービス種別(snowflake_intelligence など)は、genai/genai_spend = true が立てられた集約請求行として表示されますが、 モデル単位またはユーザー単位の内訳は含まれません。
Cortex AI のアトリビューションには USAGE_VIEWER データベースロールが必要です。AI Functions の行でユーザー名を解決し、AI Functions および Cortex Agents の行にメールアドレスを追加するには、さらに SECURITY_VIEWER データベースロールが必要です。詳細については Connect Snowflake を参照してください。
Example reports
このセクションでは、Cloud Analytics で Snowflake データを扱う方法を示すレポート例を紹介します。標準ディメンションおよびメトリクスを Snowflake の query tags と組み合わせてレポートを作成できます。
Overall cloud spend
この例は、直近数か月における組織全体のクラウドコストを示します。
- Group by: Provider

DOIT_WAREHOUSE cost
この例は、DoiT がお客様の代わりに作成したウェアハウスである DOIT_WAREHOUSE によって、直近数か月に発生したコストを示します。
-
Group by: snowflake/warehouse_name
-
Filters: snowflake/warehouse_name equals
DOIT_WAREHOUSE

Query cost
この例は、前月の 1 日あたりの Query Cost 上位 10 件を示します。
-
Metric: Query Cost
-
Filters
- Provider:
Snowflake - Service:
WAREHOUSE_METERING
- Provider:
-
Group by:
Resource -
Limit results:
limit by top/bottom
