Kundenspezifische Budgets¶
Mit kundenspezifischen Budgets können Sie die Computekosten für eine kundenspezifische Gruppe von Objekten überwachen. Sie können auf zwei Arten angeben, welche Objekte Sie überwachen möchten:
Fügen Sie dem Budget ein Tag hinzu. Alle Objekte, die das angegebene Tag/Wert-Paar haben, werden vom Budget überwacht.
Fügen Sie jedes Objekt einzeln zum Budget hinzu.
Ein Budget kann sowohl Objekte verfolgen, die einzeln hinzugefügt als auch mit Tags hinzugefügt wurden. Wenn ein Objekt aus mehr als einem Grund in das Budget aufgenommen wird (z. B. weil es einzeln hinzugefügt wurde und das angegebene Tag/Wert-Paar hat), wird seine Credit-Nutzung nur einmal auf das Ausgabenlimit des Budgets angerechnet.
Wenn Sie ein Objekt zu einem benutzerdefinierten Budget hinzufügen, überwacht das Budget alle Computekosten für das Objekt, einschließlich der Wartungsoperationen im Hintergrund und der serverlosen Features. Wenn Sie z. B. eine Tabelle zu einem benutzerdefinierten Budget hinzufügen und die Tabelle automatisches Clustering aktiviert hat, überwacht das Budget die Credit-Nutzung der Hintergrundwartung für automatisches Clustering.
Unterstützte Objekte für benutzerdefinierte Budgets¶
Sie können ein benutzerdefiniertes Budget erstellen, um die folgenden Typen von Snowflake-Objekten zu überwachen:
Objekt |
Überwachte Kosten |
---|---|
Alerts |
Serverlose Benachrichtigungen werden durch das Kontobudget überwacht. Um die Credit-Nutzung für eine Benachrichtigung zu überwachen, die über ein vom Benutzer verwaltetes Warehouse ausgeführt wird, müssen Sie das Warehouse zum Budget hinzufügen. Weitere Informationen zu den Kosten von Benachrichtigungen finden Sie unter Erläuterungen zu den Kosten von Alerts. |
Apps . (Snowflake Native Apps) |
Das Verhalten von Budgets für Objekte, die von einer Snowflake Native App erstellt werden und zu einer gehören, hängt davon ab, ob Sie die App direkt oder durch Hinzufügen eines Tags hinzufügen.
|
Computepool |
Nutzung des Computepools für Snowpark Container Services Weitere Informationen dazu finden Sie unter Computepool-Kosten. |
Datenbanken |
Wenn Sie eine Datenbank zu einem Budget hinzufügen, werden alle unterstützten Objekte, die die Datenbank enthält, ebenfalls automatisch hinzugefügt. Das Budget überwacht die Credit-Nutzung für die folgenden Objekte und serverlose Features:
|
Materialisierte Ansichten |
Hintergrundpflege für die materialisierte Ansicht. Weitere Informationen dazu finden Sie unter Kosten für materialisierte Ansichten. |
Schemas |
Wenn Sie ein Schema zu einem Budget hinzufügen, werden alle unterstützten Objekte, die das Schema enthält, ebenfalls automatisch hinzugefügt. Das Budget überwacht die Credit-Nutzung für Schemaobjekte wie oben beschrieben. |
Pipes |
Ressourcenverbrauch beim Laden von Daten mit Snowpipe. Weitere Informationen dazu finden Sie unter Kosten für Snowpipe. |
Tabellen |
Hintergrund-Wartungsoperation für Automatic Clustering und Suchoptimierung, wenn sie in der Tabelle aktiviert sind. |
Aufgaben |
Serverlose Aufgaben werden durch ein benutzerdefiniertes Budget überwacht. Um die Credit-Nutzung für eine Aufgabe zu überwachen, die über ein benutzerverwaltetes Warehouse ausgeführt wird, müssen Sie das Warehouse zum Budget hinzufügen. Weitere Informationen dazu finden Sie unter Kosten für Aufgaben. |
Warehouses |
Computeressourcen für die Ausführung von Abfragen, die Weboberfläche und andere Features (siehe Credit-Nutzung für virtuelle Warehouses), serverlose Aufgaben und Clouddienst-Computing. |
Weitere Informationen dazu finden Sie unter Hinzufügen oder Entfernen von Tags aus einem kundenspezifischen Budget.
Kundenspezifisches Budget erstellen¶
In den nächsten Abschnitten erfahren Sie, wie Sie ein individuelles Budget erstellen:
Verwenden Sie Snowsight, um ein individuelles Budget zu erstellen
Verwenden Sie SQL-Befehle, um ein benutzerdefiniertes Budget zu erstellen
Sie können ein kundenspezifisches Budget mit Snowsight oder durch Ausführung von SQL-Anweisungen erstellen.
Kundenspezifische Rolle zum Erstellen von Budgets erstellen¶
Sie können eine kundenspezifische Rolle verwenden, um Budgets in Ihrem Konto zu erstellen. Eine vollständige Liste der Berechtigungen und Rollen, die einer Rolle zugewiesen werden müssen, um ein kundenspezifische Budget zu erstellen, finden Sie unter Rollen und Berechtigungen für Budgets.
Das folgende Beispiel erstellt eine Rolle mit dem Namen budget_owner
-Rolle und gewährt die erforderliche Rolle und Berechtigung, um benutzerdefinierte Budgets im Schema budgets_db.budgets_schema
zu erstellen. Das Beispiel muss mit der Rolle ACCOUNTADMIN ausgeführt werden:
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;
Wenn Sie einer anderen Rolle als dem Budget-Eigentümer die Möglichkeit geben möchten, die Einstellungen eines kundenspezifischen Budgets zu ändern, können Sie eine kundenspezifische Rolle mit Änderungsberechtigungen erstellen. Weitere Informationen dazu finden Sie unter Kundenspezifische Rolle zum Verwalten eines kundenspezifischen Budgets erstellen.
Verwenden Sie Snowsight, um ein individuelles Budget zu erstellen¶
Bemerkung
Wenn das Kontobudget nicht aktiviert ist oder deaktiviert wurde, können Sie Snowsight nicht verwenden, um kundenspezifische Budgets zu erstellen. Sie können jedoch kundenspezifische Budgets mit SQL erstellen.
Melden Sie sich bei Snowsight an.
Wählen Sie Admin » Cost Management aus.
Wählen Sie Budgets aus.
Geben Sie einen Budget name ein.
Wählen Sie die Datenbank und das Schema aus, in denen Sie Ihr Budget erstellen möchten.
Geben Sie unter Spending limit das Ausgabenlimit ein.
Geben Sie die E-Mail-Adressen ein, an die Benachrichtigungen gesendet werden sollen.
Bemerkung
Jede für Budgetbenachrichtigungen hinzugefügte E-Mail-Adresse muss verifiziert sein. Das Einrichten der Benachrichtigungs-E-Mail schlägt fehl, wenn eine E-Mail-Adresse in der Liste nicht verifiziert ist.
Wählen Sie + Tag & resources aus und fügen Sie dann die Tags und Ressourcen hinzu, die Sie dem kundenspezifischen Budget hinzufügen möchten.
Bemerkung
Wenn Sie eine Datenbank oder ein Schema auswählen, werden alle unterstützten Objekte (z. B. Tabellen), die in der Datenbank oder dem Schema enthalten sind, ebenfalls zum Budget hinzugefügt.
Wenn Sie einzelne Objekte direkt hinzufügen, können Sie ein Objekt nur zu genau einem kundenspezifischen Budget hinzufügen. In diesem Fall gilt, wenn ein Objekt bereits in einem kundenspezifischen Budget enthalten ist und Sie dieses Objekt einem zweiten kundenspezifischen Budget hinzufügen, wird das Objekt aus dem ersten kundenspezifischen Budget entfernt, ohne dass eine Warnung ausgegeben wird. Dieses Verhalten gilt nicht für die Verwendung von Tags zum Hinzufügen von Objekten zu Budgets. Ein Objekt mit einem oder mehreren Tags kann in mehreren kundenspezifischen Budgets enthalten sein, wenn Sie Tags verwenden, um das Objekt zu den Budgets hinzuzufügen.
Nachdem Sie ein kundenspezifisches Budget erstellt und eingerichtet haben, können Sie eine kundenspezifische Rolle erstellen, die es Nicht-Kontoadministratoren ermöglicht, Budgetressourcen und -nutzung zu überwachen. Weitere Informationen dazu finden Sie unter Kundenspezifische Rolle zum Überwachen eines kundenspezifischen Budgets erstellen.
Verwenden Sie SQL-Befehle, um ein benutzerdefiniertes Budget zu erstellen¶
Erstellen Sie ein kundenspezifisches Budget, und legen Sie dann das Ausgabenlimit und die E-Mail-Adressen für Benachrichtigungen fest.
Bemerkung
Um ein kundenspezifisches Budget zu erstellen, müssen Sie eine Rolle mit den erforderlichen Berechtigungen zum Erstellen eines Budgets verwenden.
Um ein kundenspezifisches Budget zu ändern, müssen Sie eine Rolle mit den erforderlichen Berechtigungen zum Ändern eines Budgets verwenden.
Überprüfen Sie die vorhandenen Budgets in Ihrem Konto:
Bemerkung
Die folgende Anweisung gibt die Budgets zurück, für die Sie Zugriffsrechte haben. Nur ein Benutzer mit der Rolle ACCOUNTADMIN kann alle Budgets des Kontos sehen.
SELECT SYSTEM$SHOW_BUDGETS_IN_ACCOUNT();
Erstellen Sie das Budget
my_budget
inbudgets_db.budgets_schema
mit dem Befehl CREATE BUDGET:USE SCHEMA budgets_db.budgets_schema; CREATE SNOWFLAKE.CORE.BUDGET my_budget();
Legen Sie das monatliche Ausgabenlimit fest. Setzen Sie das Ausgabenlimit auf 500 Credits pro Monat:
CALL my_budget!SET_SPENDING_LIMIT(500);
Richten Sie Benachrichtigungen für das Budget ein, damit Sie benachrichtigt werden, wenn Ihre Credit-Nutzung voraussichtlich Ihr Ausgabenlimit überschreitet.
Nachdem Sie ein kundenspezifisches Budget erstellt und eingerichtet haben, können Sie eine kundenspezifische Rolle erstellen, die es Nicht-Kontoadministratoren ermöglicht, Budgetressourcen und -nutzung zu überwachen. Weitere Informationen dazu finden Sie unter Kundenspezifische Rolle zum Überwachen eines kundenspezifischen Budgets erstellen.
Informationen zum Hinzufügen von Objekten zu Ihrem neuen Budget finden Sie unter Hinzufügen oder Entfernen von Objekten aus einem kundenspezifischen Budget.
Kundenspezifische Rolle zum Verwalten eines kundenspezifischen Budgets erstellen¶
Um ein kundenspezifisches Budget zu überwachen und zu ändern, können Sie einer kundenspezifischen Rolle entsprechende Berechtigungen und Instanzrollen zuweisen. Eine vollständige Liste der Berechtigungen und Rollen, die einer Rolle zugewiesen werden müssen, um ein kundenspezifisches Budget ändern zu können, finden Sie unter Rollen und Berechtigungen für Budgets.
Beispiel für eine kundenspezifische Rolle¶
Erteilen Sie der kundenspezifischen Rolle budget_admin
die Berechtigung, das Budget my_budget
im Schema budgets_db.budgets_schema
zu überwachen und zu ändern:
Bemerkung
Sie benötigen die OWNERSHIP-Berechtigung für das kundenspezifische Budget, um die folgenden Beispiele auszuführen.
Weisen Sie der kundenspezifischen Rolle
budget_admin
die erforderlichen Berechtigungen und die Instanzrolle für das Budgetmy_budget
im Schemabudgets_db.budgets_schema
zu:GRANT USAGE ON DATABASE budgets_db TO ROLE budget_admin; GRANT USAGE ON SCHEMA budget_db.budgets_schema TO ROLE budget_admin; GRANT SNOWFLAKE.CORE.BUDGET ROLE budgets_db.budgets_schema.my_budget!ADMIN TO ROLE budget_admin; GRANT DATABASE ROLE SNOWFLAKE.USAGE_VIEWER TO ROLE budget_admin;
Erteilen Sie die Berechtigung APPLYBUDGET für Objekte und Tags, die einem kundenspezifischen Budget hinzugefügt oder daraus entfernt werden sollen. Dieser Schritt ist für jedes Objekt oder jedes Tag erforderlich, das hinzugefügt oder entfernt werden soll.
Um beispielsweise die Rolle
budget_admin
zu aktivieren und damit die Datenbankdb1
zum kundenspezifischen Budgetmy_budget
hinzuzufügen, führen Sie die folgenden Anweisungen aus:GRANT USAGE ON DATABASE db1 TO ROLE budget_admin; GRANT APPLYBUDGET ON DATABASE db1 TO ROLE budget_admin;
Hinzufügen oder Entfernen von Objekten aus einem kundenspezifischen Budget¶
Sie können mit Snowsight oder SQL Objekte zu einem kundenspezifischen Budget hinzufügen oder daraus entfernen.
Bemerkung
Um Objekte aus einem kundenspezifischen Budget hinzuzufügen oder daraus zu entfernen, müssen Sie eine Rolle mit den erforderlichen Berechtigungen für das Budget und das Objekt verwenden. Weitere Informationen dazu finden Sie unter Kundenspezifische Rolle zum Verwalten eines kundenspezifischen Budgets erstellen.
Verwenden Sie Snowsight, um Objekte aus einem benutzerdefinierten Budget zu entfernen oder hinzuzufügen¶
Melden Sie sich bei Snowsight an.
Wählen Sie Admin » Cost Management aus.
Wählen Sie Budgets aus.
Wählen Sie das zu bearbeitende Budget aus.
Wählen Sie + Tags & resources aus und wählen Sie dann die Objekte aus, die Sie dem kundenspezifischen Budget hinzufügen möchten.
Bemerkung
Wenn Sie eine Datenbank oder ein Schema auswählen, werden alle unterstützten Objekte (z. B. Tabellen), die in der Datenbank oder dem Schema enthalten sind, ebenfalls zum Budget hinzugefügt.
Wenn Sie einzelne Objekte direkt hinzufügen, können Sie ein Objekt nur zu genau einem kundenspezifischen Budget hinzufügen. In diesem Fall gilt, wenn ein Objekt bereits in einem kundenspezifischen Budget enthalten ist und Sie dieses Objekt einem zweiten kundenspezifischen Budget hinzufügen, wird das Objekt aus dem ersten kundenspezifischen Budget entfernt, ohne dass eine Warnung ausgegeben wird. Dieses Verhalten gilt nicht für die Verwendung von Tags zum Hinzufügen von Objekten zu Budgets. Ein Objekt mit einem oder mehreren Tags kann in mehreren kundenspezifischen Budgets enthalten sein, wenn Sie Tags verwenden, um das Objekt zu den Budgets hinzuzufügen.
Wählen Sie Done aus.
Verwenden Sie SQL-Befehle, um Objekte zu einem benutzerdefinierten Budget hinzuzufügen oder zu entfernen¶
Die Rolle, die zum Hinzufügen oder Entfernen eines Objekts aus einem Budget verwendet wird, muss über die Berechtigung APPLYBUDGET für das Objekt verfügen. Ein Beispiel dazu finden Sie im Abschnitt Kundenspezifische Rolle zum Verwalten eines kundenspezifischen Budgets erstellen.
Um die Liste der bereits im kundenspezifischen Budget enthaltenen Objekte zu überprüfen, rufen Sie die Methode <budget_name>!GET_LINKED_RESOURCES des Budgets auf. Um zum Beispiel die Liste der Objekte im Budget my_budget
des Schemas budgets_db.budgets_schema
anzuzeigen, führen Sie die folgende Anweisung aus:
CALL budgets_db.budgets_schema.my_budget!GET_LINKED_RESOURCES();
Die Anweisung gibt den folgenden Fehler zurück:
+-------------+-----------------+-----------+-------------+---------------+
| RESOURCE_ID | NAME | DOMAIN | SCHEMA_NAME | DATABASE_NAME |
|-------------+-----------------+-----------+-------------+---------------|
| 326 | DB1 | DATABASE | NULL | NULL |
| 157 | MY_WH | WAREHOUSE | NULL | NULL |
+-------------+-----------------+-----------+-------------+---------------+
Bemerkung
Die Liste enthält Folgendes nicht:
Objekte, die automatisch hinzugefügt wurden (z. B. Computepools und Warehouses, die von einer Snowflake Native App erstellt wurden und ihr gehören).
Objekte, die hinzugefügt wurden, als ein Tag zum Budget hinzugefügt wurde.
Objekte müssen einem Budget per Referenz hinzugefügt oder daraus entfernt werden.
Sie können die Tabelle
t1
zum Budgetmy_budget
hinzufügen, indem Sie die folgenden Schritte ausführen:Erteilen Sie der Rolle
budget_admin
die Berechtigung APPLYBUDGET für die Tabelle, indem Sie die folgende Anweisung ausführen:GRANT APPLYBUDGET ON TABLE t1 TO ROLE budget_admin;
Übergeben Sie eine Referenz auf die Tabelle
t1
an die Instanzmethode ADD_RESOURCE, indem Sie die folgende Anweisung ausführen:CALL budgets_db.budgets_schema.my_budget!ADD_RESOURCE( SELECT SYSTEM$REFERENCE('TABLE', 't1', 'SESSION', 'applybudget'));
Die SYSTEM$REFERENCE-Funktion erstellt eine Referenz auf ein TABLE-Objekt
t1
mit der Berechtigung APPLYBUDGET für die Tabelle. Auf diese Weise kann das Budget das angegebene Objekt in Ihrem Konto überwachen. Der dritte Parameter der Funktion gibt den Geltungsbereich für die Referenz an, d. h. in diesem Fall wird mit ‚SESSION‘ eine Referenz erstellt, deren Geltungsbereich die Sitzung ist. Referenzen, die an die Methode ADD_RESOURCE für ein Budget übergeben werden, können mit einem beliebigen transienten Referenzbereich erstellt werden (d. h. der dritte Parameter kann entweder ‚SESSION‘ oder ‚CALL‘ sein).Bemerkung
Wenn Sie eine Snowflake Native App zu einem Budget hinzufügen möchten, geben Sie beim Aufruf von SYSTEM$REFERENCE für das Argument
object_type
'DATABASE'
(nicht'APPLICATION'
) an.Eine vollständige Liste der Objekte und Berechtigungen finden Sie unter Unterstützte Objekttypen und Berechtigungen für Referenzen.
Bemerkung
Wenn Sie einzelne Objekte direkt hinzufügen, können Sie ein Objekt nur zu genau einem kundenspezifischen Budget hinzufügen. In diesem Fall gilt, wenn ein Objekt bereits in einem kundenspezifischen Budget enthalten ist und Sie dieses Objekt einem zweiten kundenspezifischen Budget hinzufügen, wird das Objekt aus dem ersten kundenspezifischen Budget entfernt, ohne dass eine Warnung ausgegeben wird. Dieses Verhalten gilt nicht für die Verwendung von Tags zum Hinzufügen von Objekten zu Budgets. Ein Objekt mit einem oder mehreren Tags kann in mehreren kundenspezifischen Budgets enthalten sein, wenn Sie Tags verwenden, um das Objekt zu den Budgets hinzuzufügen.
Sie können die Datenbank
db1
aus dem Budgetmy_budget
entfernen, indem Sie die folgenden Schritte ausführen:Weisen Sie der Rolle
budget_admin
die Berechtigung APPLYBUDGET für die Datenbank zu, indem Sie die folgende Anweisung ausführen:GRANT APPLYBUDGET ON DATABASE db1 TO ROLE budget_admin;
Entfernen Sie die Datenbank, indem Sie eine Referenz an die Instanzmethode REMOVE_RESOURCE übergeben:
CALL budgets_db.budgets_schema.my_budget!REMOVE_RESOURCE( SELECT SYSTEM$REFERENCE('DATABASE', 'db1', 'SESSION', 'applybudget'));