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-Kontingente.
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_centerzugewiesen werden, und das Tag kann immer den Zeichenfolgenwertsaleshaben. Alternativ könnte der Zeichenfolgenwert für jede Tabelle unterschiedlich sein (z. B.engineering,marketingundfinance).
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_adminerstellen, die Tags erstellt und auf Snowflake-Objekte anwendet.Bei einem dezentralen Ansatz werden die Tags zwar von der kundenspezifischen Rolle
tag_admindefiniert, 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-Kontingente¶
Sie können maximal 50 Tags für ein einzelnes Objekt setzen, einschließlich Tabellen und Ansichten.
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.
Separates Kontingent für Spalten¶
Sie können maximal 50 verschiedene Tags auf die Spalten einer einzelnen Tabelle setzen. Dies ist eine Beschränkung für alle Spalten zusammen.
Die Spaltenbeschränkung unterscheidet sich von der Beschränkung der Anzahl der für eine Tabelle festgelegten Tags. Angenommen, Sie erstellen die folgende Tabelle mit Tags sowohl für die Tabelle als auch auf ihren Spalten:
CREATE TABLE t1 (
COL1 INT WITH TAG (tag1='col1', tag2='col1'),
COL2 INT WITH TAG (tag1='col2'),
)
WITH TAG (tag3='t1');
Mit Snowflake können Sie Folgendes tun:
Setzen Sie 49 weitere Tags auf die Tabelle
t1.Setzen Sie 48 weitere Tags auf die Spalten von
t1. Die Beschränkung gilt für verschiedene Tags, alsotag1wird nicht zweimal gezählt.
Wenn Sie eine Anweisung CREATE TABLE oder ALTER TABLE ausführen, um Tags auf die Spalten einer Tabelle anzuwenden, beträgt die maximale Anzahl eindeutiger Tag-Entitäts-Zuordnungen 100, wobei eine Entität die Tabelle oder eine Spalte ist. Wenn Sie beispielsweise eine Tabelle mit 1.000 Spalten haben und jeder Spalte das gleiche Tag zuordnen möchten, müssen Sie 10 ALTER-Anweisungen ausführen.
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 |
||
Snapshot-Set |
Für WORM-Snapshots. Enthält einen Satz von Snapshots für eine bestimmte Datenbank, ein bestimmtes Schema oder eine bestimmte Tabelle. |
|
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.