チュートリアル: 予算の作成を始める¶
概要¶
このチュートリアルでは、アカウント予算を設定し、指定したオブジェクトのグループを監視するカスタム予算を作成することで、バジェットを使用したアカウントレベルのクレジット使用状況の監視について紹介します。
バジェットを使用すると、バックグラウンドメンテナンスタスクやサーバーレス機能のクレジット使用状況を含め、サポートされているオブジェクトのコンピューティングコストのクレジット使用状況を監視できます。バジェットでは、予算ごとに毎月の支出上限を設定することができ、現在の支出が毎月の支出上限を超えると予測される場合に通知メールを送信します。
このチュートリアルは、 Snowsight のワークシートを使用するか、 SnowSQL などの CLI クライアントを使用して完了できます。このチュートリアルの一部は、 Snowsight を使用して完了できます。
このチュートリアルが終わるまでに、以下の方法を習得できます。
予算を監視および管理するためのカスタムロールを作成します。
カスタム予算にオブジェクトを追加するために必要な権限を付与します。
アカウント予算をアクティブ化および設定します。
カスタム予算を作成し、オブジェクトを追加します。
前提条件¶
このチュートリアルを完了するには、以下の前提条件が必要です。
このチュートリアルで使用するロールを作成するには、ACCOUNTADMINロールを使用する必要があります。
メールアドレスを確認する する必要があります。予算通知リストに追加できるのは、認証済みのメールアドレスのみです。
通知統合を作成する¶
予算は、通知統合を使用して、現在のクレジット使用状況が月間使用限度額を超えると予想される場合に通知メールを送信します。 ALLOWED_RECIPIENTS
リストには、予算通知を受け取るために、検証済みのユーザーのメールアドレスが含まれている 必要があります。
SQLを使用してチュートリアルを完了する場合は、通知の統合が必要です。以下の手順に従って作成してください。
Snowsight を使用して予算を設定すると、通知の統合が自動的に作成されます。 Snowsight を使って予算を設定する場合は、次のステップに進んでください。
以下のステートメントを実行して、通知統合を作成します。ALLOWED_RECIPIENTS リストには、認証済みのメールアドレスを使用してください。
USE ROLE ACCOUNTADMIN; CREATE NOTIFICATION INTEGRATION budgets_notification_integration TYPE=EMAIL ENABLED=TRUE ALLOWED_RECIPIENTS=('<YOUR_EMAIL_ADDRESS>');
通知統合を作成したら、SNOWFLAKEアプリケーションにUSAGE権限を付与します。この権限は、予算が通知統合を使用してメールを送信するために必要です。
次のステートメントを実行して、通知統合にUSAGE権限を付与します。
GRANT USAGE ON INTEGRATION budgets_notification_integration TO APPLICATION snowflake;
データベース、スキーマ、カスタムロールを作成する¶
このステップでは、チュートリアルが予算を作成、管理、監視するために、以下のオブジェクトを作成します。
カスタム予算を作成するためのデータベースとスキーマ。
アカウント予算を管理するカスタムロール。
アカウント予算を監視するカスタムロール。
カスタム予算を作成するカスタムロール。
以下の手順でカスタム予算を作成するデータベースとスキーマを作成します。
カスタム予算を作成するデータベースとスキーマを作成します。
USE ROLE ACCOUNTADMIN; CREATE DATABASE budgets_db; CREATE SCHEMA budgets_db.budgets_schema;
カスタム予算を作成するデータベースとスキーマを作成します。
Snowsight にサインインします。
ACCOUNTADMIN ロールに切り替えます。
Data » Databases » + Database を選択します。
Name フィールドに、
budgets_db
を入力します。Create を選択します。
データベースが作成されたら、
budgets_db
を選択します。Schemas » + Schema を選択します。
Name フィールドに、
budgets_schema
を入力します。Create を選択します。
アカウント予算管理者のカスタムロール
account_budget_admin
を作成します。アカウント予算管理者は、アカウント予算に対して以下のアクションを行うことができます。アカウント予算をアクティブ化します。
支出制限を設定します。
通知設定を編集します。
アカウントのクレジット使用状況を監視します。
USE ROLE ACCOUNTADMIN; CREATE ROLE account_budget_admin; GRANT APPLICATION ROLE SNOWFLAKE.BUDGET_ADMIN TO ROLE account_budget_admin; GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE account_budget_admin;
アカウント予算モニターに付与されるカスタムロール
account_budget_monitor
を作成します。アカウント予算モニターは、アカウント予算に対して以下のアクションを行うことができます。アカウントのクレジット使用状況を監視します。
メール通知設定を表示します。
アカウントの月間支出制限を表示します。
USE ROLE ACCOUNTADMIN; CREATE ROLE account_budget_monitor; GRANT APPLICATION ROLE SNOWFLAKE.BUDGET_VIEWER TO ROLE account_budget_monitor; GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE account_budget_monitor;
必要なロールと権限でカスタムロール
budget_owner
を作成し、スキーマbudgets_db.budgets_schema
でカスタム予算を作成します。USE ROLE ACCOUNTADMIN; CREATE ROLE budget_owner; GRANT USAGE ON DATABASE budgets_db TO ROLE budget_owner; GRANT USAGE ON SCHEMA budgets_db.budgets_schema TO ROLE budget_owner; GRANT DATABASE ROLE SNOWFLAKE.BUDGET_CREATOR TO ROLE budget_owner; GRANT CREATE SNOWFLAKE.CORE.BUDGET ON SCHEMA budgets_db.budgets_schema TO ROLE budget_owner;
カスタム予算を管理および監視する2つのカスタムロールを作成します。これらのロールには、カスタム予算が作成された後、チュートリアルの後半で追加の権限が付与されます。カスタムロールを作成するには、以下の手順に従います。
カスタム予算を管理および監視できるカスタム
budget_admin
ロールを作成します。USE ROLE ACCOUNTADMIN; CREATE ROLE budget_admin; GRANT USAGE ON DATABASE budgets_db TO ROLE budget_admin; GRANT USAGE ON SCHEMA budgets_db.budgets_schema TO ROLE budget_admin; GRANT DATABASE ROLE SNOWFLAKE.USAGE_VIEWER TO ROLE budget_admin;
カスタム予算を監視できるカスタム
budget_monitor
ロールを作成します。
USE ROLE ACCOUNTADMIN; CREATE ROLE budget_monitor; GRANT USAGE ON DATABASE budgets_db TO ROLE budget_monitor; GRANT USAGE ON SCHEMA budgets_db.budgets_schema TO ROLE budget_monitor; GRANT DATABASE ROLE SNOWFLAKE.USAGE_VIEWER TO ROLE budget_monitor;
チュートリアルの今後のステップで使用するカスタム予算ロールを自分に付与します。
自分に
account_budget_admin
ロールを付与します。GRANT ROLE account_budget_admin TO USER <YOUR_USER_NAME>;
自分に
account_budget_monitor
ロールを付与します。GRANT ROLE account_budget_monitor TO USER <YOUR_USER_NAME>;
自分に
budget_owner
ロールを付与します。GRANT ROLE budget_owner TO USER <YOUR_USER_NAME>;
自分に
budget_monitor
ロールを付与します。GRANT ROLE budget_monitor TO USER <YOUR_USER_NAME>;
自分自身にカスタム予算のロールを付与します。
Snowsight にサインインします。
ACCOUNTADMIN ロールに切り替えます。
ナビゲーションメニューで、 Admin » Users & Roles を選択してから、 Roles を選択します。
Table を選択し、ロール
account_budget_admin
を見つけて選択します。0 users have been granted ACCOUNT_BUDGET_ADMIN セクションで、 Grant to User を選択します。
User to receive grant の場合、ロールを付与するユーザー名を選択します。
Grant を選択します。
ロールが付与されたら、前のページに戻ります。
account_budget_monitor
ロールを選択します。0 users have been granted ACCOUNT_BUDGET_MONITOR セクションで、 Grant to User を選択します。
Grant を選択します。
前の4つのステップ(h-k)を繰り返して、以下の追加ロールを自分に付与します。
budget_owner
budget_monitor
このセクションでは、予算を管理および監視し、カスタム予算を作成するためのカスタムロールを作成しました。
カスタム予算用のオブジェクトを作成する¶
このステップでは、カスタム予算に追加するオブジェクトを作成し、前のステップで作成したカスタムロールに権限を付与します。以下のオブジェクトを作成します。
カスタム予算に追加するウェアハウス。
カスタム予算に追加するデータベース。
ウェアハウスを作成し、作成したカスタムロールにウェアハウスのUSAGEおよびAPPLYBUDGET権限を付与します。オブジェクトを予算に追加するには、APPLYBUDGET権限が必要です。
ウェアハウス
na_finance_wh
を作成します。CREATE WAREHOUSE na_finance_wh;
カスタム予算ロールに USAGE 権限を付与します。
GRANT USAGE ON WAREHOUSE na_finance_wh TO ROLE account_budget_admin; GRANT USAGE ON WAREHOUSE na_finance_wh TO ROLE account_budget_monitor; GRANT USAGE ON WAREHOUSE na_finance_wh TO ROLE budget_admin; GRANT USAGE ON WAREHOUSE na_finance_wh TO ROLE budget_owner; GRANT USAGE ON WAREHOUSE na_finance_wh TO ROLE budget_monitor;
ロール
budget_owner
にウェアハウスの APPLYBUDGET 権限を付与します。GRANT APPLYBUDGET ON WAREHOUSE na_finance_wh TO ROLE budget_owner;
ウェアハウス
na_finance_wh
を作成します。Snowsight にサインインします。
Admin » Warehouses » + Warehouse を選択します
Warehouse Name フィールドに、
na_finance_wh
を入力します。Create Warehouse を選択します。
カスタムロール
account_budge_admin
とbudget_admin
に、ウェアハウスの USAGE 権限を付与します。Admin » Warehouses を選択します。
作成したばかりのウェアハウス
na_finance_wh
を選択します。Privileges タイルで、 + Privilege を選択します。
Role には、
account_budget_admin
ロールを選択します。Privileges には、 USAGE を選択します。
Grant Privileges を選択します。
ロール
budget_admin
について、前の4つのステップを繰り返します。
ロール
budget_owner
にウェアハウスの USAGE および APPLYBUDGET 権限を付与します。Admin » Warehouses を選択します。
作成したばかりのウェアハウス
na_finance_wh
を選択します。Privileges タイルで、 + Privilege を選択します。
Role には、
budget_owner
ロールを選択します。Privileges には、 APPLYBUDGET と USAGE を選択します。
Grant Privileges を選択します。
データベースを作成し、作成したカスタム予算所有者ロールにウェアハウスのAPPLYBUDGET権限を付与します。オブジェクトを予算に追加するには、APPLYBUDGET権限が必要です。
データベースを作成します。
CREATE DATABASE na_finance_db;
データベースでロール
budget_owner
に APPLYBUDGET 権限を付与します。GRANT APPLYBUDGET ON DATABASE na_finance_db TO ROLE budget_owner;
データベースを作成します。
Snowsight にサインインします。
Data » Databases » + Database を選択します
Name フィールドに、
na_finance_db
を入力します。Create を選択します。
データベースでロール
budget_owner
に APPLYBUDGET 権限を付与します。Data » Databases を選択します。
先ほど作成したデータベース
na_finance_db
を選択します。Privileges タイルで、 + Privilege を選択します。
Role には、
budget_owner
ロールを選択します。Privileges には、 APPLYBUDGET を選択します。
Grant Privileges を選択します。
このセクションでは、カスタム予算に追加するオブジェクトを作成し、それらのオブジェクトを予算に追加するために必要な APPLYBUDGET 権限を付与しました。また、カスタム予算を作成するデータベースとスキーマを作成し、スキーマに予算を作成するために必要な USAGE 権限を付与しました。これで、予算の有効化、作成、設定の準備が整いました。
アカウント予算をアクティブ化および設定する¶
アカウント予算は、バックグラウンドメンテナンスタスク(自動クラスタリングなど)やサーバーレス機能など、アカウントで予算対応オブジェクトのコンピューティングコストのクレジット使用状況を監視します。クレジット使用状況の監視を開始するには、アカウント予算を有効にする必要があります。アクティブ化したら、アカウントの月間利用限度額と通知先メールリストを設定できます。予算は、現在のクレジット使用状況が月間利用限度額を超えると予想される場合、通知メールを送信します。
次のステップを使ってアカウント予算をアクティブ化して設定します。
前のステップで作成した
account_budget_admin
ロールを使用して、アカウント予算をアクティブ化します。USE ROLE account_budget_admin; CALL snowflake.local.account_root_budget!ACTIVATE();
アカウント予算の支出制限を500クレジット/月に設定します。
CALL snowflake.local.account_root_budget!SET_SPENDING_LIMIT(500);
メール通知リストを設定するには、認証済みのメールアドレスと、チュートリアルで以前に作成した通知統合を使用します。
CALL snowflake.local.account_root_budget!SET_EMAIL_NOTIFICATIONS( 'budgets_notification_integration', '<YOUR_EMAIL_ADDRESS>');
アカウント予算を有効にして設定します。
Snowsight にサインインします。
前のステップで作成した ACCOUNT_BUDGET_ADMIN ロールを選択します。
Admin » Cost Management を選択します。
Budgets を選択します。
プロンプトが表示されたら、ウェアハウスに
na_finance_wh
を選択します。ダッシュボードの右上隅で、 Set up Account Budget を選択します。
アカウントの支出制限には500を入力してください。
毎月の支出制限を設定するために、設定ツールにはその月の予測利用額と過去3ヶ月の平均利用額が表示されます。例えば、以下のスクリーンショットをご覧ください。
通知メールを受信するメールアドレスを入力します。
Finish Setup を選択します。
このセクションでは、アカウント予算を有効にし、支出制限と予算通知を受け取るメールアドレスを設定します。
カスタム予算の作成¶
アカウント予算の有効化と設定が完了したら、カスタム予算を作成して、指定したオブジェクトグループのアカウントのクレジット使用状況を監視します。このチュートリアルでは、カスタム予算に na_finance_wh
ウェアハウスと na_finance_db
を追加します。
以下のステップでカスタム予算を作成します。
budget_owner
ロールを使用して、budgets_db.budgets_schema
に予算na_finance_budget
を作成します。USE ROLE budget_owner; USE SCHEMA budgets_db.budgets_schema; USE WAREHOUSE na_finance_wh; CREATE SNOWFLAKE.CORE.BUDGET na_finance_budget();
以下のステップで、予算(
na_finance_budget
)の月間支出限度額とメール通知リストを設定します。毎月の支出制限を500クレジットに設定します。
CALL na_finance_budget!SET_SPENDING_LIMIT(500);
通知リストを設定するには、認証済みメールアドレスとチュートリアルの最初のステップで作成した通知統合を使用します。
CALL na_finance_budget!SET_EMAIL_NOTIFICATIONS('budgets_notification_integration', '<YOUR_EMAIL_ADDRESS>');
データベース
na_finance_db
とウェアハウスna_finance_wh
を予算na_finance_budget
に追加します。CALL na_finance_budget!ADD_RESOURCE( SYSTEM$REFERENCE('database', 'na_finance_db', 'SESSION', 'applybudget')); CALL na_finance_budget!ADD_RESOURCE( SYSTEM$REFERENCE('warehouse', 'na_finance_wh', 'SESSION', 'applybudget'));
budget_owner
ロールを使用して、予算na_finance_budget
を設定します。Snowsight にサインインします。
前のステップで作成した BUDGET_OWNER ロールを選択します。
Admin » Cost Management を選択します。
Budgets を選択します。
予算
na_finance_budget
を選択します。Spending limit には500と入力してください。
通知メールを受信するメールアドレスを入力します。
Resources to monitor を選択します。
注釈
1つのカスタム予算に追加できるのは1つのオブジェクトのみです。オブジェクトが現在1つのカスタム予算に含まれており、そのオブジェクトを2つ目のカスタム予算に追加した場合、予算は警告を出さずにオブジェクトを1つ目のカスタム予算から削除します。
データベースを追加するには、 Databases を展開してデータベースを選択します。
na_finance_db
を選択します。データベースを選択すると、そのデータベースに含まれるすべての予算サポートオブジェクトも選択されます。さらに、将来データベースで作成されるオブジェクトは、自動的に予算に追加されます。
ウェアハウスを追加するには、 Warehouses を展開してウェアハウスを選択します。
na_finance_wh
を選択します。
Save Changes を選択します。
Save Changes ボタンは、すべての項目が入力された場合にのみ有効になります。
前の手順で作成したカスタムロールにインスタンスロールを付与します。
budget_admin
ロールに必要なロールと権限を付与して、budget_admin
ロールがカスタム予算na_finance_budget
を変更および監視できるようにします。USE ROLE budget_owner; GRANT SNOWFLAKE.CORE.BUDGET ROLE budgets_db.budgets_schema.na_finance_budget!ADMIN TO ROLE budget_admin;
budget_monitor
ロールがカスタム予算na_finance_budget
を監視できるように、 VIEWER インスタンスロールをbudget_monitor
ロールに付与します。USE ROLE budget_owner; GRANT SNOWFLAKE.CORE.BUDGET ROLE budgets_db.budgets_schema.na_finance_budget!VIEWER TO ROLE budget_monitor;
このセクションでは、カスタム予算を作成し、監視する予算のオブジェクトを追加し、予算通知を受け取るメールアドレスを設定します。
クレジット使用状況のモニタリング¶
アカウント予算の有効化、カスタム予算の作成、アカウント予算とカスタム予算の両方を監視および管理するためのカスタムロールの作成は、チュートリアルのすべてのステップを完了しました。予算のクレジット使用状況データを入力するには時間がかかります。
予算はサーバーレスタスクを使用して、アカウント内の予算のクレジット使用状況を収集します。アカウント予算を有効にするか、カスタム予算を作成すると、サーバーレスタスクが実行されるまでしばらく時間がかかります。クレジット使用状況データが利用可能になった後、 Snowsight を使って予算のクレジット使用状況を監視することができます。
利用データが利用可能になった後にクレジット使用状況を監視するには、以下のステップを使用します。
前のステップで作成した account_budget_monitor
ロールを使用し、以下のステートメントを実行して過去1週間のアカウント予算の支出履歴を表示します。
USE ROLE account_budget_monitor;
CALL snowflake.local.account_root_budget!GET_SPENDING_HISTORY(
TIME_LOWER_BOUND => DATEADD('days', -7, CURRENT_TIMESTAMP()),
TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
サービスの種類別に支出履歴を監視できます。過去1週間のアカウント予算の検索最適化サーバーレス機能の支出履歴を表示するには、次のステートメントを実行します。
USE ROLE account_budget_monitor;
CALL snowflake.local.account_root_budget!GET_SERVICE_TYPE_USAGE(
SERVICE_TYPE => 'SEARCH_OPTIMIZATION',
TIME_DEPART => 'day',
USER_TIMEZONE => 'UTC',
TIME_LOWER_BOUND => DATEADD('day', -7, CURRENT_TIMESTAMP()),
TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
budget_monitor
ロールを使用して、カスタム予算 na_finance_budget
の過去1週間の支出履歴を表示します。
USE ROLE budget_monitor;
CALL budgets_db.budgets_schema.na_finance_budget!GET_SPENDING_HISTORY(
TIME_LOWER_BOUND => DATEADD('days', -7, CURRENT_TIMESTAMP()),
TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
account_budget_monitor
ロールを使用して、アカウント予算の支出履歴を表示します。
Snowsight にサインインします。
前のステップで作成した ACCOUNT_BUDGET_MONITOR ロールを選択します。
Admin » Cost Management を選択します。
Budgets を選択します。
プロンプトが表示されたら、
na_finance_wh
を選択します。
na_finance_budget
カスタム予算の支出履歴を表示するには、 budget_monitor
ロールを使用します。
Snowsight にサインインします。
前のステップで作成した BUDGET_MONITOR ロールを選択します。
Admin » Cost Management を選択します。
Budgets を選択します。
プロンプトが表示されたら、
na_finance_wh
を選択します。
クリーンアップ、まとめ、追加リソース¶
おめでとうございます。このチュートリアルを修了しました。
クレジット使用状況がアカウント予算とカスタム予算に入力された後に、 Snowsightを使用した予算のモニター をご参照ください。
概要と重要なポイント¶
まとめると、以下の方法を学習しました。
予算を管理および監視するためのカスタムロールを作成します。
カスタムロールを使用すると、アカウント管理者以外のユーザーが予算のクレジット使用状況を監視したり、予算設定を変更したりできるようになります。詳細については、 Budgetのロールと権限 をご参照ください。
カスタム予算にオブジェクトを追加するために必要な権限を付与します。
カスタム予算からオブジェクトを追加または削除するには、 APPLYBUDGET 権限をオブジェクトに付与する必要があります。オブジェクトの追加や削除は、 参照 によって行われます。詳細については、 カスタム予算に対してオブジェクトを追加および削除する をご参照ください。
アカウント予算をアクティブ化および設定する
アカウントのクレジット使用状況の監視を開始するには、アカウント予算を有効にして設定する必要があります。アカウント予算は、バックグラウンドメンテナンスタスクやサーバーレス機能を含むコンピューティングコストを監視し、現在の支出が月間支出上限を超えると予想される場合にメールで通知を送信します。
詳細については、 アカウント予算のアクティブ化 をご参照ください。
カスタム予算を作成して、アカウント内の指定されたオブジェクトグループを監視します。
カスタム予算は、アカウント内のオブジェクトグループのクレジット使用状況を監視します。カスタム予算は、バックグラウンドメンテナンスタスクやサーバーレス機能を含む、グループ内のオブジェクトの計算コストに対するクレジット使用状況を監視します。
詳細については、 カスタム予算の作成 をご参照ください。
詳細については、次のトピックをご参照ください。
サポートされるオブジェクトのリストとカスタム予算で監視されるサーバーレス機能については、 サポートされているオブジェクト と サポートされるサーバーレス機能 をご参照ください。
予算支出の監視の詳細については、 Snowsightを使用した予算のモニター をご参照ください。
チュートリアルで作成したオブジェクトを削除する¶
クレジット使用状況を監視するために、チュートリアルで作成したカスタムロールとカスタム予算を維持することを選択できます。そうでない場合は、予算と関連するカスタムロールを削除します。
チュートリアルで作成したカスタム予算を削除するには、以下のステートメントを実行します。
USE ROLE budget_owner;
DROP SNOWFLAKE.CORE.BUDGET budgets_db.budgets_schema.na_finance_budget;
このチュートリアルで作成したオブジェクトを削除するには、以下のステートメントを実行します。
USE ROLE ACCOUNTADMIN;
DROP DATABASE na_finance_db;
DROP WAREHOUSE na_finance_wh;
DROP DATABASE budgets_db;
カスタム予算を管理および監視するために作成されたカスタムロールを削除するには、以下のステートメントを実行します。
USE ROLE ACCOUNTADMIN;
DROP ROLE budget_monitor;
DROP ROLE budget_admin;
DROP ROLE budget_owner;
Snowflakeは、アカウント予算を有効にしておくことをお勧めします。ただし、非アクティブ化する場合は、 アカウント予算を非アクティブ化する をご参照ください。
アカウント予算モニターおよび管理者ロールを削除するには、以下のステートメントを実行します。
USE ROLE ACCOUNTADMIN;
DROP ROLE account_budget_monitor;
DROP ROLE account_budget_admin;
通知統合を削除するには、以下のステートメントを実行します。
USE ROLE ACCOUNTADMIN;
DROP NOTIFICATION INTEGRATION budgets_notification_integration;
追加のリソース¶
次のリソースを使用して、予算とSnowflakeについて引き続き学習しましょう。