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:

Objektname

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_Reihenanzahl_für_Scan

Der Stichprobenumfang der Zeilen, die für die Bestimmung der Klassifizierungskategorien in der angegebenen Tabelle/Ansicht verwendet werden sollen.

Gültige Werte: 1 bis 10000

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, wenn probability kleiner als 0.80 ist. Um als Alternative aufgeführt zu werden, muss die semantische Kategorie eine Wahrscheinlichkeit von 0.15 (oder höher), aber weniger als 0.80 haben.

  • probability ist eine Zahl, die die Wahrscheinlichkeit angibt, dass der Klassifizierungsalgorithmus den korrekten Wert für semantic_category ermittelt hat. Die maximale Wahrscheinlichkeit ist 1.00, und der minimale Schwellenwert ist 0.15 (d. h. wenn alle semantischen Kategorien eine geringere Wahrscheinlichkeit als 0.15 haben, wird kein Wert für probability oder semantic_category zurückgegeben).

privacy_category

Datenschutzkategorie-Tag der Spalte mit IDENTIFIER, QUASI_IDENTIFIER oder SENSITIVE 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 Tag-Zuordnungen.

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 von semantic_category ausgegeben.

    • Alle Kategorien mit einer Wahrscheinlichkeit von 0.15 (oder höher) werden als alternates ausgegeben.

    • Wenn keine Kategorie eine Wahrscheinlichkeit von 0.80 (oder höher) hat, wird kein Wert für semantic_category und probability ausgegeben. Und wenn keine Kategorie eine Wahrscheinlichkeit von 0.15 (oder höher) hat, wird kein Wert für alternates 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.

Zurück zum Anfang