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.

Verwenden von Tags zum Überwachen von Objekten

Tags können auf Budgets angewendet werden, um die Credit-Nutzung durch Objekte zu überwachen, die zu einer logischen Einheit innerhalb des Kontos gehören. Angenommen, Sie verwenden das Tag cost_center, um die Kosten zu verfolgen, die den Kostenstellen innerhalb der Organisation entstehen. Sie können alle Objekte, die dem Sales-Team zugeordnet sind, mit dem Tag/Wert-Paar cost_center = 'sales' taggen. Anstatt jedes vom Sales-Team verwendete Objekt einzeln zu einem Budget hinzuzufügen, können Sie einfach das Tag/Wert-Paar cost_center = 'sales' hinzufügen, und das Budget überwacht automatisch die Credit-Nutzung aller Objekte, denen dieses Tag/Wert-Paar zugewiesen wurde.

Tag-Vererbung

Durch das Hinzufügen eines Tags zu einem Budget werden alle Objekte mit diesem Tag verfolgt, einschließlich der Objekte, die das Tag von einem übergeordneten Objekt übernommen (geerbt) haben. Wenn zum Beispiel eine Datenbank ein Tag hat, erben die Tabellen innerhalb der Datenbank das Tag und werden in einem Budget verfolgt. Da ein Budget die Nutzung auf der Grundlage eines Tag/Wert-Paars verfolgt, kann sich ändern, ob das Budget die Nutzung der Tabelle verfolgt, wenn Sie den Wert des Tags auf Tabellenebene überschreiben. Angenommen, Sie haben ein Budget, das Objekte mit dem Tag team = 'eng' verfolgt. Wenn die Datenbank das Tag team = 'eng' hat, aber eine Tabelle innerhalb der Datenbank das Tag team = 'IT' hat, überwacht das Budget die mit dieser Tabelle verbundenen Kosten nicht.

Im Kontext von Budgets werden Tags nicht von einem Konto geerbt, da das Kontobudget diesen Anwendungsfall erfüllen soll.

Weitere Informationen, einschließlich der Frage, wie Tag-Werte überschrieben werden, finden Sie unter Tag-Vererbung.

Verfolgen eines Objekts mit mehreren Budgets

Mehrere Budgets können dasselbe Tag/Wert-Paar hinzufügen, was bedeutet, dass mehr als ein Budget die Credit-Nutzung desselben Objekts verfolgen kann. Nehmen wir beispielsweise an, Sie fügen das Tag cost_center = 'eng' zu budget_1 und budget_2 hinzu. Sobald das Warehouse mit Tag cost_center = 'eng' Credits verbraucht, werden diese auf das Credit-Limit sowohl von budget_1 als auch budget_2 angerechnet.

Ein Objekt kann auch von mehr als einem Budget verfolgt werden, wenn das Objekt mehrere Tags hat. Angenommen, ein Warehouse hat zwei Tags: cost_center = 'finance' und stage = 'dev'. Sie könnten ein Budget erstellen, das cost_center = 'finance' nachverfolgt und ein anderes, das stage = 'dev' verfolgt. Die vom Warehouse verbrauchten Credits würden auf das Credit-Limit beider Budgets angerechnet.

Einschränkungen und Hinweise

