Abschätzen und Verwalten der Kosten für die Suchoptimierung¶
Der Suchoptimierungsdienst wirkt sich auf die Kosten für Speicher- und Computeressourcen aus:
Speicherressourcen: Der Suchoptimierungsdienst erstellt eine Datenstruktur für den Suchzugriffspfad, die Platz bei jeder Tabelle benötigt, für die die Suchoptimierung aktiviert ist. Die Speicherkosten für den Suchzugriffspfad hängen von mehreren Faktoren ab, darunter:
Anzahl diskreter Werte in der Tabelle. Im Extremfall, wenn alle Spalten Datentypen haben, die den Suchzugriffspfad verwenden, und alle Datenwerte in jeder Spalte eindeutig sind, kann der erforderliche Speicher so groß sein wie die Größe der Originaltabelle.
In der Regel beträgt die Größe jedoch ungefähr 1/4 der ursprünglichen Tabellengröße.
Computeressourcen:
Das Hinzufügen der Suchoptimierung zu einer Tabelle verbraucht Ressourcen während der erstmaligen Erstellungsphase.
Die Wartung des Suchoptimierungsdienstes erfordert ebenfalls Ressourcen. Der Ressourcenverbrauch ist höher, wenn eine hohe Änderungsrate vorliegt (d. h. wenn sich große Datenmengen in der Tabelle ändern). Diese Kosten sind in etwa proportional zur Menge der aufgenommenen (hinzugefügten oder geänderten) Daten. Löschungen verursachen ebenfalls einige Kosten.
Mit Automatic Clustering kann zwar die Latenz von Abfragen auf Tabellen mit Suchoptimierung verbessert werden, aber die Wartungskosten für die Suchoptimierung werden weiter erhöht. Wenn eine Tabelle eine hohe Änderungsrate hat, kann das Aktivieren des automatischen Clusterings und das Konfigurieren der Suchoptimierung für die Tabelle zu höheren Wartungskosten führen, als wenn die Tabelle nur für die Suchoptimierung konfiguriert ist.
Snowflake stellt jedoch eine effiziente Credit-Nutzung sicher, indem nur die tatsächlich verwendeten Ressourcen in Rechnung gestellt werden. Die Abrechnung erfolgt in Schritten von 1 Sekunde.
Die Kosten pro Computestunde finden Sie in der Tabelle „Serverless Feature Credits Table“ unter Snowflake Service Consumption Table.
Sobald Sie den Suchoptimierungsdienst aktiviert haben, können Sie die Kosten für Ihre Nutzung des Dienstes anzeigen.
Tipp
Snowflake empfiehlt, dieses Feature langsam einzuführen (d. h. die Suchoptimierung zunächst nur für wenige Tabellen hinzuzufügen) und Kosten und Nutzen genau zu überwachen.
Abschätzen der Kosten für die Suchoptimierung¶
Verwenden Sie die Funktion SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS, um die Kosten für das Hinzufügen der Suchoptimierung zu einer Tabelle und das Konfigurieren bestimmter Spalten für die Suchoptimierung abzuschätzen.
Im Allgemeinen sind die Kosten proportional zur:
Anzahl der Spalten, für die das Feature aktiviert ist, und Anzahl der diskreten Werte in diesen Spalten.
Datenmenge, die sich in diesen Tabellen ändert.
Wichtig
Die von der Funktion SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS zurückgegebenen Kostenschätzungen werden mit bestmöglichen Bemühungen vorgenommen. Die geschätzten Kosten können allerdings erheblich (bis zu 50 % oder in seltenen Fällen um ein Vielfaches) von den tatsächlich realisierten Kosten abweichen.
Die Schätzungen der Build- und Speicherkosten basieren auf einer Stichprobe einer Teilmenge der Zeilen in der Tabelle
Die Schätzungen der Wartungskosten basieren auf den jüngsten Erstellungs-, Lösch- und Aktualisierungsaktivitäten in der Tabelle
Anzeigen der Kosten für die Suchoptimierung¶
Sie können die tatsächlich in Rechnung gestellten Kosten für den Suchoptimierungsdienst über die Weboberfläche oder mit SQL anzeigen. Siehe Untersuchen der Computekosten.
Reduzieren der Kosten für die Suchoptimierung¶
Sie können die Kosten des Suchoptimierungsdienstes steuern, indem Sie sorgfältig die Tabellen und Spalten auswählen, für die die Suchoptimierung aktiviert werden soll.
Außerdem können Sie die Kosten des Suchoptimierungsdienstes wie folgt senken:
Snowflake empfiehlt für DML-Operationen auf der Tabelle die Verwendung von Batches:
DELETE
: Wenn in Tabellen Daten für den letzten Zeitraum (z. B. den letzten Tag, die letzte Woche oder den letzten Monat) gespeichert sind und Sie die Tabelle durch Löschen alter Daten verkleinern, muss der Suchoptimierungsdienst die Aktualisierungen berücksichtigen. In einigen Fällen können Sie Kosten ggf. senken, indem Sie Löschoperationen seltener ausführen (z. B. täglich anstatt stündlich).INSERT
,UPDATE
undMERGE
: Durch Verwenden von Batches für diese DML-Anweisungen auf der Tabelle können die Kosten zur Wartung des Suchoptimierungsdienstes gesenkt werden.
Wenn Sie ein Reclustering der gesamten Tabelle durchführen möchten, müssen Sie vor dem Reclustering erst die SEARCH OPTIMIZATION-Eigenschaft für diese Tabelle löschen und nach dem Reclustering die SEARCH OPTIMIZATION-Eigenschaft wieder zu der Tabelle hinzufügen.
Bevor Sie die Suchoptimierung für die Suche nach Teilzeichenfolgen (
ON SUBSTRING(col)
) oder VARIANTs (ON EQUALITY(variant_col)
) aktivieren, sollten Sie SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS aufrufen, um die Kosten zu schätzen. Das erstmalige Erstellen und die Wartung können bei diesen Suchmethoden mit hohem Ressourcenverbrauch verbunden sein, daher sollten Sie zwischen Performance und Kosten abwägen.