Comprendre l’entrepôt virtuel, le stockage et les services Cloud de Snowflake

Snowflake apporte une flexibilité et une évolutivité sans précédent à l’entreposage de données. Le but de la tarification de Snowflake est d’offrir ces capacités à un faible coût et de la façon la plus simple possible.

L’architecture Cloud de Snowflake sépare l’entreposage de données en trois fonctions distinctes : ressources de calcul (implémentées comme entrepôts virtuels), stockage de données et services Cloud. Les coûts associés à l’utilisation de Snowflake sont basés sur votre utilisation de chacune de ces fonctions.

Dans ce chapitre :

Utilisation du crédit d’entrepôt virtuel

Un entrepôt virtuel est un ou plusieurs clusters de calcul qui permettent aux clients d’exécuter des requêtes, de charger des données et d’effectuer d’autres opérations DML. Les crédits Snowflake sont utilisés pour payer le temps de traitement utilisé par chaque entrepôt virtuel.

Les crédits Snowflake sont facturés en fonction du nombre d’entrepôts virtuels que vous utilisez, de leur durée de fonctionnement et de leur taille.

Les entrepôts existent en huit tailles. La taille spécifie le nombre de serveurs par cluster dans l’entrepôt. Il existe une correspondance une à une entre le nombre de serveurs dans un cluster d’entrepôt et le nombre de crédits facturés pour chaque heure pleine que l’entrepôt exécute :

X-Small

Small

Medium

Large

X-Large

2X-Large

3X-Large

4X-Large

1

2

4

8

16

32

64

128

Important

  • Les entrepôts ne sont facturés que pour l’utilisation de crédits que lorsqu’ils fonctionnent. Lorsqu’un entrepôt est suspendu, il n’accumule aucune utilisation de crédit.

  • Les nombres de crédits indiqués ici correspondent à une heure complète d’utilisation ; cependant, les crédits sont facturés à la seconde, avec un minimum de 60 secondes (c.-à-d. 1 minute) :

    • Chaque fois qu’un entrepôt est démarré ou redimensionné à une taille plus grande, l’entrepôt est facturé pour 1 minute d’utilisation sur la base du taux horaire indiqué ci-dessus.

    • Au bout d’une minute, toutes les factures ultérieures sont facturées à la seconde.

    • L’arrêt et le redémarrage d’un entrepôt dans la première minute ne modifient pas le montant facturé ; la facturation minimale est de 1 minute.

    • Lorsqu’un entrepôt grossit, les crédits ne sont facturés que pour les serveurs additionnels qui sont mis en service. Par exemple, le passage d’un entrepôt Small (2) à Medium (4) entraîne des frais de facturation d’une minute égale à deux crédits.

Pour plus de détails, voir Aperçu des entrepôts et Remarques sur les entrepôts virtuels.

Visualiser l’utilisation du crédit d’entrepôt pour votre compte

Les utilisateurs ayant le rôle ACCOUNTADMIN peuvent utiliser l’interface Web de Snowflake ou SQL pour voir l’utilisation mensuelle et quotidienne du crédit relatif à tous les entrepôts de votre compte.

Pour visualiser l’utilisation du crédit d’entrepôt pour votre compte :

Interface Web

Cliquez sur Account Account tab » Billing & Usage.

SQL

Interrogez l’un des éléments suivants :

Utilisation du crédit des services Cloud

La couche de services Cloud constitue un ensemble de services qui coordonnent les activités dans Snowflake. Ces services relient tous les différents composants de Snowflake afin de traiter les demandes des utilisateurs, de la connexion à l’envoi des requêtes. La couche de services Cloud s’exécute également sur des instances de calcul fournies par Snowflake à partir du fournisseur Cloud.

Services compris dans cette couche :

  • Authentification

  • Gestion de l’infrastructure

  • Gestion des métadonnées

  • Analyse syntaxique et optimisation des requêtes

  • Contrôle d’accès

