Rapprocher une instruction d’utilisation de facturation

Snowflake génère des instructions d’utilisation de facturation pour les clients ayant au moins un contrat actif, également connu sous le nom de formulaire de commande Snowflake.

Cette rubrique décrit comment utiliser des requêtes pour rapprocher une instruction avec les données d’utilisation trouvées dans les vues de facturation du schéma Utilisation de l’organisation. Vous devez exécuter ces requêtes en utilisant le rôle ACCOUNTADMIN dans un compte dont le rôle ORGADMIN est activé.

Note

Lorsque vous exécutez des requêtes pour réconcilier l’utilisation encourue avant le 1er mars 2024, les résultats de la requête peuvent différer légèrement de ceux de l’instruction d’utilisation. Avant cette date, certaines vues de facturation n’arrondissaient pas les valeurs pour les faire correspondre à l’instruction d’utilisation. Par exemple, avant le 1er mars 2024 :

  • Les utilisations de US$ 0,001 ou US$ -0,001 n’ont pas été incluses dans les instructions d’utilisation, mais ont été incluses dans les vues de facturation.

  • Une utilisation de US$ 1,004 a été arrondie en dessous à US$ 1,00 dans l’instruction d’utilisation, mais pas dans les vues de facturation.

  • Une utilisation de US$ 1,006 a été arrondie au-dessus à US$ 1,01 dans l’instruction d’utilisation, mais pas dans les vues de facturation.

Les différences entre les résultats des requêtes et les instructions d’utilisation sont faibles, allant de quelques centimes à moins de US$ 10, en fonction de la durée du contrat.

Rapprocher le solde restant

Les clients de Snowflake ayant conclu un contrat s’engagent financièrement à l’avance à payer pour une quantité d’utilisation donnée (c’est-à-dire un engagement de capacité). Au fur et à mesure que le client utilise Snowflake, la devise dépensée est déduite de cet engagement de capacité. La section récapitulative de chaque instruction d’utilisation indique le solde restant sur un contrat, qui est calculé en soustrayant l’utilisation totale depuis le début du contrat de l’engagement de capacité initial.

Utilisez la requête suivante pour rapprocher le solde restant figurant sur une instruction d’utilisation avec les données contenues dans le Vue REMAINING_BALANCE_DAILY. Remplacez la date par le dernier jour du mois figurant sur l’instruction d’utilisation.

SELECT date,
       contract_number,
       (capacity_balance + free_usage_balance + rollover_balance) AS remaining_balance
  FROM snowflake.organization_usage.remaining_balance_daily
  WHERE TRUE
    AND date = LAST_DAY(TO_DATE('2024-01-01'));
Copy

Note

Si la période d’abonnement d’un contrat est terminée, la requête précédente renvoie correctement 0, mais la valeur figurant dans l’instruction d’utilisation peut être un nombre différent de zéro. Il s’agit d’une anomalie connue qui sera corrigée dans une prochaine mise à jour.

Rapprocher l’utilisation totale d’un contrat

Snowflake garde la trace du montant dépensé pour l’utilisation depuis le début d’un contrat et classe ce montant en tant que Total consommé, qui se trouve dans la section récapitulative d’une instruction d’utilisation. Cette consommation est comptabilisée en devise dépensée et non en crédits consommés.

Utilisez la requête suivante pour rapprocher la consommation totale indiquée sur une instruction d’utilisation avec les données contenues dans le Vue USAGE_IN_CURRENCY_DAILY. La consommation totale renvoyée par la requête ne comprend pas l’utilisation dont balance_source est overage. Remplacez la date par le dernier jour du mois figurant sur l’instruction d’utilisation.

SELECT contract_number,
       SUM(usage_in_currency) AS total_consumed
  FROM snowflake.organization_usage.usage_in_currency_daily
  WHERE TRUE
    AND usage_date <= LAST_DAY(TO_DATE('2024-01-01'))
    AND LOWER(balance_source) != 'overage'
  GROUP BY 1
  ORDER BY 1;
Copy

Rapprocher l’utilisation mensuelle totale par compte

La section Utilisation mensuelle d’une instruction comprend un poste pour chaque compte de l’organisation. Chaque ligne indique l’utilisation totale d’un compte pour le mois. Il indique le nombre de crédits consommés et le montant dépensé en devise.

Utilisez la requête suivante pour réconcilier l’utilisation mensuelle totale de chaque compte avec les données du Vue USAGE_IN_CURRENCY_DAILY. L’utilisation totale renvoyée par la requête ne comprend pas l’utilisation dont balance_source est overage. Remplacez la date par le dernier jour du mois figurant sur l’instruction d’utilisation.

SELECT contract_number,
       DATE_TRUNC(month, usage_date) AS usage_month,
       CONCAT(account_locator,'-',region) AS account_name,
       SUM(usage_in_currency) AS total_consumed,
  FROM snowflake.organization_usage.usage_in_currency_daily
  WHERE TRUE
    AND usage_month = DATE_TRUNC(month,to_date('2024-01-01'))
    AND LOWER(balance_source) != 'overage'
  GROUP BY 1,2,3
  ORDER BY 1,2,3;
Copy

Note

Il existe différentes conventions de dénomination pour les régions au sein de Snowflake. Le nom de la région renvoyée par la requête précédente ne correspond peut-être pas à ce que vous voyez dans la section Utilisation mensuelle de l’instruction d’utilisation, mais il s’agit de la même région. Il s’agit d’une anomalie connue qui sera corrigée dans une prochaine mise à jour.

Rapprocher chaque type d’utilisation

L’utilisation de Snowflake peut être attribuée à différentes fonctions et différents composants architecturaux. La section Utilisation mensuelle d’une instruction détaille l’utilisation en fonction de la source de l’utilisation, groupée par le compte où l’utilisation a eu lieu. Par exemple, l’utilisation attribuée au clustering automatique dans le compte account_1 apparaît sur une ligne différente de l’utilisation du clustering automatique dans le compte account_2. Chaque ligne indique le nombre de crédits consommés et le montant dépensé en devise.

Utilisez la requête suivante pour rapprocher les différentes catégories d’utilisation figurant dans la section Utilisation mensuelle de l’instruction avec les données figurant dans le Vue USAGE_IN_CURRENCY_DAILY. Comme dans l’instruction, chaque type d’utilisation est regroupé par compte dans les résultats de requête. Remplacez la date par le dernier jour du mois figurant sur l’instruction d’utilisation.

SELECT contract_number,
       DATE_TRUNC(month, usage_date) AS usage_month,
       CONCAT(account_locator,'-',region) AS account_name,
       usage_type AS usage_category,
       SUM(usage) AS units_consumed,
       SUM(usage_in_currency) AS total_usage
  FROM snowflake.organization_usage.usage_in_currency_daily
  WHERE TRUE
    AND usage_month = DATE_TRUNC(month, TO_DATE('2024-01-01'))
  GROUP BY 1,2,3,4
  ORDER BY 1,2,3,4;
Copy

Note

Il existe différentes conventions de dénomination pour les régions au sein de Snowflake. Le nom de la région renvoyée par la requête précédente ne correspond peut-être pas à ce que vous voyez dans la section Utilisation mensuelle de l’instruction d’utilisation, mais il s’agit de la même région. Il s’agit d’une anomalie connue qui sera corrigée dans une prochaine mise à jour.