Catégories :

Fonctions système

EXTRACT_SEMANTIC_CATEGORIES

Renvoie un ensemble de catégories (sémantiques et de confidentialité) pour chaque colonne prise en charge dans la table ou la vue spécifiée. Pour renvoyer les catégories d’une colonne, celle-ci doit utiliser un type de données qui prend en charge la classification et ne contient pas toutes les valeurs NULL.

Les catégories sont dérivées des métadonnées et des données contenues dans les colonnes, ainsi que des métadonnées relatives aux colonnes et aux données. Les catégories de confidentialité reposent sur les catégories sémantiques générées, le cas échéant.

Voir aussi :

Balises système et catégories et Balises système et catégories

Syntaxe

EXTRACT_SEMANTIC_CATEGORIES( '<object_name>' [ , <max_rows_to_scan> ] )
Copy

Arguments

Obligatoire :

object_name

Le nom de la table, de la table externe, de la vue ou de la vue matérialisée contenant les colonnes à classifier. Si une base de données et un schéma ne sont pas utilisés dans la session en cours, le nom doit être entièrement qualifié.

Le nom doit être spécifié exactement comme il est stocké dans la base de données. Si le nom contient des caractères spéciaux, des majuscules ou des espaces vides, il doit être placé d’abord entre guillemets doubles, puis entre guillemets simples.

Facultatif :

max_rows_to_scan

La taille de l’échantillon de lignes à utiliser pour déterminer les catégories de classification dans la table/vue spécifiée.

Valeurs valides : 1 à 10000

Par défaut : 10000

Renvoie

À titre d’exemple représentatif, l’objet JSON a la structure suivante :

{
  "valid_value_ratio": 1.0,
  "recommendation": {
    "semantic_category": "PASSPORT",
    "privacy_category": "IDENTIFIER",
    "confidence": "HIGH",
    "coverage": 0.7,
    "details": [
      {
        "semantic_category": "US_PASSPORT",
        "coverage": 0.7
      },
      {
        "semantic_category": "CA_PASSPORT",
        "coverage": 0.1
      }
    ]
  },
  "alternates": [
    {
      "semantic_category": "NATIONAL_IDENTIFIER",
      "privacy_category": "IDENTIFIER",
      "confidence": "LOW",
      "coverage": 0.3,
      "details": [
        {
          "semantic_category": "US_SSN",
          "privacy_category": "IDENTIFIER",
          "coverage": 0.3
        }
      ]
    }
  ]
}
Copy

Où :

valid_value_ratio

Spécifie le ratio des valeurs valides dans la taille de l’échantillon. Les valeurs non valides incluent NULL, une chaîne vide et une chaîne de plus de 256 caractères.

recommendation

Spécifie des informations sur chaque balise et chaque valeur. Informations comprises :

semantic_category

Spécifie la valeur de la balise de la catégorie sémantique.

Pour connaître les valeurs possibles des balises, voir Balises système et catégories et Balises système et catégories.

privacy_category

Spécifie la valeur de la balise de catégorie de confidentialité.

Les valeurs possibles sont IDENTIFIER, QUASI-IDENTIFIER et SENSITIVE.

confidence

Cette colonne indique l’une des valeurs suivantes : HIGH, MEDIUM, ou LOW. Cette valeur indique la confiance relative que Snowflake a sur la base du processus d’échantillonnage de la colonne et la façon dont les données de la colonne s’alignent sur la manière dont Snowflake classifie les données.

coverage

Spécifie le pourcentage de valeurs de cellules échantillonnées qui correspondent aux règles d’une catégorie particulière.

details

Indique les champs et les valeurs qui peuvent spécifier une valeur de balise géographique pour la balise SEMANTIC_CATEGORY.

alternates

Spécifie des informations sur chaque balise et valeur à prendre en compte autre que la balise recommandée.

Notes sur l’utilisation

Exemples

Extraire les catégories sémantiques et de confidentialité pour la table my_db.my_schema.hr_data en utilisant la valeur par défaut (10000) pour le nombre de lignes à analyser :

USE ROLE data_engineer;

USE WAREHOUSE classification_wh;

SELECT EXTRACT_SEMANTIC_CATEGORIES('my_db.my_schema.hr_data');
Copy

Identique à l’exemple précédent, mais limité à l’analyse de 5 000 lignes de la table :

USE ROLE data_engineer;

SELECT EXTRACT_SEMANTIC_CATEGORIES('my_db.my_schema.hr_data', 5000);
Copy

Identique au premier exemple, mais stocke les résultats dans une table :

USE ROLE data_engineer;

CREATE OR REPLACE TABLE classification_results(v VARIANT) AS
  SELECT EXTRACT_SEMANTIC_CATEGORIES('my_db.my_schema.hr_data');
Copy

Une fois les résultats stockés dans une table, vous pouvez les réexaminer avant d’utiliser ASSOCIATE_SEMANTIC_CATEGORY_TAGS pour les appliquer.