SYSTEM$CLASSIFY_SCHEMA¶
Plant die zu klassifizierenden Tabellen des angegebenen Schemas, mit der Option zum Angeben der Anzahl der Zeilen jeder Tabelle in der Stichprobe und zum Setzen des empfohlenen Datenklassifizierungs-System-Tags auf jede Spalte in den Tabellen, die im angegebenen Schema gespeichert sind.
Nachdem die gespeicherte Prozedur ihre Ausführung beendet hat, müssen Sie die Klassifizierung der Tabellen mit SQL oder über Snowsight abschließen, wie unter Datenklassifizierung verwenden gezeigt.
Syntax¶
SYSTEM$CLASSIFY_SCHEMA( '<object_name>' , <object> )
Argumente¶
schema_name
Name des Schemas, das die zu klassifizierenden Tabellen enthält. Wenn in der aktuellen Sitzung weder Datenbank noch Schema verwendet werden, muss der Name vollqualifiziert sein.
Der Name muss genau so angegeben werden, wie er in der Datenbank gespeichert ist. Enthält der Name Sonderzeichen, Großbuchstaben oder Leerzeichen, muss der Name zuerst in Anführungszeichen und dann in einfache Anführungszeichen gesetzt werden.
object
Gibt eine JSON OBJECT an, um zu bestimmen, wie der Klassifizierungsprozess funktioniert. Eine der folgenden Optionen:
NULL
Snowflake verwendet seine Standardkonfiguration auf der Grundlage der Anzahl der Zeilen im angegebenen Objekt. System-Tags sind für keine der Spalten des angegebenen Objekts festgelegt.
{}
Ein leeres Objekt, das funktional der Angabe von
NULL
entspricht.{'sample_count': integer}
Gibt die Anzahl der Zeilen in der Stichprobe für das angegebene Objekt. Jede Zahl von
1
bis10000
, einschließlich.{'auto_tag': true}
Legt die empfohlenen Klassifizierungs-System-Tags für die Spalten des angegebenen Objekts fest, wenn der Klassifizierungsprozess abgeschlossen ist.
Wenn Sie dieses Argument verwenden, rufen Sie die gespeicherte Prozedur mit der Rolle auf, die die OWNERSHIP-Berechtigung für das Schema hat.
{'sample_count': integer, 'auto_tag': true}
Klassifizieren Sie das angegebene Objekt unter Angabe der Anzahl der Zeilen in der Stichprobe, und setzen Sie nach Abschluss des Klassifizierungsprozesses das empfohlene System-Tag auf jede Spalte des angegebenen Objekts.
Wenn Sie dieses Argument verwenden, rufen Sie die gespeicherte Prozedur mit der Rolle auf, die die OWNERSHIP-Berechtigung für das Schema hat.
{'use_all_custom_classifiers': true}
Snowflake wertet alle benutzerdefinierten Klassifizierungsinstanzen aus und empfiehlt auf Grundlage des Klassifizierungsergebnisses das Tag, das mit einer kundenspezifischen Klassifizierungsinstanz verbunden werden soll.
Bei dieser Option werden die kundenspezifischen Klassifikatoren verwendet, auf die die Rolle Zugriff hat, mit der die gespeicherte Prozedur aufgerufen wird (aktuelle Rolle, Aufruferrechte). Weitere Details dazu finden Sie unter Erläuterungen zu gespeicherten Prozeduren mit Aufruferrechten und Eigentümerrechten.
{'custom_classifiers': ['instance_name1' [ , 'instance_name2' ... ] ]}
Gibt die zu evaluierende Instanz der kundenspezifischen Klassifizierung als Quelle für das empfohlene Tag an, auf das die Spalte gesetzt werden soll.
Sie können mehrere Instanzen in der Liste angeben und jede Instanz durch ein Komma trennen.
Rückgabewerte¶
Die gespeicherte Prozedur gibt ein JSON-Objekt im folgenden Format zurück. Beispiel:
{
"failed": [
{
"message": "Insufficient privileges.",
"table_name": "t4"
}
],
"succeeded": [
{
"table_name": "t1"
},
{
"table_name": "t2"
},
{
"table_name": "t3"
}
]
}
Wobei:
failed
Gibt eine Meldung an, die einen Grund dafür angibt, warum die Tabelle nicht für die Klassifizierung geplant wurde.
succeeded
Gibt jede Tabelle an, für die eine Klassifizierung der Daten geplant ist.
Nutzungshinweise¶
Das angegebene Schema kann bis zu 1.000 Tabellenobjekte enthalten. Wenn das Schema mehr als 1.000 Tabellenobjekte enthält, gibt Snowflake eine Fehlermeldung zurück.
Von Snowflake bereitgestellte gespeicherte Prozeduren nutzen Aufruferrechte. Weitere Details dazu finden Sie unter Erläuterungen zu gespeicherten Prozeduren mit Aufruferrechten und Eigentümerrechten.
Wenn Sie alternative Werte für das System-Tag verwenden möchten, können Sie mit der ALTER TABLE … MODIFY COLUMN … SET TAG-Anweisung den Tag-Wert aktualisieren.
Um ein Klassifizierungssystem-Tag aus einer Spalte zu entfernen, verwenden Sie eine ALTER TABLE … MODIFY COLUMN … UNSET TAG-Anweisung.
Vorsicht
Wenn Sie diese gespeicherte Prozedur aufrufen, wird die Klassifizierung für jede Tabelle im Schema parallel ausgeführt und verbraucht Warehouse-Ressourcen. Wenn Sie diese gespeicherte Prozedur mehrmals in kurzer Zeit aufrufen, um Tabellen in Schemata gleichzeitig zu klassifizieren, werden diese Prozesse ebenfalls parallel ausgeführt. Viele parallele Klassifizierungsprozesse können die Kapazität des Warehouses übersteigen, was dazu führt, dass der Klassifizierungsprozess für einige Tabellen fehlschlägt. Folglich kann ein Schema einige seiner Tabellen klassifiziert haben und andere nicht.
Bevor Sie SYSTEM$CLASSIFY_SCHEMA aufrufen, ermitteln Sie die Anzahl der Spalten in jeder Tabelle, die Anzahl der Tabellen in einem Schema, die Anzahl der Schemas, die Sie klassifizieren möchten, und die Warehouse-Größe, die für die Sitzung verwendet wird. Empfehlungen zur Größe des Warehouses finden Sie unter Computekosten.
Beispiele¶
Bereitstellen der Klassifizierung der Tabellen im Schema:
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables', null);
Bereitstellen der Klassifizierung der Tabellen im Schema unter Angabe der Anzahl der Zeilen in der Stichprobe:
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'sample_count': 1000});
Bereitstellen der Klassifizierung der Tabellen im Schema und Setzen der System-Tags auf die Spalten:
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'auto_tag': true});
Bereitstellen der Klassifizierung der Tabellen im Schema unter Angabe der Anzahl der Zeilen in der Stichprobe und Setzen des empfohlenen System-Tags auf jede Spalte der Tabelle:
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'sample_count': 1000, 'auto_tag': true});