Einführung in das Objekt-Tagging

Was ist ein Tag?

Ein Tag ist ein Objekt auf Schemaebene, das einem anderen Snowflake-Objekt zugewiesen werden kann. Benutzer verknüpfen ein Tag mit einem beliebigen Zeichenfolgenwert, wenn sie das Tag einem Snowflake-Objekt zuweisen. Snowflake speichert das Tag und seinen Zeichenfolgenwert als Schlüssel-Wert-Paar. Das Tag muss für Ihr Schema eindeutig sein, wobei der Tag-Wert immer eine Zeichenfolge ist.

Im Folgenden finden Sie allgemeine Merkmale das Objekt-Tagging:

  • Ein Objekt kann mehrere Tags gleichzeitig haben. Weitere Informationen dazu finden Sie unter Tag-Kontingent für Objekte.

  • Ein einziges Tag kann gleichzeitig verschiedenen Objekttypen zugewiesen werden (z. B. einem Warehouse und einer Tabelle gleichzeitig).

  • Zum Zeitpunkt der Zuweisung zum Snowflake-Objekt kann der Zeichenfolgenwert des Tags dupliziert werden oder eindeutig bleiben. So kann zum Beispiel mehreren Tabellen das Tag cost_center zugewiesen werden, und das Tag kann immer den Zeichenfolgenwert sales haben. Alternativ könnte der Zeichenfolgenwert für jede Tabelle unterschiedlich sein (z. B. engineering, marketing und finance).

Nachdem Sie die Tags definiert und den Snowflake-Objekten zugewiesen haben, können Sie sie abfragen, um die Nutzung der Objekte zu überwachen und Data Governance-Operationen wie Audits und Berichte zu erleichtern.

Höhepunkte

Benutzerfreundlichkeit:

Ein Tag wird einmal definiert und kann dann auf beliebig viele verschiedene Objekte angewendet werden.

Tag-Vererbung:

Da Tags vererbt werden, wird ein Tag, der auf ein übergeordnetes Objekt in der Hierarchie der schützbaren Objekte angewendet wird, automatisch auch auf alle untergeordneten Objekte übertragen. Wird beispielsweise ein Tag für eine Tabelle festgelegt, so wird das Tag an alle Spalten in dieser Tabelle vererbt.

Automatische Weitergabe:

Konfigurieren Sie ein Tag so, dass es automatisch von einem Quellobjekt auf Zielobjekte übertragen wird.

Konsistente Zuweisung mit Replikation:

Snowflake repliziert die Tags und deren Zuweisungen innerhalb der Primärdatenbank auch in die Sekundärdatenbank.

Zentrale oder dezentrale Verwaltung:

Tags unterstützen verschiedene Managementansätze, um die Einhaltung interner und externer Vorschriften zu erleichtern.

Bei einem zentralisierten Ansatz können Sie eine benutzerdefinierte Rolle tag_admin erstellen, die Tags erstellt und auf Snowflake-Objekte anwendet.

Bei einem dezentralen Ansatz werden die Tags zwar von der kundenspezifischen Rolle tag_admin definiert, um eine einheitliche Benennung sicherzustellen, aber die Anwendung der Tags auf die Snowflake-Objekte erfolgt durch einzelne Teams.

Verwendung von Tags für den Datenschutz

Da Tags Tabellen, Ansichten und Spalten zugewiesen werden können, ermöglicht das Setzen eines Tags und die anschließende Abfrage des Tags die Erkennung einer Vielzahl von Datenbankobjekten und -spalten, die sensible Informationen enthalten. Nach dem Erkennen können die Datenverwalter bestimmen, wie die Verfügbarkeit der Daten am besten gesteuert werden kann, z. B. durch selektive Filterung mithilfe von Zeilenzugriffsrichtlinien oder mithilfe von Maskierungsrichtlinien, um zu bestimmen, ob die Daten tokenisiert, vollständig maskiert, teilweise maskiert oder nicht maskiert sind.

Sie können auch Objekt-Tagging und Maskierungsrichtlinien kombinieren, um die Datenverwaltung zu vereinfachen. Bei diesem Ansatz weisen Sie einem Tag eine Maskierungsrichtlinie zu und ordnen dieses Tag dann einer Tabelle oder Spalte zu. Wenn der Datentyp einer Spalte mit dem Datentyp in der Signatur der Maskierungsrichtlinie übereinstimmt, wird die markierte Spalte automatisch durch die Maskierungsrichtlinie geschützt. Weitere Informationen dazu finden Sie unter Tag-basierte Maskierungsrichtlinien.

Verwendung von Tags zur Überwachung der Ressourcennutzung

