Erläuterungen zu den Replikationskosten

Gebühren für die Replikation basieren auf zwei Kategorien: Datentransfer und Computeressourcen. Beide Kategorien werden dem Zielkonto (d. h. dem Konto, in dem die aktualisierte Sekundärdatenbank oder sekundäre Replikations- oder Failover-Gruppe gespeichert ist) in Rechnung gestellt.

Datenübertragung

Bei der erstmaligen Datenbankreplikation und den nachfolgenden Synchronisierungsoperationen werden Daten zwischen Regionen übertragen. Cloudanbieter berechnen eine Gebühr für Daten, die innerhalb ihres eigenen Netzwerks von einer Region in eine andere übertragen werden.

Die Datentransferrate wird durch den Speicherort des Quellkontos (d. h. des Kontos, in dem die primäre Replikations- oder Failover-Gruppe gespeichert ist) bestimmt. Informationen zur Preisgestaltung für Datentransfers finden Sie in der Preisliste (auf der Snowflake-Website):

Weitere Informationen zur Abrechnung von Datenübertragungen finden Sie unter Erläuterungen zu Datentransferkosten.

Computeressourcen

Bei Replikationsoperationen werden von Snowflake bereitgestellte Computeressourcen verwendet, um Daten zwischen Konten in verschiedenen Regionen zu kopieren.

Bemerkung

  • Das Zielkonto verursacht auch Standardspeicherkosten für die Daten in jeder sekundären Datenbank des Kontos.

  • Dem Zielkonto entstehen auch Kosten für die automatischen Hintergrundprozesse, die materialisierte Ansichten und die Suchoptimierung bedienen. Die Wartungskosten für Sekundärobjekte sind niedriger als für Primärobjekte. Weitere Informationen zu den Kosten pro Computestunde finden Sie in der Tabelle „Serverless Feature Credits Table“ unter Snowflake Service Consumption Table.

  • Replikationsgebühren werden auch dann erhoben, wenn die erstmalige Replikation oder eine Aktualisierungsoperation nicht erfolgreich ist. Alle Daten, die kopiert werden, bevor die erstmalige Replikation oder die Aktualisierungsoperation fehlschlägt, können durch eine nachfolgende Aktualisierungsoperation wiederverwendet werden (wenn diese innerhalb von 14 Tagen ausgeführt wird) und müssen nicht erneut kopiert werden.

Unter diesem Thema:

Abschätzen und Kontrollieren der Kosten

Im Allgemeinen ist die monatliche Abrechnung für die Replikation proportional zu Folgendem:

  • Menge der Tabellendaten in der Primärdatenbank oder der Datenbank einer Replikations-/Failover-Gruppe, die sich aufgrund von Datenladevorgängen oder DML-Operationen ändert.

  • Häufigkeit der Aktualisierungen der Sekundärdatenbank bzw. Replikations-/Failover-Gruppe mit Daten der Primärdatenbank oder Replikations-/Failover-Gruppe.

Sie können die Replikationskosten kontrollieren, indem Sie sorgfältig auswählen, welche Datenbanken oder Objekte wie häufig repliziert werden sollen. Sie können Replikationskosten vermeiden, indem Sie die Aktualisierungsoperationen beenden.

Anzeigen der tatsächlichen Kosten

Benutzer mit der Rolle ACCOUNTADMIN können SQL verwenden, um für Ihr Snowflake-Konto die innerhalb eines bestimmten Datumsbereichs übertragene Replikationsdatenmenge (in Byte) anzuzeigen.

So zeigen Sie die Menge der übertragenen Daten für Ihr Konto an:

SQL

Führen Sie eine Abfrage auf einer der folgenden Optionen aus:

Beispiele finden Sie unter Replikationskosten überwachen.

Kosten der Datenbankreplikation

Bei der Replikation einzelner Datenbanken mit der Datenbankreplikation können Benutzer mit der Rolle ACCOUNTADMIN Snowsight, die klassische Weboberfläche oder SQL verwenden, um für Ihr Snowflake-Konto die innerhalb eines bestimmten Datumsbereichs übertragene Replikationsdatenmenge (in Byte) anzuzeigen.

So zeigen Sie die Menge der übertragenen Daten für Ihr Konto an:

Snowsight

Select Admin » Cost Management

Classic Console

Klicken Sie auf Account Account tab » Billing & Usage.

Die Nutzung der Replikation wird mittels eines speziellen, von Snowflake bereitgestellten Warehouse namens Snowflake logo in blue (no text) REPLICATION angezeigt. Klicken Sie auf die Schaltfläche Data Transfer, um die Datenübertragungskosten anzuzeigen. Beachten Sie, dass die Weboberfläche die Datenübertragungskosten für die Replikation nicht weiter aufschlüsselt.

SQL

Führen Sie eine Abfrage auf einer der folgenden Optionen aus:

  • Tabellenfunktion DATABASE_REPLICATION_USAGE_HISTORY (in Snowflake Information Schema) Diese Funktion gibt die Nutzung durch die Datenbankreplikation der letzten 14 Tage zurück.

  • Ansicht Ansicht DATABASE_REPLICATION_USAGE_HISTORY (in Account Usage). Diese Ansicht gibt die Nutzung durch die Datenbankreplikation der letzten 365 Tage (1 Jahr) zurück.

    Die folgenden Abfragen können auf der Ansicht DATABASE_REPLICATION_USAGE_HISTORY ausgeführt werden:

    Abfrage: Kostenverlauf für Replikation (nach Tag, nach Objekt)

    Diese Abfrage liefert eine umfassende Liste der replizierten Datenbanken und das Volumen der über den Replikationsdienst 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,
      database_name,
      SUM(credits_used) AS credits_used
    FROM snowflake.account_usage.database_replication_usage_history
    WHERE start_time >= DATEADD(month,-1,CURRENT_TIMESTAMP())
    GROUP BY 1,2
    ORDER BY 3 DESC;
    
    Copy

    Abfrage: Replikationsverlauf und Tagesdurchschnitt über m Tage

    Diese Abfrage gibt den durchschnittlichen täglichen Credit-Verbrauch durch die Replikation für das letzte Jahr, gruppiert nach Woche zurück. Auf diese Weise lassen sich etwaige Anomalien in Tagesdurchschnittswerten feststellen, die für die Untersuchung von Verbrauchsspitzen oder -veränderungen dienen können.

    WITH credits_by_day AS (
      SELECT TO_DATE(start_time) AS date,
        SUM(credits_used) AS credits_used
      FROM snowflake.account_usage.database_replication_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