Catégories :

Fonctions système (Informations système)

SYSTEM$CLUSTERING_INFORMATION

Renvoie les informations de clustering, y compris la profondeur de clustering moyenne, pour une table sur la base d’une ou plusieurs colonnes de la table.

Voir aussi :

SYSTEM$CLUSTERING_DEPTH

Syntaxe

SYSTEM$CLUSTERING_INFORMATION( '<table_name>' , '( <col1> [ , <col2> ... ] )' )

Arguments

nom_table

Table pour laquelle vous voulez renvoyer des informations de clustering.

col1 [ , col2 ... ]

Colonne(s) de la table pour laquelle/lesquelles les informations de clustering sont renvoyées :

  • Pour une table sans clé de clustering, cet argument est requis. Si cet argument est omis, une erreur est renvoyée.

  • Pour une table avec une clé de clustering, cet argument est facultatif. Si l’argument est omis, Snowflake utilise la clé de clustering définie pour renvoyer des informations de clustering.

Note

Vous pouvez utiliser cet argument pour renvoyer des informations de clustering pour n’importe quelle colonne de la table, peu importe si une clé de clustering est définie pour la table.

En d’autres termes, vous pouvez l’utiliser pour vous aider à choisir le type de clustering à utiliser à l’avenir.

Notes sur l’utilisation

  • Tous les arguments sont des chaînes de caractères ; ils doivent donc être compris entre des guillemets simples.

Sortie

La fonction renvoie un objet JSON contenant les paires nom/valeur suivantes :

cluster_by_keys

Colonnes de la table utilisées pour renvoyer les informations de clustering ; il peut s’agir de n’importe quelle colonne de la table.

notes

Cette colonne peut contenir des suggestions pour rendre le clustering plus efficace. Par exemple, ce champ peut contenir un avertissement si la cardinalité de la colonne de clustering est extrêmement élevée.

Cette colonne peut être vide.

Pour plus d’informations sur la façon d’effectuer un cluster de façon efficace, voir Stratégies de sélection des clés de clustering.

total_partition_count

Nombre total de micro-partitions qui composent la table.

total_constant_partition_count

Nombre total de micro-partitions pour lesquelles la valeur des colonnes spécifiées a atteint un état constant (c’est-à-dire que les micro-partitions ne profiteront pas du regroupement de manière significative). Le nombre de micro-partitions constantes dans une table a un impact sur l’allègement des requêtes. Plus le nombre est élevé, plus le nombre de micro-partitions peut être réduit à partir des requêtes exécutées sur la table, ce qui a un impact correspondant sur les performances.

average_overlaps

Nombre moyen de micro-partitions se chevauchant pour chaque micro-partition de la table. Un chiffre élevé indique que la table n’est pas bien regroupée.

average_depth

Profondeur moyenne de chevauchement de chaque micro-partition de la table. Un chiffre élevé indique que la table n’est pas bien regroupée.

Cette valeur est également renvoyée par SYSTEM$CLUSTERING_DEPTH.

partition_depth_histogram

Histogramme illustrant la distribution de la profondeur de chevauchement pour chaque micro-partition de la table. L’histogramme contient des compartiments de largeurs différentes :

  • de 0 à 16 avec des incréments de 1.

  • Pour les compartiments plus grands que 16, les incréments sont égaux à deux fois la largeur du compartiment précédent (par ex. 32, 64, 128 …).

Pour plus d’informations sur le chevauchement et la profondeur des micropartitions et leur impact sur le raccourcissement des requêtes, voir Fonctionnement des structures de table dans Snowflake.

Exemples

Renvoyez les informations de clustering pour une table en utilisant deux colonnes dans la table :

SELECT SYSTEM$CLUSTERING_INFORMATION('test2', '(col1, col3)');

+--------------------------------------------------------------+
| SYSTEM$CLUSTERING_INFORMATION('TEST2', '(COL1, COL3)')       |
|--------------------------------------------------------------|
| {                                                            |
|   "cluster_by_keys" : "(COL1, COL3)",                        |
|   "total_partition_count" : 1156,                            |
|   "total_constant_partition_count" : 0,                      |
|   "average_overlaps" : 117.5484,                             |
|   "average_depth" : 64.0701,                                 |
|   "partition_depth_histogram" : {                            |
|     "00000" : 0,                                             |
|     "00001" : 0,                                             |
|     "00002" : 3,                                             |
|     "00003" : 3,                                             |
|     "00004" : 4,                                             |
|     "00005" : 6,                                             |
|     "00006" : 3,                                             |
|     "00007" : 5,                                             |
|     "00008" : 10,                                            |
|     "00009" : 5,                                             |
|     "00010" : 7,                                             |
|     "00011" : 6,                                             |
|     "00012" : 8,                                             |
|     "00013" : 8,                                             |
|     "00014" : 9,                                             |
|     "00015" : 8,                                             |
|     "00016" : 6,                                             |
|     "00032" : 98,                                            |
|     "00064" : 269,                                           |
|     "00128" : 698                                            |
|   }                                                          |
| }                                                            |
+--------------------------------------------------------------+

Cet exemple indique que la table test2 n’est pas regroupée correctement pour les raisons suivantes :

  • Zéro (0) micro-partition constante sur 1156 micro-partitions au total.

  • Moyenne élevée de micro-partitions qui se chevauchent.

  • Profondeur moyenne de chevauchement élevée entre les micro-partitions.

  • La plupart des micro-partitions sont regroupées à l’extrémité inférieure de l’histogramme et la majorité des micro-partitions ont une profondeur de chevauchement entre 64 et 128.