Compréhension du coût de réplication

Les frais basés sur la réplication sont divisés en deux catégories : le transfert de données et les ressources de calcul. Les deux catégories sont facturées sur le compte cible (c’est-à-dire le compte qui stocke la base de données secondaire ou le groupe de réplication/basculement qui est actualisé).

Transfert de données

La réplication initiale et les opérations de synchronisation suivantes transfèrent des données entre des régions. Les fournisseurs de Cloud facturent les données transférées d’une région à une autre au sein de leur propre réseau.

Le taux de transfert de données est déterminé par l’emplacement du compte source (c’est-à-dire le compte qui stocke le groupe de réplication ou de basculement principal). Pour connaître les tarifs de transfert de données, consultez le guide des tarifs (sur le site Web de Snowflake).

Pour plus d’informations sur la facturation par transfert de données, voir Compréhension du coût du transfert de données.

Ressources de calcul

Les opérations de réplication utilisent des ressources de calcul fournies par Snowflake pour copier des données entre des comptes à travers les régions.

Note

  • Le compte cible engage également des coûts de stockage standard pour les données de chaque base de données secondaire du compte.

  • Le compte cible entraîne également des coûts pour les processus d’arrière-plan automatiques qui gèrent des vues matérialisées et l’optimisation de la recherche. Les coûts de maintenance des objets secondaires sont inférieurs à ceux des objets principaux. Pour plus de détails, reportez-vous au « Tableau des crédits de fonctionnalité sans serveur » dans le Tableau de consommation du service Snowflake pour les coûts par heure de calcul.

  • Des frais de réplication sont appliqués même si la réplication initiale ou une opération d’actualisation échoue. Toutes les données copiées avant l’échec de l’opération de réplication ou d’actualisation initiale peuvent être réutilisées par une opération d’actualisation ultérieure (si elle est effectuée dans les 14 jours) et n’ont pas besoin d’être copiées à nouveau.

Dans ce chapitre :

Estimation et contrôle des coûts

En général, la facturation mensuelle pour la réplication est proportionnelle à :

  • Quantité de données de table dans la base de données principale, ou dans les bases de données d’un groupe de réplication/de basculement ou modifiée à la suite du chargement de données ou d’opérations DML.

  • Fréquence des actualisations de la base de données secondaire ou du groupe de réplication/de basculement à partir de la base de données principale ou du groupe de réplication/de basculement.

Vous pouvez contrôler le coût de la réplication en choisissant avec soin les bases de données ou les objets à répliquer et leur fréquence d’actualisation. Vous pouvez cesser d’engager des coûts de réplication en cessant les opérations d’actualisation.

Affichage des coûts réels

Les utilisateurs ayant le rôle ACCOUNTADMIN peuvent utiliser SQL pour voir la quantité de données de réplication transférées (en octets) pour votre compte Snowflake sur une période donnée.

Pour afficher les quantités de données transférées pour votre compte :

SQL

Interrogez l’un des éléments suivants :

Pour des exemples, reportez-vous à Surveiller les coûts de réplication.

Coûts de réplication de base de données

Pour les bases de données individuelles répliquées à l’aide de la réplication de base de données, des utilisateurs avec le rôle ACCOUNTADMIN peuvent utiliser Snowsight, l”Classic Console, ou SQL pour voir la quantité de données de réplication transférées (en octets) pour votre compte Snowflake sur une période donnée.

Pour afficher les quantités de données transférées pour votre compte :

Snowsight

Select Admin » Cost Management

Classic Console

Cliquez sur Account Account tab » Billing & Usage.

L’utilisation de la réplication est illustrée sous forme d’un entrepôt spécial fourni par Snowflake nommé Snowflake logo in blue (no text) REPLICATION. Cliquez sur le bouton Data Transfer pour afficher les coûts de transfert de données. Notez que l’interface Web ne décompose pas les coûts de transfert de données pour la réplication.

SQL

Interrogez l’un des éléments suivants :

  • la fonction de table DATABASE_REPLICATION_USAGE_HISTORY (dans Schéma d’information de Snowflake). Cette fonction renvoie l’activité d’utilisation de la réplication de base de données au cours des 14 derniers jours.

  • la vue Vue DATABASE_REPLICATION_USAGE_HISTORY (dans Account Usage). Cette vue renvoie l’activité d’utilisation de la réplication de base de données au cours des 365 derniers jours (1 an).

    Les requêtes suivantes peuvent être exécutées sur la vue DATABASE_REPLICATION_USAGE_HISTORY :

    Requête : historique des coûts de réplication (par jour, par objet)

    Cette requête fournit une liste complète des bases de données répliquées et le volume de crédits consommés via le service de réplication au cours des 30 derniers jours, ventilés par jour. Toute irrégularité dans la consommation de crédit ou une consommation constamment élevée sont des signaux d’alerte qui entraînent la nécessité d’une investigation plus profonde.

    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

    Requête : historique de réplication et moyenne sur X jours

    Cette requête montre les crédits quotidiens moyens consommés par la réplication, groupés par semaine, au cours de la dernière année. Cela permet d’identifier toute anomalie dans la moyenne quotidienne. Ainsi, vous pouvez enquêter sur des pics ou des changements dans la consommation.

    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