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 Account tab » Billing & Usage.

Die Snowpipe-Nutzung wird als spezielles von Snowflake bereitgestelltes Warehouse mit dem Namen Snowflake logo in blue (no text) SNOWPIPE angezeigt.

SQL

Führen Sie eine Abfrage durch auf:

  • Tabellenfunktion PIPE_USAGE_HISTORY (in Snowflake Information Schema) oder

  • PIPE_USAGE_HISTORY-Ansicht (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;
    
    Copy

    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;
    
    Copy

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 Snowflake logo in blue (no text) SNOWPIPE-Warehouses, verwenden.