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 Zeichenfolgenwertsales
haben. Alternativ könnte der Zeichenfolgenwert für jede Tabelle unterschiedlich sein (z. B.engineering
,marketing
undfinance
).
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.
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'));
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';
- Ein Tag an einem Objekt
ALTER TABLE t1 MODIFY COLUMN col1 SET TAG tag1 = 'val1' MODIFY COLUMN col2 SET TAG tag1 = 'val2';
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.