SnowflakeのOrganization配下で複数アカウントを運用する場合、 コストの可視化と配賦は重要な管理課題です。SNOWFLAKE.ORGANIZATION_USAGEスキーマには、 アカウント横断でコンピュート・ストレージ・データ転送の使用量を集約したビューが用意されており、ORGADMINロールで参照できます。
ORGANIZATION_USAGEスキーマはSNOWFLAKEデータベース内にあり、 ORGADMINロールでアクセスします。 主要なビューは以下のとおりです。
| ビュー名 | 内容 | 主な用途 |
|---|---|---|
| WAREHOUSE_METERING_HISTORY | アカウント別ウェアハウスのクレジット消費 | コンピュートコストの内訳分析 |
| STORAGE_USAGE | アカウント別ストレージ使用量 | ストレージコストの推移把握 |
| DATA_TRANSFER_HISTORY | リージョン間データ転送量 | 転送コストの分析 |
| USAGE_IN_CURRENCY_DAILY | 日次の通貨換算済みコスト | 金額ベースのコストレポート |
| RATE_SHEET_DAILY | 日次の料金レート | 単価の確認・コスト計算 |
| REMAINING_BALANCE_DAILY | Capacityプランの残高 | 契約残高の監視 |
| CONTRACT_ITEMS | 契約内容の詳細 | 契約の確認 |
-- ORGADMINロールの有効化(ACCOUNTADMINが実行)
USE ROLE ACCOUNTADMIN;
-- ORGADMINロールを使用
USE ROLE ORGADMIN;
-- Organization内のアカウント一覧を確認
SHOW ORGANIZATION ACCOUNTS;-- アカウント別・ウェアハウス別のクレジット消費(過去30日)
USE ROLE ORGADMIN;
SELECT
ACCOUNT_NAME,
WAREHOUSE_NAME,
SUM(CREDITS_USED_COMPUTE) AS compute_credits,
SUM(CREDITS_USED_CLOUD_SERVICES) AS cloud_credits,
SUM(CREDITS_USED_COMPUTE + CREDITS_USED_CLOUD_SERVICES) AS total_credits
FROM SNOWFLAKE.ORGANIZATION_USAGE.WAREHOUSE_METERING_HISTORY
WHERE START_TIME >= DATEADD('DAY', -30, CURRENT_TIMESTAMP())
GROUP BY ACCOUNT_NAME, WAREHOUSE_NAME
ORDER BY total_credits DESC;
-- アカウント別のコンピュートコスト推移(日次)
SELECT
DATE_TRUNC('DAY', START_TIME) AS usage_date,
ACCOUNT_NAME,
SUM(CREDITS_USED_COMPUTE) AS daily_compute_credits
FROM SNOWFLAKE.ORGANIZATION_USAGE.WAREHOUSE_METERING_HISTORY
WHERE START_TIME >= DATEADD('DAY', -90, CURRENT_TIMESTAMP())
GROUP BY usage_date, ACCOUNT_NAME
ORDER BY usage_date, ACCOUNT_NAME;-- アカウント別のストレージ使用量(直近のスナップショット)
SELECT
ACCOUNT_NAME,
USAGE_DATE,
AVERAGE_STAGE_BYTES / POWER(1024, 4) AS stage_tb,
AVERAGE_DATABASE_BYTES / POWER(1024, 4) AS db_tb,
AVERAGE_FAILSAFE_BYTES / POWER(1024, 4) AS failsafe_tb,
(AVERAGE_STAGE_BYTES + AVERAGE_DATABASE_BYTES + AVERAGE_FAILSAFE_BYTES)
/ POWER(1024, 4) AS total_tb
FROM SNOWFLAKE.ORGANIZATION_USAGE.STORAGE_USAGE
WHERE USAGE_DATE >= DATEADD('DAY', -30, CURRENT_DATE())
ORDER BY total_tb DESC;USAGE_IN_CURRENCY_DAILYは消費量を通貨換算した日次コストを提供します。 クレジット単価の違いを考慮した正確な金額比較が可能です。
-- アカウント別・カテゴリ別の月次コスト(通貨ベース)
SELECT
ACCOUNT_NAME,
USAGE_TYPE,
DATE_TRUNC('MONTH', USAGE_DATE) AS usage_month,
SUM(USAGE_IN_CURRENCY) AS monthly_cost_usd
FROM SNOWFLAKE.ORGANIZATION_USAGE.USAGE_IN_CURRENCY_DAILY
WHERE USAGE_DATE >= DATEADD('MONTH', -3, CURRENT_DATE())
GROUP BY ACCOUNT_NAME, USAGE_TYPE, usage_month
ORDER BY usage_month DESC, monthly_cost_usd DESC;
-- コストカテゴリの内訳:
-- compute : ウェアハウスのコンピュート
-- cloud_services : Cloud Services Layer
-- storage : ストレージ
-- data_transfer : リージョン間転送
-- serverless : サーバーレス機能(Snowpipe/SOSなど)-- 各アカウントの料金レートを確認
SELECT
ACCOUNT_NAME,
USAGE_DATE,
SERVICE_TYPE,
EFFECTIVE_RATE,
CURRENCY
FROM SNOWFLAKE.ORGANIZATION_USAGE.RATE_SHEET_DAILY
WHERE USAGE_DATE = CURRENT_DATE() - 1
ORDER BY ACCOUNT_NAME, SERVICE_TYPE;-- Capacity契約の残高推移
SELECT
DATE,
ORGANIZATION_NAME,
CURRENCY,
FREE_USAGE_BALANCE,
CAPACITY_BALANCE,
ON_DEMAND_CONSUMPTION_BALANCE,
ROLLOVER_BALANCE
FROM SNOWFLAKE.ORGANIZATION_USAGE.REMAINING_BALANCE_DAILY
WHERE DATE >= DATEADD('DAY', -90, CURRENT_DATE())
ORDER BY DATE;組織横断コスト管理では、アカウント別だけでなく部門別・プロジェクト別のコスト配賦が求められます。
| 比較項目 | ACCOUNT_USAGE | ORGANIZATION_USAGE |
|---|---|---|
| スコープ | 単一アカウント | Organization全体(全アカウント) |
| 必要ロール | IMPORTED PRIVILEGES権限 | ORGADMIN |
| 保持期間 | 365日 | 365日 |
| データ遅延 | 最大45分〜3時間 | 最大24時間 |
| 主な用途 | アカウント内の詳細分析 | 組織横断のコスト可視化 |
SnowPro
問題 1
Organization管理者が、配下の全アカウントの月次コストを通貨ベースで集計したレポートを作成したいと考えています。最も適切なデータソースとロールの組み合わせはどれですか?
正解: B
Organization全体の通貨ベースコスト集計にはORGADMINロールでUSAGE_IN_CURRENCY_DAILYビューを使用します。ACCOUNT_USAGEは単一アカウントの情報しか持たず、SHOW ORGANIZATION ACCOUNTSはコスト情報を含みません。RATE_SHEET_DAILYは単価情報のみで消費量を含みません。
ORGANIZATION_USAGEスキーマを参照するにはどの権限が必要ですか?
ORGANIZATION_USAGEスキーマのビューにアクセスするには、ORGADMINロールが必要です。ORGADMINはOrganization内の全アカウントを管理する特権ロールで、任意のアカウントのACCOUNTADMINがORGADMINを有効化できます。SNOWFLAKEデータベースのIMPORTED PRIVILEGESとは異なり、ORGANIZATION_USAGEはORGADMINロール専用のスキーマです。
RATE_SHEET_DAILYビューで何がわかりますか?
RATE_SHEET_DAILYはOrganization内の各アカウントに適用されている日次の料金レート(1クレジットあたりの単価、ストレージ単価など)を確認できるビューです。契約プラン(On-Demand / Capacity)やエディション(Standard / Enterprise / Business Critical)によって単価が異なるため、コスト分析の際に消費量×単価の正確な計算が可能になります。
Organization BillingとアカウントレベルのResource Monitorの関係は?
Resource Monitorはアカウント内のウェアハウスに対するクレジット消費の監視・制限機能で、閾値到達時にSUSPEND/NOTIFY等のアクションを実行します。Organization Billingは複数アカウントを横断したコストの可視化・集計機能であり、使用量の制限機能は持ちません。コスト制御にはResource Monitor(アカウント内)とBudgets機能(アカウント/Organization横断)を併用します。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Snowflake資格一覧|全11試験(SnowPro)の難易度・費用
Snowflake認定資格(SnowPro)全11試験の一覧・難易度・費用・出題範囲を徹底解説。...
Snowflake試験の難易度ランキング|全11資格を徹底比較
Snowflake(SnowPro)認定全11試験の難易度をランキング形式で比較。学習時間・合格に必要なスキルから分析。...
Snowflake資格の勉強方法|効率的な学習ルートと合格のコツ
Snowflake認定資格(SnowPro)に最短で合格するための勉強方法。公式リソース・学習スケジュールを徹底ガイド。...
SnowPro Core試験完全解説|出題範囲・問題例・合格戦略
SnowPro Core Certification(COF-C03)を徹底解説。出題範囲・100問の試験形式・合格ライ...
SnowPro Platform Associate完全解説|入門試験の攻略
SnowPro Associate: Platform Certification(SOL-C01)を徹底解説。最も簡単...