SYSTEM$CLASSIFY_SCHEMA¶
Planifie les tables du schéma spécifié avec la possibilité de spécifier le nombre de lignes à échantillonner dans chaque table et d’attribuer la balise du système de classification des données à chaque colonne des tables stockées dans le schéma spécifié.
Une fois que la procédure stockée a terminé son exécution, vous devez finir de classifier les tables en utilisant SQL ou Snowsight comme indiqué dans Classification des données d’utilisation.
Syntaxe¶
SYSTEM$CLASSIFY_SCHEMA( '<object_name>' , <object> )
Arguments¶
schema_name
Nom du schéma contenant les tables à 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.
object
Spécifie un OBJECT JSON pour déterminer comment fonctionne le processus de classification. Un des éléments suivants :
NULL
Snowflake utilise sa configuration par défaut en fonction du nombre de lignes dans l’objet spécifié. Les balises système ne sont définies sur aucune colonne de l’objet spécifié.
{}
Un objet vide, qui équivaut fonctionnellement à spécifier
NULL
.{'sample_count': integer}
Spécifie le nombre de lignes à échantillonner dans l’objet spécifié. Tout nombre compris entre
1
et10000
inclus.{'auto_tag': true}
Définit les balises du système de classification recommandé sur les colonnes de l’objet spécifié lorsque le processus de classification est terminé.
Lorsque vous utilisez cet argument, appelez la procédure stockée avec le rôle qui dispose du privilège OWNERSHIP sur le schéma.
{'sample_count': integer, 'auto_tag': true}
Classifiez l’objet spécifié en spécifiant le nombre de lignes à échantillonner et définissez la balise système recommandée sur chaque colonne de l’objet spécifié lorsque le processus de classification est terminé.
Lorsque vous utilisez cet argument, appelez la procédure stockée avec le rôle qui dispose du privilège OWNERSHIP sur le schéma.
{'use_all_custom_classifiers': true}
Snowflake évalue toutes les instances de classification personnalisées et recommande la balise associée à une instance de classification personnalisée en fonction du résultat de la classification.
Cette option utilise les classificateurs personnalisés accessibles au rôle utilisé qui appelle la procédure stockée (rôle actuel, droits de l’appelant). Pour plus de détails, voir Présentation des procédures stockées des droits de l’appelant et des droits du propriétaire.
{'custom_classifiers': ['instance_name1' [ , 'instance_name2' ... ] ]}
Spécifie l’instance de classification personnalisée à évaluer comme source pour la balise recommandée à définir sur la colonne.
Vous pouvez spécifier plusieurs instances dans la liste et séparer chaque instance par une virgule.
Renvoie¶
La procédure stockée renvoie un objet JSON dans le format suivant. Par exemple :
{
"failed": [
{
"message": "Insufficient privileges.",
"table_name": "t4"
}
],
"succeeded": [
{
"table_name": "t1"
},
{
"table_name": "t2"
},
{
"table_name": "t3"
}
]
}
Où :
failed
Spécifie un message expliquant pourquoi la classification de la table n’a pas été programmée.
succeeded
Spécifie chaque table planifiée pour la classification des données.
Notes sur l’utilisation¶
Le nom du schéma spécifié peut contenir jusqu’à 1 000 objets de table. Si le schéma contient plus de 1 000 objets de table, Snowflake renvoie un message d’erreur.
Les procédures stockées fournies par Snowflake utilisent les droits de l’appelant. Pour plus de détails, voir Présentation des procédures stockées des droits de l’appelant et des droits du propriétaire.
Si vous souhaitez appliquer d’autres valeurs de balises système, utilisez une instruction ALTER TABLE … MODIFY COLUMN … SET TAG pour mettre à jour la valeur de la balise.
Pour supprimer une balise du système de classification d’une colonne, utilisez une instruction ALTER TABLE … MODIFY COLUMN … UNSET TAG.
Prudence
Lorsque vous appelez cette procédure stockée, le processus de classification de chaque table du schéma s’exécute en parallèle et consomme des ressources de l’entrepôt. Si vous appelez cette procédure stockée plusieurs fois sur une courte période pour classer simultanément des tables dans des schémas, ces processus s’exécutent également en parallèle. De nombreux processus de classification parallèles peuvent dépasser la capacité de l’entrepôt, ce qui entraîne l’échec du processus de classification de certaines tables. Par conséquent, un schéma peut avoir certaines de ses tables classées et d’autres non classées.
Avant d’appeler SYSTEM$CLASSIFY_SCHEMA, évaluez le nombre de colonnes dans chaque table, le nombre de tables dans un schéma, le nombre de schémas que vous souhaitez classer et la taille de l’entrepôt utilisé pour la session. Pour les recommandations sur la taille de l’entrepôt, voir Coûts de calcul.
Exemples¶
Mettre en zone de préparation la classification des tables dans le schéma :
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables', null);
Mettre en zone de préparation la classification des tables dans le schéma et spécifier le nombre de lignes à échantillonner :
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'sample_count': 1000});
Mettre en zone de préparation la classification des tables dans le schéma et attribuez les balises système aux colonnes :
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'auto_tag': true});
Mettre en zone de préparation la classification des tables dans le schéma, spécifier le nombre de lignes à échantillonner et définir la balise système recommandée pour chaque colonne de la table :
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'sample_count': 1000, 'auto_tag': true});