Comme pour l’utilisation de l’entrepôt virtuel, les crédits Snowflake sont utilisés pour payer l’utilisation des services Cloud qui dépasse 10 % de l’utilisation quotidienne des ressources de calcul.

L’utilisation des services Cloud n’est facturée que si la consommation quotidienne de services Cloud dépasse 10 % de l’utilisation quotidienne des ressources de calcul. La redevance est calculée quotidiennement (dans le fuseau horaire UTC). Cela garantit que l’ajustement de 10 % est appliqué avec précision chaque jour, au prix du crédit pour cette journée.

Comprendre la facturation pour l’utilisation des services Cloud

  • L’ajustement de 10 % pour les services Cloud est calculé quotidiennement (dans le fuseau horaire UTC) en multipliant le calcul quotidien par 10 %.

  • L’ajustement sur l’instruction d’utilisation mensuelle est égal à la somme de ces calculs quotidiens.

  • Si la consommation de services Cloud est inférieure à 10 % des crédits de calcul un jour donné, l’ajustement pour ce jour est égal aux services Cloud utilisés par le client. L’ajustement quotidien ne dépassera jamais l’utilisation réelle des services Cloud pour cette journée. Ainsi, l’ajustement mensuel total peut être nettement inférieur à 10 %.

Par exemple :

Date

Crédits de calcul

Crédits Cloud Services

Ajustement des crédits pour les services Cloud inclus (minimum de services Cloud ou 10 % de calcul)

Crédits facturés (somme du calcul, des services Cloud et de l’ajustement)

Nov 1

100

20

-10

110

Nov 2

120

10

-10

120

Nov 3

80

5

-5

80

Nov 4

100

13

-10

103

Total

400

48

-35

413

Affichage de l’utilisation des crédits des services Cloud

Les utilisateurs ayant un rôle ACCOUNTADMIN peuvent utiliser l’interface Web Snowflake ou SQL pour afficher l’utilisation du crédit des services cloud quotidiennement et mensuellement par entrepôt et par tâche.

Pour afficher l’utilisation du crédit des services Cloud pour votre compte :

Interface Web

Cliquez sur Account Account tab » Billing & Usage

SQL

ACCOUNT_USAGE:

INFORMATION_SCHEMA:

Note

L’ajustement pour les services Cloud inclus (jusqu’à 10 % du calcul) est affiché uniquement sur l’instruction d’utilisation mensuelle et dans la vue METERING_DAILY_HISTORY. Les informations visualisables dans les vues UI et WAREHOUSE_METERING_HISTORY ne prendront pas en compte cet ajustement et peuvent donc être supérieures à votre consommation de crédit réelle.

Comment savoir d’où vient votre utilisation des services Cloud

Utilisez les requêtes suivantes pour examiner votre utilisation des services Cloud.

Historique des requêtes

Exemple : Trouvez des requêtes par type qui consomment le plus de crédits de services Cloud

-- The current role must have access to the account usage share
use schema snowflake.account_usage;

select query_type, sum(credits_used_cloud_services) cs_credits, count(1) num_queries
from query_history
where true
and start_time >= timestampadd(day, -1, current_timestamp)
group by 1
order by 2 desc
limit 10;

Exemple : Trouvez des requêtes d’un type donné qui consomment le plus de crédits de services Cloud

-- The current role must have access to the account usage share
use schema snowflake.account_usage;

select *
from query_history
where true
  and start_time >= timestampadd(day, -1, current_timestamp)
  and query_type = 'COPY'
order by credits_used_cloud_services desc
limit 10;

Exemple : Trier par différents composants d’utilisation des services Cloud

-- The current role must have access to the account usage share
use schema snowflake.account_usage;

select *
from query_history
where true
  and start_time >= timestampadd(minute, -60, current_timestamp)
  and query_type = 'COPY'   --- optional
order by compilation_time desc,
               execution_time desc,
               list_external_files_time desc,
               queued_overload_time desc,
               credits_used_cloud_services desc
limit 10;

Historique de l’entrepôt

