- Catégories :
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.
Syntaxe¶
EXTRACT_SEMANTIC_CATEGORIES( '<object_name>' [ , <max_rows_to_scan> ] )
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¶
La fonction renvoie un objet JSON unique contenant une paire nom/valeur de balise pour chaque colonne pour laquelle des catégories de classification ont été générées. Si une colonne est un type de données non pris en charge ou contient toutes les valeurs NULL, la colonne n’est pas incluse dans la sortie.
L’objet JSON a la structure suivante :
{
"<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>"
}
}
Où :
extra_info
Objet contenant les paires clé-valeur suivantes :
alternates
est un tableau d’autres catégories sémantiques possibles siprobability
est inférieur à0.80
. Pour être répertoriée comme alternative, la catégorie sémantique doit avoir une probabilité de0.15
(ou plus), mais inférieure à0.80
.probability
est un nombre indiquant la probabilité que l’algorithme de classification ait dérivé de la valeur correcte poursemantic_category
. La probabilité maximale est1.00
et le seuil minimal est0.15
(c’est-à-dire que si toutes les catégories sémantiques ont une probabilité inférieure à0.15
, aucune valeur n’est renvoyée pourprobability
ousemantic_category
).
privacy_category
Balise de catégorie de confidentialité pour la colonne, avec
IDENTIFIER
,QUASI_IDENTIFIER
ouSENSITIVE
comme valeur de balise, en fonction de la catégorie sémantique de la colonne.semantic_category
Balise de catégorie sémantique pour la colonne, avec la valeur de la balise dérivée par l’algorithme de classification. Pour une liste des valeurs possibles, voir Balises système et catégories.
Par exemple, si une table comporte des colonnes nommées fname
, lname
, age
, et email_address
, la fonction peut renvoyer un résultat similaire à celui-ci :
{
"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"
}
}
Notes sur l’utilisation¶
La fonction nécessite un entrepôt actif, en cours d’exécution, dans la session dans laquelle la fonction est exécutée.
La taille de l’entrepôt peut avoir un impact sur le temps nécessaire pour classifier les données dans la table/vue, en particulier pour les tables avec un grand nombre de colonnes contenant des données à classifier. En règle générale, un entrepôt plus grand permet de réduire ce temps.
Pour chaque colonne que la classification identifie comme ayant plusieurs catégories sémantiques possibles :
Pour toutes les catégories ayant une probabilité de
0.80
(ou plus), la catégorie dont la probabilité est la plus élevée est indiquée comme la valeur desemantic_category
.Toutes les catégories ayant une probabilité de
0.15
(ou plus) sont répertoriées commealternates
.Si aucune catégorie n’a une probabilité de
0.80
(ou plus), aucune valeur n’est répertoriée poursemantic_category
etprobability
. De même, si aucune catégorie n’a une probabilité de0.15
(ou plus), aucune valeur n’est répertoriée pouralternates
.
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' );
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 );
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');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.