Das Zuweisen von Tags zu Warehouses ermöglicht eine genaue Überwachung der Ressourcennutzung. Die Abfrage von Ressourcen-Tags ermöglicht die einfache Gruppierung von Ressourcen nach Kostenstelle oder einer anderen Organisationseinheit. Darüber hinaus kann das Tag die Analyse relativ kurzfristiger Geschäftsaktivitäten, wie z. B. Projekte, erleichtern, um detailliertere Informationen darüber zu erhalten, wann welche Ressourcen wie verwendet wurden.

Ein Beispiel für die Verwendung von Tags zur Überwachung der Ressourcennutzung finden Sie unter Objekt-Tags für die Kostenzuordnung einrichten.

Verknüpfen eines Tags mit einem Objekt

Ein Tag kann auf die folgenden Arten mit einem Objekt verknüpft werden:

  • Jemand hat die Markierung manuell auf das Objekt gesetzt, indem er den Befehl CREATE <object> oder ALTER <object> verwendet hat. Siehe Ein Tag setzen.

  • Das Objekt hat das Tag von einem Objekt weiter oben in der Snowflake-Hierarchie der sicherbaren Objekte geerbt. Ein Warehouse in einem Konto erbt zum Beispiel die auf dem Konto gesetzten Tags. Siehe Tag-Vererbung.

  • Das Tag wurde automatisch von einem Objekt auf ein anderes übertragen. Tags können übertragen werden, wenn ein Objekt von einem anderen Objekt abhängt (z. B. eine Ansicht, die auf einer mit einem Tag versehenen Tabelle basiert) oder wenn Daten von einem mit einem Tag versehenen Objekt in ein anderes Objekt verschoben werden (z. B. mithilfe einer CTAS-Anweisung zum Erstellen einer Tabelle). Siehe Automatische Tag-Weitergabe mit benutzerdefinierten Tags.

  • Das Tag wurde automatisch für eine Spalte festgelegt, die als sensibel eingestuft wurde. Informationen dazu, wie die automatische Klassifizierung sensibler Daten eine Tag-Zuordnung verwendet, um diese Tags zu setzen, erfahren Sie unter Über die Zuordnung von Tags.

  • Jemand hat den Befehl CREATE TABLE … LIKE oder CREATE TABLE … CLONE verwendet, um eine Tabelle aus einer vorhandenen Tabelle mit Tags zu erstellen.

Ermitteln Sie, wie ein Tag mit einem Objekt verknüpft wurde.

Die folgenden Ansichten und Funktionen enthalten die Spalte apply_method, die anzeigt, wie ein Tag mit einem Objekt verknüpft wurde.

Um beispielsweise herauszufinden, ob ein Tag manuell auf dem Objekt gesetzt oder weitergegeben wurde, können Sie den folgenden Befehl ausführen und den Wert in der Spalte apply_method überprüfen.

SELECT tag_name, tag_value, apply_method, level, domain
  FROM TABLE(my_db.INFORMATION_SCHEMA.TAG_REFERENCES('my_table', 'TABLE'));
Copy

Tag-Kontingent für Objekte

Sie können bis zu 50 Tags für ein einzelnes Objekt setzen, einschließlich Tabellen und Ansichten. Dies ist eine Begrenzung der Anzahl der verschiedenen Tags, nicht die Anzahl der verschiedenen Tag/Wert-Kombinationen, wie in den folgenden Beispielen gezeigt.

Zwei Tags an einem Objekt
ALTER TABLE t1 SET TAG tag1 = 'val1', tag2 = 'val1';
Copy
Ein Tag an einem Objekt
ALTER TABLE t1
  MODIFY COLUMN col1 SET TAG tag1 = 'val1'
  MODIFY COLUMN col2 SET TAG tag1 = 'val2';
Copy

Wenn Sie die Anzahl der Tags erreicht haben und einen Tag löschen möchten, führen Sie die Anweisung ALTER <object> UNSET TAG aus.

Wenn Sie mehrere CREATE <object>- oder ALTER <object>-Befehle in einer einzigen Anweisung ausführen, ist 100 die maximale Anzahl von Tags, die angegeben werden kann.

Zusätzliches Kontingent für Spalten

Wie bei allen anderen Objekten beträgt die maximale Anzahl von Tags in einer Tabelle oder Ansicht 50 eindeutige Tags. Es gibt eine zusätzliche Quote für die Spalten einer Tabelle oder Ansicht. Die maximale Gesamtzahl der Tags in allen Spalten einer einzelnen Tabelle oder Ansicht beträgt 50.

Wenn beispielsweise für eine einzelne Spalte in einer Tabelle 10 Tags festgelegt sind, erlaubt Snowflake Folgendes:

  • Setzen Sie 40 zusätzliche Tags entweder in derselben Spalte oder in einer Kombination der Spalten in der Tabelle.

  • Festlegen von 50 zusätzlichen Tags direkt auf der Tabelle.

Funktionen, die Enterprise Edition erfordern