Exemple : Trouver des entrepôts qui consomment le plus de crédits de services Cloud

-- The current role must have access to the account usage share
use schema snowflake.account_usage;

select warehouse_name,
       sum(credits_used_cloud_services) credits_used_cloud_services,
       sum(credits_used_compute) credits_used_compute,
       sum(credits_used) credits_used
from warehouse_metering_history
where true
  and start_time >= timestampadd(day, -1, current_timestamp)
group by 1
order by 2 desc
limit 10;

Utilisation du stockage des données

Le stockage des données est calculé mensuellement en fonction du nombre moyen d’octets sur disque pour toutes les données stockées chaque jour dans votre compte Snowflake, y compris :

  • Les fichiers stockés dans des emplacements Snowflake (c.-à-d. zones de préparation utilisateur et table ou zones de préparation internes nommées) pour le chargement/déchargement de données en lot. L’utilisateur qui prépare un fichier peut choisir ou non de le compresser afin de réduire le stockage.

  • Les données stockées dans des tables de la base de données, y compris les données historiques gérées pour Time Travel. Snowflake compresse automatiquement toutes les données stockées dans les tables et utilise la taille du fichier compressé pour calculer le stockage total utilisé pour un compte.

  • Les données historiques sont conservées pour Fail-safe.

Les coûts mensuels de stockage des données dans Snowflake sont basés sur un taux forfaitaire par téraoctet (TB). Le montant facturé par TB dépend de votre type de compte (Capacité ou Sur demande) et de votre région (US ou EU). Pour connaître les tarifs du stockage de données, voir la page Tarifs (sur le site Web de Snowflake).

Affichage de l’utilisation des données de votre compte

Les utilisateurs ayant le rôle ACCOUNTADMIN peuvent utiliser l’interface Web de Snowflake ou SQL pour afficher la moyenne mensuelle et quotidienne du stockage de données (en octets) de votre compte.

Pour afficher le stockage des données (pour les tables, les zones de préparation et Fail-safe) de votre compte :

Interface Web

Cliquez sur Account Account tab » Billing & Usage.

SQL

Interrogez les éléments suivants (au choix) :

Affichage de l’utilisation des données d’une table

Les utilisateurs disposant des privilèges d’accès appropriés peuvent utiliser l’interface Web ou SQL pour afficher la taille (en octets) de tables individuelles dans un schéma/une base de données :

Interface Web

Cliquez sur Databases Databases tab » <nom_bdd> » Tables

SQL

Exécutez une commande SHOW TABLES.

De plus, les utilisateurs ayant le rôle ACCOUNTADMIN peuvent utiliser SQL pour afficher les informations sur la taille de la table :

SQL

Interrogez l’un des éléments suivants :

Important

La taille affichée pour une table représente le nombre d’octets qui seront analysés si la table entière est analysée dans une requête ; cependant, ce nombre peut être différent du nombre d’octets physiques (c’est-à-dire d’octets stockés sur disque) pour la table, en particulier pour les tables clonées et les tables contenant des données supprimées :

  • Une table clonée n’utilise pas de stockage supplémentaire (jusqu’à ce que des lignes soient ajoutées à la table ou que des lignes existantes dans la table soient modifiées ou supprimées). En conséquence, la taille de la table affichée peut être plus grande que les octets physiques réels stockés pour la table. Autrement dit, la table contribue moins au stockage global des données pour le compte que la taille indiquée.

  • Les données supprimées d’une table ne sont pas incluses dans la taille de la table affichée ; toutefois, les données sont conservées dans Snowflake jusqu’à ce que la période de conservation Time Travel (par défaut, 1 jour) et la période Fail-safe (7 jours) des données soient passées. Pendant ces deux périodes, la taille de la table affichée est plus petite que les octets physiques réels stockés pour la table, c’est-à-dire que la table contribue plus au stockage global des données du compte que la taille indiquée.

Pour plus d’informations sur le stockage des tables clonées et des données supprimées, voir Remarques relatives au stockage de données.