- Kategorien:
EXTRACT_SEMANTIC_CATEGORIES¶
Gibt eine Menge von Kategorien (semantisch und privat) für jede unterstützte Spalte der angegebenen Tabelle oder Ansicht zurück. Um die Kategorien für eine Spalte zurückzugeben, muss die Spalte einen Datentyp verwenden, der die Klassifizierung unterstützt und nicht durchgängig NULL-Werte enthält.
Die Kategorien werden aus den in den Spalten enthaltenen Metadaten und Daten sowie aus den Metadaten zu den Spalten und Daten abgeleitet. Die Datenschutzkategorien stützen sich auf die generierten semantischen Kategorien, sofern vorhanden.
Syntax¶
EXTRACT_SEMANTIC_CATEGORIES( '<object_name>' [ , <max_rows_to_scan> ] )
Argumente¶
Erforderlich:
object_name
Der Name der Tabelle, der externen Tabelle, der Ansicht oder der materialisierten Ansicht, die die zu klassifizierenden Spalten 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.
Optional:
max_rows_to_scan
Der Stichprobenumfang der Zeilen, die für die Bestimmung der Klassifizierungskategorien in der angegebenen Tabelle/Ansicht verwendet werden sollen.
Gültige Werte:
1
bis10000
Standard:
10000
Rückgabewerte¶
Die Funktion gibt ein einzelnes JSON-Objekt zurück, das ein Paar mit Tag-Name/Tag-Wert für jede Spalte enthält, für die Klassifizierungskategorien erstellt wurden. Handelt es sich bei einer Spalte um einen nicht unterstützten Datentyp oder enthält sie nur NULL-Werte, wird die Spalte nicht in die Ausgabe aufgenommen.
Das JSON-Objekt hat die folgende Struktur:
{
"<col1_name>": {
"extra_info" : {
"alternates" : [<semantic_categories>],
"probability" : "<number>"
},
"privacy_category" : "<value>",
"semantic_category" : "<value>"
},
...
...
"<colN_name>": {
"extra_info" : {
"alternates" : [<semantic_categories>],
"probability" : "<number>"
},
"privacy_category" : "<value>",
"semantic_category" : "<value>"
}
}
Wobei:
extra_info
Objekt, das die folgenden Schlüssel-Wert-Paare enthält:
alternates
ist ein Array anderer möglicher semantischer Kategorien, wennprobability
kleiner als0.80
ist. Um als Alternative aufgeführt zu werden, muss die semantische Kategorie eine Wahrscheinlichkeit von0.15
(oder höher), aber weniger als0.80
haben.probability
ist eine Zahl, die die Wahrscheinlichkeit angibt, dass der Klassifizierungsalgorithmus den korrekten Wert fürsemantic_category
ermittelt hat. Die maximale Wahrscheinlichkeit ist1.00
, und der minimale Schwellenwert ist0.15
(d. h. wenn alle semantischen Kategorien eine geringere Wahrscheinlichkeit als0.15
haben, wird kein Wert fürprobability
odersemantic_category
zurückgegeben).
privacy_category
Datenschutzkategorie-Tag der Spalte mit
IDENTIFIER
,QUASI_IDENTIFIER
oderSENSITIVE
als Tag-Wert, basierend auf der semantischen Kategorie der Spalte.semantic_category
Tag der semantischen Kategorie der Spalte, mit dem vom Klassifizierungsalgorithmus abgeleiteten Tag-Wert. Eine Liste der möglichen Werte finden Sie unter System-Tags und Kategorien.
Wenn eine Tabelle zum Beispiel Spalten mit den Namen fname
, lname
, age
und email_address
hat, könnte die Ausgabe der Funktion in etwa wie folgt sein:
{
"AGE": {
"extra_info" : {
"alternates" : [],
"probability" : "1.00"
},
"privacy_category" : "QUASI_IDENTIFIER",
"semantic_category" : "AGE"
},
"EMAIL_ADDRESS": {
"extra_info": {
"alternates": [],
"probability": "1.00"
},
"privacy_category": "IDENTIFIER",
"semantic_category": "EMAIL"
},
"FNAME": {
"extra_info" : {
"alternates" : [],
"probability" : "1.00"
},
"privacy_category" : "IDENTIFIER",
"semantic_category" : "NAME"
},
"LNAME": {
"extra_info" : {
"alternates" : [],
"probability" : "1.00"
},
"privacy_category" : "IDENTIFIER",
"semantic_category" : "NAME"
}
}
Nutzungshinweise¶
Die Funktion erfordert ein aktives, ausgeführtes Warehouse in der Sitzung, in der die Funktion ausgeführt wird.
Die Größe des Warehouses kann sich auf den Zeitumfang auswirken, der für die Klassifizierung der Daten in der Tabelle/Ansicht benötigt wird, insbesondere bei Tabellen, die eine große Anzahl von Spalten mit zu klassifizierenden Daten enthalten. In der Regel führt ein größeres Warehouse zu einem geringeren Zeitaufwand.
Für jede Spalte, die nach der Klassifizierung mehrere mögliche semantische Kategorien aufweist, gilt Folgendes:
Für alle Kategorien mit einer Wahrscheinlichkeit von
0.80
(oder höher) wird die Kategorie mit der höchsten Wahrscheinlichkeit als Wert vonsemantic_category
ausgegeben.Alle Kategorien mit einer Wahrscheinlichkeit von
0.15
(oder höher) werden alsalternates
ausgegeben.Wenn keine Kategorie eine Wahrscheinlichkeit von
0.80
(oder höher) hat, wird kein Wert fürsemantic_category
undprobability
ausgegeben. Und wenn keine Kategorie eine Wahrscheinlichkeit von0.15
(oder höher) hat, wird kein Wert füralternates
ausgegeben.
Beispiele¶
Extrahieren Sie die semantischen und privaten Kategorien für die Tabelle my_db.my_schema.hr_data
unter Verwendung der Standardeinstellung (10000
) für die Anzahl der zu scannenden Zeilen:
USE ROLE data_engineer; USE WAREHOUSE classification_wh; SELECT EXTRACT_SEMANTIC_CATEGORIES( 'my_db.my_schema.hr_data' );
Wie das vorherige Beispiel, aber nun mit der Einschränkung, dass nur 5.000 Zeilen in der Tabelle durchsucht werden:
USE ROLE data_engineer; SELECT EXTRACT_SEMANTIC_CATEGORIES( 'my_db.my_schema.hr_data', 5000 );
Wie das erste Beispiel, jedoch werden die Ergebnisse in einer Tabelle gespeichert:
USE ROLE data_engineer; CREATE OR REPLACE TABLE classification_results(v VARIANT) AS SELECT EXTRACT_SEMANTIC_CATEGORIES( 'my_db.my_schema.hr_data');Sobald die Ergebnisse in einer Tabelle gespeichert sind, können Sie sie überarbeiten, bevor Sie ASSOCIATE_SEMANTIC_CATEGORY_TAGS verwenden, um sie anzuwenden.