Kosten für Snowpipe¶
Mit dem serverlosen Computemodell von Snowpipe können Benutzer einen Ladevorgang jeder Größe initiieren, ohne ein virtuelles Warehouse zu verwalten. Stattdessen stellt Snowflake die Computeressourcen zur Verfügung und verwaltet sie, wobei die Kapazität basierend auf den aktuellen Snowpipe-Ladvorgängen automatisch erhöht oder verringert wird. Im Gegensatz zu kundenverwalteten virtuellen Warehouses, die bei aktiver Nutzung Credits verbrauchen und ungenutzt bleiben oder überlastet sein können, werden Konten auf der Grundlage ihrer tatsächlichen Nutzung von Computeressourcen belastet.
Unter diesem Thema:
Overhead für Ressourcenverbrauch und Verwaltung¶
Snowflake verfolgt den Ressourcenverbrauch von Ladevorgängen für alle Pipes in einem Konto, mit einer Granularität von pro Sekunde/pro Kern, wenn Snowpipe Warteschlangen aktiv einrichtet und Datendateien verarbeitet. Pro Kern bezieht sich auf die physischen CPU-Kerne in einem Rechenserver. Die aufgezeichnete Nutzung wird dann in bekannte Snowflake-Credits umgewandelt, die auf der Rechnung für Ihr Konto aufgeführt werden.
Bemerkung
Die Verwendung einer Multi-Threaded-Clientanwendung ermöglicht eine parallele Übertragung von Datendateien, wobei zusätzliche Server initiiert und die Daten schneller geladen werden. Die tatsächlich erforderliche Gesamtcomputezeit wäre jedoch identisch mit der Verwendung einer Single-Threaded-Clientanwendung, die einfach auf mehrere interne Snowpipe-Server verteilt ist.
Entscheidungen in Bezug auf Dateigröße und Staging-Frequenz beeinflussen Kosten und Leistung von Snowpipe. Empfohlene Best Practices finden Sie unter Kontinuierliches Laden von Daten (d. h. Snowpipe) und Dateigrößen.
Zusätzlich zum Ressourcenverbrauch sind in den Nutzungskosten für Snowpipe auch die Overhead-Kosten enthalten. Dieser Aufwand wird unabhängig davon berechnet, ob die Dateibenachrichtigungen oder REST-API-Aufrufe zum Laden von Daten führen oder nicht. Die Overhead-Kosten erscheinen auf der Abrechnung als Snowpipe-Gebühren.
Weitere Informationen zur Anzahl der von Snowpipe verbrauchten Credits pro Computestunde finden Sie in der „Serverless Feature Credit Table“ unter Snowflake Service Consumption Table.
Abschätzen der Snowpipe-Gebühren¶
Angesichts der Vielzahl von Faktoren, die Snowpipe-Workloads beeinflussen können, ist es für Snowflake sehr schwierig, Beispielkosten anzugeben. Dateiformate und -größen sowie die Komplexität der COPY-Anweisungen (einschließlich der für Transformationen verwendeten SELECT-Anweisung) wirken sich auf den Ressourcenverbrauch und den für eine Snowpipe-Auslastung berechneten Datei-Overhead aus.
Wir empfehlen, dass Sie experimentieren, indem Sie einen typischen Satz von Workloads ausführen, um zukünftige Gebühren abzuschätzen.
Anzeigen von Historie und Kosten für das Laden von Daten¶
Kontoadministratoren (Benutzer mit der Rolle ACCOUNTADMIN) bzw. Benutzer mit einer Rolle, der die globale Berechtigung MONITOR USAGE gewährt wurde, können Snowsight, die klassische Weboberfläche oder SQL verwenden, um die Ihrem Snowflake-Konto in Rechnung gestellten Credits innerhalb eines bestimmten Zeitraums anzuzeigen.
So zeigen Sie die Credits an, die für das Laden von Snowpipe-Daten für Ihr Konto in Rechnung gestellt wurden:
- Snowsight:
Select Admin » Cost Management
- Classic Console:
Klicken Sie auf Account » Billing & Usage.
Die Snowpipe-Nutzung wird als spezielles von Snowflake bereitgestelltes Warehouse mit dem Namen SNOWPIPE angezeigt.
- SQL:
Führen Sie eine Abfrage durch auf:
Tabellenfunktion PIPE_USAGE_HISTORY (in Snowflake Information Schema) oder
Ansicht PIPE_USAGE_HISTORY (in Account Usage)
Die folgenden Abfragen können auf der Ansicht PIPE_USAGE_HISTORY ausgeführt werden:
Abfrage: Kostenverlauf für Snowpipe (nach Tag, nach Objekt)
Diese Abfrage liefert eine umfassende Liste der Pipes und das Volumen der über den Dienst in den letzten 30 Tagen verbrauchten Credits, aufgeschlüsselt nach Tagen. Unregelmäßigkeiten beim Credit-Verbrauch oder ein gleichbleibend hoher Verbrauch sind Anzeichen, dass weitere Untersuchungen erforderlich sind.
SELECT TO_DATE(start_time) AS date, pipe_name, SUM(credits_used) AS credits_used FROM snowflake.account_usage.pipe_usage_history WHERE start_time >= DATEADD(month,-1,CURRENT_TIMESTAMP()) GROUP BY 1,2 ORDER BY 3 DESC;Abfrage: Snowpipe-Historie und Tagesdurchschnitt über m Tage
Diese Abfrage gibt den durchschnittlichen täglichen Credit-Verbrauch durch Snowpipe für das letzte Jahr, gruppiert nach Woche zurück. Sie kann dazu beitragen, Anomalien in den Tagesdurchschnittswerten über das Jahr hinweg zu erkennen, sodass Sie Verbrauchsspitzen oder unerwarteten Nutzungsänderungen untersuchen können.
WITH credits_by_day AS ( SELECT TO_DATE(start_time) AS date, SUM(credits_used) AS credits_used FROM snowflake.account_usage.pipe_usage_history WHERE start_time >= DATEADD(year,-1,CURRENT_TIMESTAMP()) GROUP BY 1 ORDER BY 2 DESC ) SELECT DATE_TRUNC('week',date), AVG(credits_used) AS avg_daily_credits FROM credits_by_day GROUP BY 1 ORDER BY 1;
Bemerkung
Ressourcenmonitore bieten Kontrolle über die Nutzung von Credits für virtuelle Warehouses. Sie können sie jedoch nicht zur Kontrolle der Credit-Nutzung für die von Snowflake bereitgestellten Warehouses, einschließlich des SNOWPIPE-Warehouses, verwenden.