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.
Si la réplication initiale ou une opération d’actualisation ultérieure échoue, la prochaine tentative (si elle est effectuée dans les 14 jours) peut réutiliser les données qui ont déjà été copiées ; c’est-à-dire que les données ne sont pas copiées à nouveau lors de la prochaine tentative. Pour cette raison, des frais de réplication sont appliqués même si la réplication initiale ou une opération d’actualisation ultérieure échoue.
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 :
la fonction de table REPLICATION_GROUP_USAGE_HISTORY (dans Schéma d’information de Snowflake). Cette fonction renvoie l’activité d’utilisation de la réplication au cours des 14 derniers jours.
Vue REPLICATION_GROUP_USAGE_HISTORY (dans Account Usage). Cette vue renvoie l’activité d’utilisation de la réplication au cours des 365 derniers jours (1 an).
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 » Usage
- Classic Console
Cliquez sur Account
» Billing & Usage.
L’utilisation de la réplication est illustrée sous forme d’un entrepôt spécial fourni par Snowflake nommé
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;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;