Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$CLUSTERING_INFORMATION

Gibt Clustering-Informationen, einschließlich der durchschnittlichen Clustering-Tiefe, für eine Tabelle auf Basis von einer oder mehreren Spalten der Tabelle zurück.

Siehe auch:

SYSTEM$CLUSTERING_DEPTH

Syntax

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

Argumente

Tabellenname

Tabelle, für die Sie Clustering-Informationen zurückgeben möchten.

Spalte1 [ , Spalte2 ... ]

Spalte(n) in der Tabelle, für die Clustering-Informationen zurückgegeben werden:

  • Für eine Tabelle ohne Gruppierungsschlüssel ist dieses Argument erforderlich. Wenn das Argument nicht angegeben wird, wird ein Fehler zurückgegeben.

  • Bei einer Tabelle mit Gruppierungsschlüssel ist dieses Argument optional. Wenn das Argument weggelassen wird, nutzt Snowflake zur Rückgabe der Clustering-Informationen den definierten Gruppierungsschlüssel.

Bemerkung

Sie können mit diesem Argument Clustering-Informationen für beliebige Spalten in der Tabelle zurückgeben unabhängig davon, ob für die Tabelle ein Gruppierungsschlüssel definiert ist.

Mit anderen Worten, Sie können dies verwenden, um zu entscheiden, welches Clustering in Zukunft verwendet werden soll.

Nutzungshinweise

  • Alle Argumente sind Zeichenfolgen (d. h. sie müssen in einfache Anführungszeichen gesetzt werden).

Ausgabe

Die Funktion gibt ein JSON-Objekt zurück, das die folgenden Name/Wert-Paare enthält:

cluster_by_keys

Spalten in der Tabelle, die zur Rückgabe von Clustering-Informationen verwendet werden. Es kann sich um beliebige Spalten in der Tabelle handeln.

notes

Diese Spalte kann Vorschläge enthalten, um das Clustering effizienter zu gestalten. Dieses Feld kann beispielsweise eine Warnung enthalten, wenn die Kardinalität der Clustering-Spalte extrem hoch ist.

Diese Spalte kann leer sein.

Weitere Informationen zum effizienten Clustering finden Sie unter Strategien zur Auswahl von Gruppierungsschlüsseln.

total_partition_count

Gesamtzahl der Mikropartitionen, aus denen die Tabelle besteht.

total_constant_partition_count

Gesamtzahl der Mikropartitionen, für die der Wert der angegebenen Spalten einen konstanten Status erreicht hat (d. h. die Mikropartitionen profitieren von Reclustering nicht wesentlich). Die Anzahl konstanter Mikropartitionen in einer Tabelle hat Auswirkungen auf das Bereinigen von Abfragen. Je höher die Anzahl ist, desto mehr Mikropartitionen können aus für die Tabelle ausgeführten Abfragen bereinigt werden, was sich entsprechend auf die Leistung auswirkt.

average_overlaps

Durchschnittliche Anzahl überlappender Mikropartitionen für jede Mikropartition in der Tabelle. Eine hohe Zahl weist darauf hin, dass die Tabelle nicht gut gruppiert ist.

average_depth

Mittlere Überlappungstiefe der einzelnen Mikropartitionen in der Tabelle. Eine hohe Zahl weist darauf hin, dass die Tabelle nicht gut gruppiert ist.

Dieser Wert wird auch von SYSTEM$CLUSTERING_DEPTH zurückgegeben.

partition_depth_histogram

Ein Histogramm, das die Verteilung der Überlappungstiefe für die einzelnen Mikropartitionen in der Tabelle darstellt. Das Histogramm enthält Buckets mit Breiten:

  • 0 bis 16 in Inkrementen von 1.

  • Bei Buckets, die größer als 16 sind, Inkremente mit doppelter Breite des vorherigen Buckets (z. B. 32, 64, 128, …).

Weitere Informationen zu Überlappung und Tiefe von Mikropartitionen sowie deren Auswirkungen auf die Abfragebereinigung finden Sie unter Grundlegendes zu Tabellenstrukturen in Snowflake.

Beispiele

Zurückgeben der Clustering-Informationen für eine Tabelle mit zwei Spalten in der Tabelle:

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                                            |
|   }                                                          |
| }                                                            |
+--------------------------------------------------------------+

Dieses Beispiel zeigt, dass die test2-Tabelle aus folgenden Gründen nicht gut gruppiert ist:

  • Null (0) konstante Mikropartitionen von insgesamt 1156 Mikropartitionen.

  • Hoher Durchschnitt an überlappenden Mikropartitionen.

  • Hoher Durchschnitt der Überlappungstiefe zwischen Mikropartitionen.

  • Die meisten Mikropartitionen sind am unteren Ende des Histogramms gruppiert, wobei die Mehrzahl der Mikropartitionen eine Überlappungstiefe zwischen 64 und 128 aufweist.