Wenn Sie Tags zur Überwachung von Objekten verwenden, müssen Sie Folgendes beachten:

  • Wenn Sie ein Tag von einem Objekt ändern, kann es bis zu sechs Stunden dauern, bis die Änderung in den Budgets berücksichtigt wird, die Tags verwenden.

  • Derzeit können Alerts nicht mit Tags überwacht werden. Sie müssen sie einzeln hinzufügen.

  • Änderungen an Tags innerhalb der ersten beiden Tage des Monats spiegeln sich in der Nutzung des Vormonats wider.

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.

  • Wenn Sie eine Snowflake Native App zu einem Budget mit Tags hinzufügen, werden nur Warehouses, die die passende Tag/Wert-Kombination haben, automatisch nachverfolgt, unabhängig davon, ob sie freigegeben sind.

  • Wenn Sie eine Snowflake Native App direkt zu einem Budget hinzufügen, werden alle Objekte, die Credits verbrauchen und von der App erstellt werden und ihr gehören, automatisch dem Budget hinzugefügt. Dazu gehören Warehouses und Snowpark Container Services Computepools, die im Besitz der App sind. Gemeinsam genutzte Warehouses und Computepools werden nicht automatisch vom Budget erfasst, obwohl Sie diese manuell hinzufügen können.

    Sie können Objekte, die von einer App erstellt wurden und ihr gehören, nicht einem separaten Budget hinzufügen. Sie können Warehouses und Computepools, die gemeinsam genutzt werden, einem separaten Budget hinzufügen.

    Um festzustellen, ob ein Warehouse oder ein Computepool zu einer App gehört, überprüfen Sie Folgendes:

    • Für Warehouses führen Sie den Befehl SHOW WAREHOUSES aus. Wenn der Wert in der Spalte owner_role_type APPLICATION lautet, ist das Warehouse im Besitz eines Snowflake Native App.

    • Für Computepools führen Sie den Befehl SHOW COMPUTE POOLS aus. Wenn der Wert in der Spalte application nicht NULL ist, gehört der Computepool einem Snowflake Native App.

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:

  • Unterstützte Schemaobjekte wie oben beschrieben.

  • Replikation für sekundäre (Replikat-)Datenbanken.

    Bemerkung

    Replikationskosten für sekundäre Datenbanken, die in einer Replikations- oder Failover-Gruppe repliziert werden, können nur über das Kontobudget überwacht werden.

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:

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;
Copy

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.

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Admin » Cost Management aus.

  3. Wählen Sie Budgets aus.

  4. Wählen Sie Plus-Symbol aus (Budget hinzufügen).

  5. Geben Sie einen Budget name ein.

  6. Wählen Sie die Datenbank und das Schema aus, in denen Sie Ihr Budget erstellen möchten.

  7. Geben Sie unter Spending limit das Ausgabenlimit ein.

  8. 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.

  9. 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

  1. Ü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();
    
    Copy
  2. Erstellen Sie das Budget my_budget in budgets_db.budgets_schema mit dem Befehl CREATE BUDGET:

    USE SCHEMA budgets_db.budgets_schema;
    
    CREATE SNOWFLAKE.CORE.BUDGET my_budget();
    
    Copy
  3. Legen Sie das monatliche Ausgabenlimit fest. Setzen Sie das Ausgabenlimit auf 500 Credits pro Monat:

    CALL my_budget!SET_SPENDING_LIMIT(500);
    
    Copy
  4. Richten Sie Benachrichtigungen für das Budget ein, damit Sie benachrichtigt werden, wenn Ihre Credit-Nutzung voraussichtlich Ihr Ausgabenlimit überschreitet.

    Siehe Benachrichtigungen für Budgets.

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 Budget my_budget im Schema budgets_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;
    
    Copy
  • 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 Datenbank db1 zum kundenspezifischen Budget my_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;
    
    Copy

Hinzufügen oder Entfernen von Tags aus einem kundenspezifischen Budget

Sie können mit Snowsight oder SQL Tags zu einem kundenspezifischen Budget hinzufügen oder daraus entfernen. Jedes dem Budget hinzugefügte Tag enthält einen oder mehrere Werte für das Tag.

Bemerkung

Um Tags 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 Tag verwenden. Weitere Informationen dazu finden Sie unter Kundenspezifische Rolle zum Verwalten eines kundenspezifischen Budgets erstellen.

Verwenden von Snowsight, um Tags aus einem benutzerdefinierten Budget zu entfernen oder hinzuzufügen

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Admin » Cost Management aus.

  3. Wählen Sie Budgets aus.

  4. Wählen Sie das zu bearbeitende Budget aus.

  5. Wählen Sie auf dem Dashboard Bleistift-Symbol aus (Bearbeitungssymbol).

  6. Wählen Sie + Tags & resources aus.

  7. Erweitern Sie Tags und navigieren Sie zu dem Tag, das Sie hinzufügen möchten.

  8. Führen Sie eine der folgenden Aktionen aus:

    • Wenn das Tag eine :ref:`Liste der zulässigen Werte <label-object_tagging_specify_tag_values>`hat, wählen Sie einen oder mehrere der Werte aus.

    • Wenn das Tag auf einen beliebigen Wert gesetzt werden kann, geben Sie den Wert an.

  9. Wählen Sie Done aus.