Das Erstellen und Setzen von Tags ist für alle Konten möglich. Es gibt jedoch erweiterte Funktionen, für die die Enterprise Edition oder höher erforderlich ist. Sie benötigen ein Konto mit der Enterprise Edition oder höher, um die folgenden Funktionen zu nutzen:

Unterstützte Objekte

In der folgenden Tabelle sind die unterstützten Objekte für Tags, einschließlich Spalten, basierend auf der Hierarchie der sicherbaren Snowflake-Objekte aufgeführt.

Ein Tag kann mit einer CREATE <Objekt>-Anweisung oder einer ALTER <Objekt>-Anweisung auf ein Objekt festgelegt werden, sofern in der nachstehenden Tabelle nichts anderes angegeben ist.

Ein Tag kann mit einer CREATE TABLE-, CREATE VIEW-, ALTER TABLE- … MODIFY COLUMN- oder ALTER VIEW-Anweisung für eine Spalte gesetzt werden.

Objekthierarchie

Unterstützte Objekte

Anmerkungen

Organisation

Konto

Ein Tag kann über eine Rolle mit der globalen Berechtigung APPLY TAG auf Ihr aktuelles Konto gesetzt werden.

Konto

Anwendung

Anwendungspaket

Computepool

Datenbank

Failover-Gruppe

Integration

Alle Typen werden unterstützt.

Verwenden Sie einen ALTER INTEGRATION-Befehl, um ein Tag für die Integration festzulegen.

Netzwerkrichtlinie

Verwenden Sie einen ALTER NETWORK POLICY-Befehl, um ein Tag auf eine Netzwerkrichtlinie zu setzen.

Replikationsgruppe

Rolle

Freigabe

Die Tags auf Freigaben werden vom Data Sharing-Anbieter gesetzt. Diese Tags sind für den Data Sharing-Verbraucher nicht sichtbar. Verwenden Sie einen ALTER SHARE-Befehl, um ein Tag für die Freigabe festzulegen.

Benutzer

Warehouse

Datenbank

Datenbankrolle

Verwenden Sie einen ALTER DATABASE ROLE-Befehl, um ein Tag auf eine Datenbankrolle zu setzen.

Schema

Schema

Aggregationsrichtlinie

Alert

BUDGET-Instanz

Verwenden Sie einen ALTER BUDGET-Befehl, um ein Tag auf eine Instanz der Klasse SNOWFLAKE.CORE.BUDGET zu setzen.

CLASSIFICATION-Instanz

Verwenden Sie einen ALTER SNOWFLAKE.ML.CLASSIFICATION-Befehl, um ein Tag auf eine Instanz der Klasse SNOWFLAKE.ML.CLASSIFICATION zu setzen.

Dynamische Tabelle

Ereignistabelle

Externe Funktion und UDF

Verwenden Sie einen ALTER FUNCTION-Befehl, um ein Tag auf eine externe Funktion oder UDF zu setzen.

Externe Tabelle

Sie können eine externe Tabelle mit einem Tag mit einer CREATE EXTERNAL TABLE-Anweisung erstellen.

Um Tag-Zuweisungen auf einer externen Tabelle zu verwalten, verwenden Sie den Befehl ALTER TABLE.

Git-Repository

Apache Iceberg™-Tabelle

Image-Repository

Verknüpfungsrichtlinie

Materialisierte Ansicht

Notebook

Kennwortrichtlinie

Pipe

Setzen Sie ein Tag auf eine Pipe mit einer ALTER PIPE-Anweisung.

Richtlinie

Setzen Sie ein Tag auf eine Richtlinie für Maskierung, Kennwort, Zeilenzugriff, Sitzung, Aggregation, Verknüpfung oder Projektion mit der entsprechenden Anweisung ALTER <policy>.

Prozedur

Setzen Sie ein Tag auf eine gespeicherte Prozedur mit einer ALTER PROCEDURE-Anweisung.

Projektionsrichtlinie

Sitzungsrichtlinie

Snapshot

Stagingbereich

Setzen Sie ein Tag auf einen Stagingbereich mit einer ALTER STAGE-Anweisung.

Stream

Streamlit

Tabelle

Aufgabe

Setzen Sie ein Tag auf eine Aufgabe mit einer ALTER TASK-Anweisung.

Ansicht

Tabelle oder Ansicht

Spalte

Enthält Ereignistabellen.

Einschränkungen und Hinweise

Zukünftige Berechtigungszuweisungen:

Zukünftige Berechtigungszuweisungen zu Tags werden nicht unterstützt.

Als Problemumgehung können Sie einer kundenspezifischen Rolle die Berechtigung APPLYTAG erteilen, damit diese Rolle Tags auf andere Objekte anwenden kann.

Snowflake Native App:

Seien Sie vorsichtig, wenn Sie das Setup-Skript erstellen und Tags in einem versionierten Schema vorliegen. Informationen finden Sie unter Hinweise zum Versionsschema.