Einfluss des Workloads auf die Leistung dynamischer Tabellen

Die Optimierung des Workloads in Ihrer Pipeline hilft, die Kosten zu senken und die Leistung im Allgemeinen zu verbessern. Snowflake empfiehlt, die Optimierung damit zu beginnen, den Workload abzustimmen, da dies der effektivste Weg ist, die Aktualisierungsleistung Ihrer dynamischen Tabellen zu verbessern.

Abfragen

Schauen Sie sich die Abfragen in Ihren dynamischen Tabellen genauer an, und suchen Sie nach Möglichkeiten, deren Workload zu verringern, z. B. durch Folgendes:

  • Hinzufügen von Filtern, um die Menge der zu durchsuchenden Daten zu reduzieren.

  • Beseitigen von Duplikaten früher in der Pipeline und anschließende Vermeidung der Verwendung von DISTINCT.

  • Reduzieren der Verwendung von NULL und Sicherstellen der referenzielle Integrität Ihrer Quelldaten, sodass äußere Joins durch innere Joins ersetzt werden können.

  • Vermeiden der Materialisierung großer Spalten, die nur selten gelesen werden.

Lokalität

Berücksichtigen Sie das Layout Ihrer Daten in Ihren Tabellen. Für eine gute Verarbeitungsleistung sollten die Daten, auf die Ihre Abfragen zugreifen, nahe beieinander liegen, bekannt als Lokalität.

Wenn Sie z. B. effizient nach Zeilen in einer bestimmten Spalte suchen müssen, sollte die Tabelle nach dieser Spalte geclustert werden. Idealerweise sollte die Lokalität Ihrer Tabellen mit der Struktur Ihrer Abfragen übereinstimmen, Clustering nach JOIN, GROUP BY und PARTITION BY-Schlüsseln, wenn möglich. Um vom Clustering zu profitieren, muss die Sequenz der Gruppierungsschlüssel ein gemeinsames Präfix mit der Sequenz der Partitionierungsschlüssel haben.

Die Optimierung der Lokalität ist mit Kompromissen verbunden. Es ist schwierig, die Lokalität für viele Spalten gleichzeitig zu optimieren. Konzentrieren Sie sich daher auf die wichtigsten Spalten, um die beste Leistung zu erzielen. Weitere Informationen dazu finden Sie unter Grundlegendes zu Tabellenstrukturen in Snowflake.