Bemerkung

Beim Hinzufügen von Tags zum Budget in Snowsight beachten Sie Folgendes:

  • Ein Tag muss mindestens auf ein Objekt angewendet werden, bevor Sie es zu einem Budget hinzufügen können.

  • Es kann bis zu zwei Stunden dauern, bis ein Tag nach dem Hinzufügen zu einem Objekt angezeigt wird.

Verwenden von SQL-Befehlen, um Tags zu einem kundenspezifischen Budget hinzuzufügen oder zu entfernen

Die Rolle, die zum Hinzufügen oder Entfernen eines Tags aus einem Budget verwendet wird, muss über die Berechtigung APPLYBUDGET für das Tag 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 Tags zu überprüfen, rufen Sie die Methode <budget_name>!GET_LINKED_TAGS des Budgets auf. Um zum Beispiel die Liste der Tags 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_TAGS();
Copy

Tags müssen einem Budget per Referenz hinzugefügt oder daraus entfernt werden.

  1. Sie können das Tag cost_mgmt_db.tags.cost_center zum Budget my_budget hinzufügen, indem Sie die folgenden Schritte ausführen:

    1. Erteilen Sie der Rolle budget_admin die Berechtigung APPLYBUDGET für das Tag, indem Sie die folgende Anweisung ausführen:

      GRANT APPLYBUDGET ON TAG cost_center TO ROLE budget_admin;
      
      Copy
    2. Übergeben Sie eine Referenz für das Tag cost_center an die Instanzmethode ADD_TAG, indem Sie die folgende Anweisung ausführen. Der Wert des Tags wird auf finance gesetzt.

      CALL budgets_db.budgets_schema.my_budget!ADD_TAG(
         SELECT SYSTEM$REFERENCE('TAG',
            'cost_mgmt_db.tags.cost_center',
            'SESSION',
            'applybudget'),
            'finance');
      
      Copy

      Die SYSTEM$REFERENCE-Funktion erstellt eine Referenz für das Tag cost_center mit der Berechtigung APPLYBUDGET für das Tag. Auf diese Weise kann das Budget die Objekte in Ihrem Konto überwachen, die das angegebene Tag/Wert-Paar in Ihrem Konto aufweisen. 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_TAG 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).

  2. Sie können das Tag cost_center aus dem Budget my_budget entfernen, indem Sie die folgenden Schritte ausführen:

    1. Weisen Sie der Rolle budget_admin die Berechtigung APPLYBUDGET für die Datenbank zu, indem Sie die folgende Anweisung ausführen:

      GRANT APPLYBUDGET ON TAG cost_center TO ROLE budget_admin;
      
      Copy
    2. Entfernen Sie das Tag, indem Sie eine Referenz an die Instanzmethode REMOVE_TAG übergeben:

      CALL budgets_db.budgets_schema.my_budget!REMOVE_TAG(
         SELECT SYSTEM$REFERENCE('TAG',
            'cost_mgmt_db.tags.cost_center',
            'SESSION',
            'applybudget'),
            'finance');
      
      Copy

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

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Admin » Cost Management aus.

  3. Wählen Sie Budgets aus.

  4. Wählen Sie das zu bearbeitende Budget aus.

  5. Wählen Sie auf dem Dashboard Bleistift-Symbol aus (Bearbeitungssymbol).

  6. 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.

  7. 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();
Copy

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.

  1. Sie können die Tabelle t1 zum Budget my_budget hinzufügen, indem Sie die folgenden Schritte ausführen:

    1. 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;
      
      Copy
    2. Ü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'));
      
      Copy

      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.

  2. Sie können die Datenbank db1 aus dem Budget my_budget entfernen, indem Sie die folgenden Schritte ausführen:

    1. 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;
      
      Copy
    2. 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'));
      
      Copy