Structure de l'exportation des données standard

Cette page fournit des informations de référence pour le schéma des données de coût d'utilisation standard de Cloud Billing exportées vers chaque table dans BigQuery.

Schéma des données de coût d'utilisation standard

Dans votre ensemble de données BigQuery, vos données de coût d'utilisation standard de Google Cloud sont chargées dans une table de données nommée gcp_billing_export_v1_<BILLING_ACCOUNT_ID>.

Les informations suivantes décrivent le schéma des données de coût d'utilisation standard Google Cloud exportées vers BigQuery. Elles contiennent des informations d'ordre général concernant l'utilisation et les coûts liés au compte de facturation Cloud, telles que l'ID du compte, la date de facturation, les services, les SKU, les projets, les libellés, les emplacements, le coût, l'utilisation, les crédits, les ajustements et la devise.

Lorsque vous utilisez les données de coût d'utilisation standard dans BigQuery, tenez compte des points suivants :

  • Lorsque vous sélectionnez ou créez un ensemble de données BigQuery pour vos données de coût d'utilisation standard, vous pouvez sélectionner n'importe quel emplacement d'ensemble de données accepté à utiliser avec les données Cloud Billing.
  • Lorsque vous activez l'exportation des données de coût d'utilisation standard pour la première fois dans Cloud Billing, si vous sélectionnez un ensemble de données configuré pour utiliser un emplacement multirégional (États-Unis ou Union européenne), les données Cloud Billing sont disponibles rétroactivement depuis le début du mois précédent. Les données sont exportées dans l'ordre chronologique. Pour le remplissage initial des données exportées, l'exportation de vos données Cloud Billing rétroactives peut prendre jusqu'à cinq jours avant que puissiez commencer à voir vos données d'utilisation les plus récentes.
  • Si vous activez l'exportation des données de coût d'utilisation standard et sélectionnez un ensemble de données configuré pour utiliser un emplacement régional, vos données Cloud Billing sont disponibles à partir de la date à laquelle vous avez activé l'exportation.
  • Si vous avez activé, désactivé, puis réactivé l'exportation des données de coût d'utilisation standard, il est possible que les données Cloud Billing ne soient pas disponibles pour la période pendant laquelle l'exportation de données a été explicitement désactivée.
  • Apprenez-en plus sur la fréquence des chargements de données dans vos tables BigQuery.
  • Les données de coût d'utilisation standard n'incluent pas les données de coût au niveau des ressources, comme les machines virtuelles ou les disques SSD qui génèrent une utilisation du service. Si vous souhaitez exporter des données de coût au niveau des ressources vers BigQuery à des fins d'analyse, envisagez d'activer l'exportation des données de coût d'utilisation détaillé. Les données de coût d'utilisation détaillé exportées incluent tous les champs et informations contenus dans les données de coût d'utilisation standard.
  • Consultez les autres limites susceptibles de compromettre l'exportation de vos données de facturation vers BigQuery, telles que les ensembles de données avec des clés de chiffrement gérées par le client (CMEK).
Champ Type Description
billing_account_id Chaîne

ID du compte de facturation Cloud auquel l'utilisation est associée.

Revendeurs : pour les coûts d'utilisation générés par un sous-compte de facturation Cloud, il s'agit de l'ID du sous-compte, et non de l'ID du compte de facturation Cloud principal du revendeur.

invoice.month Chaîne

Année et mois (AAAAMM) de la facture qui inclut les lignes de coûts. Par exemple : "201901" équivaut à janvier 2019.

Vous pouvez utiliser ce champ pour obtenir le total des frais sur la facture. Consultez la section Exemples de requêtes BigQuery sur des données de facturation Cloud exportées.

cost_type Chaîne

Type de coût représenté par cette ligne : erreur standard, de taxe, d'ajustement ou d'arrondi.

service.id Chaîne ID du service auquel l'utilisation est associée.
service.description Chaîne Le service Google Cloud ayant enregistré les données de facturation Cloud.
sku.id Chaîne ID de la ressource utilisée par le service. Pour obtenir la liste complète des SKU, consultez la page SKU Google Cloud.
sku.description Chaîne Description du type de ressource utilisé par le service. Par exemple, Stockage standard aux États-Unis est un type de ressource pour Cloud Storage.
usage_start_time Horodatage Heure de début de la période d'utilisation horaire au cours de laquelle le coût donné a été calculé. L'utilisation et les coûts de tous les services s'affichent selon un horaire précis, ce qui signifie que l'utilisation des services pour des opérations de longue durée est répartie sur plusieurs périodes horaires.

Pour en savoir plus, accédez à la documentation BigQuery concernant les types de données d'horodatage. Consultez également la section Différences entre les données exportées et les factures ci-dessous.

usage_end_time Horodatage Heure de fin de la période d'utilisation horaire au cours de laquelle le coût donné a été calculé. L'utilisation et les coûts de tous les services s'affichent selon un horaire précis, ce qui signifie que l'utilisation des services pour des opérations de longue durée est répartie sur plusieurs périodes horaires.

Pour en savoir plus, accédez à la documentation BigQuery concernant les types de données d'horodatage. Consultez également la section Différences entre les données exportées et les factures ci-dessous.

project Struct project contient des champs qui décrivent le projet Cloud Billing, tels que l'ID, le numéro, le nom, ancêtre_numbers et les libellés.
project.id Chaîne ID du projet Google Cloud ayant généré les données Cloud Billing.
project.number Chaîne Identifiant unique, anonymisé et généré en interne pour le projet Google Cloud qui a généré les données Cloud Billing. Pour vos demandes d'assistance et autres communications client, Google désignera vos projets par ce numéro de projet.
project.name Chaîne Nom du projet Google Cloud ayant généré les données Cloud Billing.
project.ancestry_numbers Chaîne Ancêtres de la hiérarchie des ressources pour le projet identifié par la valeur project.id spécifiée (par exemple, my-project-123).

Par exemple : /ParentOrgNumber/ParentFolderNumber/. En savoir plus sur la hiérarchie des ressources.

project.ancestors Struct

Ce champ décrit la structure et la valeur de la hiérarchie des ressources d'un élément de ligne de coût, y compris les projets, les dossiers et les organisations. Les ancêtres sont classés en partant du nœud et en remontant vers la racine (projet, dossier, puis organisation).

project.ancestors.resource_name Chaîne Nom de ressource relatif de chaque ancêtre au format "resourceType/resourceNumber". L'utilisation de project.ancestors.resource_name offre une vue plus complète de project.ancestry_numbers.
project.ancestors.display_name Chaîne Nom que vous avez créé pour votre ressource dans la console.
project.labels.key Chaîne En cas de présence de libellés, la partie clé de la paire clé-valeur comportant le libellé du projet Google Cloud associé à l'utilisation. Pour en savoir plus sur les libellés, consultez la page Utiliser des libellés.
project.labels.value Chaîne En cas de présence de libellés, la partie valeur de la paire clé-valeur comportant le libellé du projet Google Cloud associé à l'utilisation. Pour en savoir plus sur les libellés, consultez la page Utiliser des libellés.
labels.key Chaîne En cas de présence de libellés, la partie clé de la paire clé-valeur comportant le libellé de la ressource Google Cloud associée à l'utilisation. Pour en savoir plus sur les libellés, consultez la page Utiliser des libellés.
labels.value Chaîne En cas de présence de libellés, la partie valeur de la paire clé-valeur comportant le libellé de la ressource Google Cloud associée à l'utilisation. Pour en savoir plus sur les libellés, consultez la page Utiliser des libellés.
system_labels.key Chaîne En cas de présence de libellés système, la partie clé de la paire clé-valeur comportant le libellé généré par le système sur la ressource associée à l'utilisation. Consultez également Libellés système disponibles.
system_labels.value Chaîne En cas de présence de libellés système, la partie valeur de la paire clé-valeur comportant le libellé généré par le système sur la ressource associée à l'utilisation. Consultez également Libellés système disponibles.
location.location Chaîne Emplacement de l'utilisation au niveau multirégional, d'un pays, d'une région ou d'une zone ; ou global pour les ressources qui n'ont pas d'emplacement spécifique. Pour en savoir plus, consultez les sections Zones géographiques et régions et Emplacements Google Cloud.
location.country Chaîne Lorsque location.location est un pays, une région ou une zone, ce champ correspond au pays d'utilisation, par exemple US. Pour en savoir plus, consultez les sections Zones géographiques et régions et Emplacements Google Cloud.
location.region Chaîne Lorsque location.location est une région ou une zone, ce champ correspond à la région d'utilisation, par exemple us-central1. Pour en savoir plus, consultez les sections Zones géographiques et régions et Emplacements Google Cloud.
location.zone Chaîne Lorsque location.location est une zone, ce champ correspond à la zone d'utilisation, par exemple us-central1-a. Pour en savoir plus, consultez les sections Zones géographiques et régions et Emplacements Google Cloud.
cost Nombre à virgule flottante Coût de l'utilisation avant tout crédit, avec une précision allant jusqu'à six décimales. Pour obtenir le coût total, crédits inclus, tous les champs credits.amount doivent être ajoutés au coût. Pour en savoir plus, consultez cet exemple de requête.
currency Chaîne Devise dans laquelle les coûts sont facturés. Pour en savoir plus, consultez Devise locale pour la facturation et les paiements.
currency_conversion_rate Nombre à virgule flottante Le taux de change du dollar américain dans la devise locale. Autrement dit, cost/currency_conversion_rate correspond au coût en dollars américains.
usage.amount Nombre à virgule flottante Quantité d'usage.unit utilisée.
usage.unit Chaîne Unité de base dans laquelle l'utilisation des ressources est mesurée. Par exemple, l'unité de base pour le stockage standard est l'octet par seconde.
usage.amount_in_pricing_units Nombre à virgule flottante Quantité d'usage.pricing_unit utilisée.
usage.pricing_unit Chaîne Unité dans laquelle l'utilisation des ressources est mesurée, conformément à l'API Cloud Billing Catalog.
credits Struct credits contient des champs qui décrivent la structure et la valeur des crédits associés aux codes SKU Google Cloud et Google Maps Platform.
credits.id Chaîne S'il est présent, indique qu'un crédit est associé au code SKU du produit. Les valeurs credits.id sont des identifiants uniques alphanumériques (par exemple, 12-b34-c56-d78) ou une description du type de crédit (par exemple, Remise sur engagement d'utilisation : processeur).

Si le champ credits.id est vide, le SKU du produit n'est associé à aucun crédit.

credits.full_name Chaîne Le nom du crédit associé au code SKU du produit. Il s'agit d'une description lisible par l'humain d'une valeur alphanumérique de credits.id. Exemples : Crédit d'essai sans frais ou Remise sur engagement d'utilisation basée sur les dépenses.

Les valeurs credits.full_name ne sont présentes que pour les codes SKU avec une propriété credits.id alphanumérique. Si la valeur de credits.id est une description du type de crédit (par exemple Remise sur engagement d'utilisation : processeur), le champ credits.full_name est vide.

credits.type Chaîne Ce champ décrit l'objectif ou l'origine de l'objet credits.id. Les types de crédits incluent :
  • COMMITTED_USAGE_DISCOUNT : contrats d'engagement d'utilisation basés sur des ressources souscrits pour Compute Engine en retour à des prix fortement réduits pour l'utilisation des VM.
  • COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE : contrats d'engagement d'utilisation basés sur les dépenses souscrits pour les services en échange de votre engagement à dépenser un montant minimal.
  • DISCOUNT : le type de crédit de la remise est utilisé pour les crédits cumulés lorsqu'un seuil de dépenses contractuel est atteint. Notez que dans les rapports Cloud Billing disponibles dans la console Google Cloud, le type de crédit de la remise est indiqué sous la forme Remises basées sur les dépenses (contractuelles).
  • FREE_TIER : certains services proposent l'utilisation gratuite des ressources jusqu'aux limites spécifiées. Des crédits sont appliqués pour rendre gratuite l'utilisation de ces services.
  • PROMOTION : le type d'avoir promotionnel comprend l'essai offert de Google Cloud et des crédits de campagne marketing ou d'autres subventions pour utiliser Google Cloud. Lorsqu'ils sont disponibles, les avoirs promotionnels sont considérés comme un mode de paiement et sont automatiquement appliqués pour réduire votre facture totale.
  • RESELLER_MARGIN : si vous êtes revendeur, le type de crédit marge du revendeur indique les remises du programme revendeur obtenues pour chaque élément de campagne éligible.
  • SUBSCRIPTION_BENEFIT : crédits acquis en achetant des abonnements à long terme aux services en échange de remises.
  • SUSTAINED_USAGE_DISCOUNT : le type de crédit pour les remises automatiques proportionnelles à une utilisation soutenue vous est accordé lorsque vous exécutez des ressources Compute Engine spécifiques pendant une grande partie du mois de facturation.
credits.name Chaîne Description du crédit appliqué au compte de facturation Cloud.
credits.amount Nombre à virgule flottante Le montant du crédit appliqué à l'utilisation.
adjustment_info Struct adjustment_info contient des champs qui décrivent la structure et la valeur d'un ajustement pour les éléments de campagne associés à un compte Cloud Billing.

Les valeurs adjustment_info ne sont présentes que si la ligne de coût a été générée pour une modification Cloud Billing. Une modification peut se produire pour des raisons liées aux corrections ou à la non-correction. Le type adjustment_info contient des informations sur l'ajustement, qu'il ait été émis pour corriger une erreur ou pour d'autres raisons.

adjustment_info.id Chaîne S'il est présent, indique qu'un ajustement est associé à un élément de ligne de coût. adjustment_info.id est un identifiant unique pour tous les ajustements associés causé par un problème donné.
adjustment_info.description Chaîne Description de l'ajustement et de sa cause.
adjustment_info.type Chaîne

Type d'ajustement.

Les types suivants sont inclus :

  • USAGE_CORRECTION : correction effectuée en raison d'une utilisation incorrecte constatée.
  • PRICE_CORRECTION : correction effectuée en raison de règles de tarification incorrectes.
  • METADATA_CORRECTION : correction permettant de corriger les métadonnées sans modifier le coût.
  • GOODWILL : crédit accordé à un client pour sa goodwill.
  • SALES_BASED_GOODWILL : crédit accordé au client pour sa goodwill, dans le cadre d'un contrat.
  • SLA_VIOLATION : crédit accordé au client en raison d'une violation de l'objectif de niveau de service (SLO).
  • BALANCE_TRANSFER : ajustement du transfert de fonds d'un compte de paiement vers un autre.
  • ACCOUNT_CLOSURE : ajustement pour appliquer un compte clôturé à un solde nul.
  • GENERAL_ADJUSTMENT : modification générale d'un compte de facturation.
adjustment_info.mode Chaîne

La manière dont l'ajustement a été émis.

Les modes disponibles sont les suivants :

  • PARTIAL_CORRECTION : la correction annule partiellement l'utilisation et le coût d'origine.
  • COMPLETE_NEGATION_WITH_REMONETIZATION : la correction annule complètement l'utilisation et le coût d'origine, et émet les éléments de ligne corrigés en cas d'utilisation et de coûts mis à jour.
  • COMPLETE_NEGATION : la correction annule complètement l'utilisation et le coût d'origine. Par ailleurs, aucune autre utilisation n'est plus remonétisée.
  • MANUAL_ADJUSTMENT : l'ajustement est alloué manuellement au coût et à l'utilisation.
export_time Horodatage Temps de traitement associé aux données Cloud Billing ajoutées. Cette valeur augmente toujours à chaque nouvelle exportation.
Consultez également la section Différences entre les données exportées et les factures ci-dessous.
tags Struct

Champs décrivant le tag, tels que la clé, la valeur et l'espace de noms.

tags.key Chaîne

Nom court ou nom à afficher de la clé associée à ce tag.

tags.value Chaîne

Les ressources associées à une tags.key. À tout moment, une seule valeur peut être associée à une ressource pour une clé donnée.

tags.inherited Booléen

Indique si une liaison de tag est héritée (tags hérités = true) ou directe/non héritée (tags hérités = false). Vous pouvez créer une liaison de tag à une ressource parente dans la hiérarchie des ressources.

tags.namespace Chaîne

Représente la hiérarchie des ressources qui définit les clés et les valeurs de tag. L'espace de noms peut être combiné à la clé de tag et aux noms courts de valeur de tag afin de créer un nom complet unique pour la clé de tag ou la valeur de tag.

cost_at_list Nombre à virgule flottante

Prix catalogue associés à toutes les lignes facturées sur votre compte de facturation Cloud.

transaction_type Chaîne

Type de transaction du vendeur. Il peut s'agir de l'un des types de transactions suivants :

  • GOOGLE = 1 : services vendus par Google Cloud.
  • THIRD_PARTY_RESELLER = 2 : services tiers revendus par Google Cloud.
  • THIRD_PARTY_AGENCY = 3 : services tiers vendus par un partenaire, avec Google Cloud agissant en tant qu'agent.
seller_name Chaîne

Nom légal du vendeur.

Comprendre les données de coût d'utilisation standard et détaillé

Les sections suivantes décrivent les données de coût d'utilisation standard et détaillé exportées vers BigQuery.

À propos des libellés

Les données de coût d'une étiquette spécifique n'affichent que l'utilisation à partir de la date à laquelle l'étiquette a été appliquée à une ressource. Par exemple, si vous ajoutez l'étiquette environment:dev à une VM Compute Engine le 15 janvier 2024, toute analyse pour environment:dev n'inclut que l'utilisation de cette VM depuis le 15 janvier.

Les données d'étiquettes peuvent également s'afficher à différents moments pour divers services, selon la date à laquelle chaque service les fournit.

Libellés système disponibles

Les libellés système sont des paires valeur/clé pour des métadonnées importantes concernant la ressource qui a généré l'utilisation. Les libellés système suivants sont automatiquement inclus dans l'utilisation applicable.

system_labels.key Exemple de fichier system_labels.value Description
compute.googleapis.com/machine_spec n1-standard-1, custom-2-2048 Configuration de la machine virtuelle. Pour plus d'informations, consultez la page Types de machines.
compute.googleapis.com/cores 4 pour n1-standard-4 ; 2 pour custom-2-2048 Nombre de processeurs virtuels disponibles sur la machine virtuelle
compute.googleapis.com/memory 15360 pour n1-standard-4 (soit 15 Go * 1024 Mo/Go) ; 2048 pour custom-2-2048 Quantité de mémoire (en Mo) disponible sur la machine virtuelle
compute.googleapis.com/is_unused_reservation true ; false Indique l'utilisation qui a été réservée via des Réservations zonales, mais qui n'a pas été utilisée.
storage.googleapis.com/object_state live; noncurrent; soft_deleted; multipart État de l'objet de stockage facturé.

Différences entre les données exportées et les factures

Les produits Google Cloud transmettent les données d'utilisation et de coût aux processus de facturation Cloud Billing à des intervalles variables. Par conséquent, vous pouvez constater un délai entre votre utilisation des services Google Cloud, et la disponibilité des données d'utilisation et de coût pour l'affichage dans Cloud Billing. Généralement, vos coûts sont disponibles dans la journée, mais ils peuvent parfois prendre plus de 24 heures.

Au terme d'un mois calendaire, il se peut que l'utilisation de fin de mois ne soit pas incluse dans la facture du mois en cours, mais reportée sur la facture du mois suivant.

Lorsque vous interrogez vos coûts à l'aide des champs d'horodatage, les données renvoyées peuvent récupérer l'utilisation non constatée après l'émission de la facture se rapportant au même mois d'utilisation. Par conséquent, il est possible que les données Cloud Billing renvoyées ne correspondent pas directement à cette facture.

Les champs d'horodatage comprennent les suivants :

  • usage_start_time
  • usage_end_time
  • export_time

Pour renvoyer des données Cloud Billing directement associées à une facture, exécutez une requête sur invoice.month plutôt que sur les champs d'horodatage.

Taxes

À compter du 1er septembre 2020, vos données de coût d'utilisation affichent le montant de la taxe applicable à chacun de vos projets, au lieu d'une ligne unique. Si certaines de vos requêtes ou visualisations dépendent de données de taxes, vous devrez peut-être les mettre à jour pour tenir compte de ces modifications.

Par exemple, pour les coûts enregistrés avant le 1er septembre, vos données de coût d'utilisation ressemblent à l'exemple suivant, dans lequel le montant de la taxe s'élève à 10 USD.

billing_account_id project.id cost_type cost
123456-ABCDEF-123456 example-project Standard 60 $
123456-ABCDEF-123456 test-project Standard 40 $
123456-ABCDEF-123456 [vide] Taxes 10 $

Pour les coûts enregistrés après le 1er septembre, les 10 $ de taxes sont décomposés, soit 6 $ pour example-project et 4 $ pour test-project :

billing_account_id project.id cost_type cost
123456-ABCDEF-123456 example-project Standard 60 $
123456-ABCDEF-123456 test-project Standard 40 $
123456-ABCDEF-123456 example-project Taxes 6 $
123456-ABCDEF-123456 test-project Taxes 4 $

Erreurs et ajustements

Dans le cas peu probable où vos données Cloud Billing contiendraient une erreur ou nécessiteraient un ajustement, elles sont ajoutées à des données correctives. Ces ajustements appartiennent à l'une des deux catégories suivantes : modifications ou corrections de facturation.

Modifications apportées à la facturation

Les modifications apportées à la facturation apparaissent sur des lignes séparées. Si vous avez reçu une modification de facturation, une nouvelle ligne de votre exportation Cloud Billing vers BigQuery affiche la modification. Les ajustements affichés correspondent aux documents liés à la facture, à la note de crédit et à la note de débit disponibles dans la zone Documents de la section Facturation de la console Google Cloud.

Pour en savoir plus sur les modifications de facturation et leur application, consultez la section Comprendre les notes et les ajustements.

Corrections

Les corrections s'affichent sous la forme de nouvelles données annulant les données incorrectes sur les codes SKU sources. Dans certains cas, de nouvelles données remplaceront les débits incorrects. Toutes les colonnes de l'exportation des données de facturation correspondent aux données d'origine, à l'exception des colonnes suivantes :

  • cost
  • credit
  • usage.amount
  • export_time

Par exemple, imaginez que vous payez 10 $ pour votre utilisation du SKU A le 1er janvier. Sur votre facture de janvier (émise début février), vous verrez un montant de 10 $ pour le SKU A. Toutefois, le 2 février, Google Cloud a émis une correction du SKU A, réduisant le coût d'utilisation à 5 $. Vous recevrez deux lignes supplémentaires sur votre facture de février (émise début mars) :

  • - 10 $ pour une utilisation le 1er janvier (en supprimant les frais d'origine)
  • 5 $ pour une utilisation le 1er janvier (indiquant les frais prévus)

Ces nouveaux éléments présentent une colonne adjustment_info dans l'exportation des données de facturation. La facture d'origine de janvier, indiquant la surfacturation, ne sera pas ajustée. Vous pouvez consulter les frais dans votre exportation de données de facturation en affichant les coûts par usage_start_time et en les regroupant par Day. Dans ces vues, les corrections ou les frais liés à une utilisation monétisée tardivement sont accumulés. Ainsi, vous n'avez pas à vous soucier des données temporairement incorrectes.

Si vous souhaitez obtenir des informations plus détaillées sur vos corrections, consultez tous les frais pour un mois de facturation et recherchez les frais pour lesquels la date d'utilisation a eu lieu avant le mois de facturation. Ces frais sont issus de corrections ou d'une utilisation monétisée tardivement.

L'exemple de code suivant montre comment créer une requête de base qui renvoie le coût total des corrections ou de l'utilisation monétisée tardive :

SELECT
  SUM(cost)
    + SUM(IFNULL((SELECT SUM(c.amount)
      FROM   UNNEST(credits) c), 0))
    AS total
FROM `project.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX`
WHERE
  invoice.month = '202311' AND
  DATE(TIMESTAMP_TRUNC(usage_start_time, Day, 'US/Pacific')) < '2023-11-01';

Pour un exemple de requête qui renvoie une répartition des coûts par service, pour les frais de facturation, lorsque la date d'utilisation est antérieure au mois de facturation, consultez Requête sur les détails des coûts pour afficher les corrections ou l'utilisation monétisée tardivement par service pour un mois de facturation spécifié dans la section "Exemples de requêtes associées à l'exportation de données Cloud Billing".

À propos des avoirs promotionnels dans les contrats soumis à tarification personnalisée

Si vous disposez d'un contrat soumis à tarification personnalisée, vous pouvez recevoir des avoirs promotionnels à utiliser sur Google Cloud dans le cadre du contrat. Par exemple, vous pouvez recevoir 1 000 $ à utiliser sur les ressources Compute Engine. Les avoirs promotionnels sont généralement considérés comme un mode de paiement. Les avoirs promotionnels disponibles sont automatiquement appliqués pour réduire votre facture totale.

Les conditions de votre contrat spécifient si les avoirs promotionnels s'appliquent à vos coûts calculés au prix catalogue d'un SKU ou au prix net (après remises).

Si vos avoirs promotionnels s'appliquent aux coûts calculés au prix catalogue, un service appelé Invoice avec le SKU Contract billing adjustment figure dans le rapport "Tableau des coûts". Ce SKU ajuste vos avoirs afin qu'ils s'appliquent aux coûts au prix catalogue. Pour connaître l'utilisation prévue de l'ajustement, interrogez les colonnes system.labels. La clé figurant dans system.labels.key est cloud-invoice.googleapis.com/sku_id, et la valeur de system.labels.value contient l'ID du SKU auquel l'avoir et l'ajustement ont été appliqués.

À propos des tags

Les tags sont des ressources sous la forme de paires clé/valeur qui peuvent être associées directement aux ressources ou par héritage. Vous pouvez utiliser des tags pour effectuer des rejets de débit, des audits et d'autres analyses de répartition des coûts. Vous pouvez utiliser les tags et l'application conditionnelle de règles pour un contrôle ultraprécis de votre hiérarchie de ressources.

Les tags disposent d'un modèle d'autorisations robuste et peuvent être compatibles avec l'héritage, la gestion centralisée, la standardisation de la nomenclature et l'intégration du moteur de règles, tandis que les étiquettes sont des outils distincts qui vous permettent de créer des annotations pour les ressources.

Les données de tags s'affichent dans les exportations BigQuery pour les ressources, les projets, les dossiers et les organisations.

Tags disponibles

Les exportations Coûts standards et Coûts détaillés pour les ressources, les projets, les dossiers et les organisations incluent les champs suivants pour les données de tags : clé de tag, valeur de tag, tags hérités et tags des espaces de noms.

Les tags au niveau des ressources dans l'exportation de données Cloud Billing sont disponibles pour les ressources suivantes :

  • AlloyDB pour les clusters, les instances et les sauvegardes PostgreSQL
  • Dépôts Artifact Registry
  • Services et jobs Cloud Run
  • Buckets Cloud Storage
  • Instances Compute Engine
  • Instances Memorystore pour Redis
  • Secrets Secret Manager
  • Instances Spanner

Limites des tags

  • La propagation des tags vers les exportations BigQuery peut prendre jusqu'à une heure. Si un tag a été ajouté ou supprimé il y a une heure, ou si une ressource existe depuis moins d'une heure, il est possible qu'elle n'apparaisse pas dans l'exportation.

Exemples de requêtes de coût d'utilisation standard

Cette section fournit des exemples d'interrogation des données de coût d'utilisation standard de Cloud Billing exportées vers BigQuery.

Spécifier le nom de la table à utiliser dans vos requêtes

Dans ces exemples, pour interroger les données Cloud Billing dans BigQuery, vous devez spécifier le nom de la table dans la clause FROM. Le nom de la table est déterminé à l'aide de trois valeurs : project.dataset.BQ_table_name.

Valeurs courantes utilisées dans les exemples de requêtes de coût standard

Les exemples de requête de cette section utilisent la valeur suivante pour le Nom de la table : project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX

Ces exemples de requêtes fonctionnent également avec les données de coût d'utilisation détaillé exportées vers BigQuery, bien qu'ils ne soient pas écrits pour récupérer les informations au niveau des ressources fournies avec cette option d'exportation de coût d'utilisation détaillé.

Afficher les coûts totaux sur une facture

Les requêtes suivantes illustrent deux méthodes d'affichage des valeurs de coût et de crédit à l'aide de données de facturation exportées.

  • Le champ total additionne directement les valeurs de coût et de crédit à virgule flottante, ce qui peut entraîner des erreurs d'arrondi à virgule flottante.
  • Le champ total_exact convertit les coûts et les valeurs de crédit en micro-unités avant de les additionner, puis les reconvertit en dollars après la somme, évitant ainsi les erreurs d'arrondi à virgule flottante.

Exemple 1 : Somme de tous les coûts, par facture

Cette requête affiche le total de la facture pour chaque mois, sous forme de somme des coûts réguliers, des taxes, des ajustements et des erreurs d'arrondi.

SQL standard

SELECT
  invoice.month,
  SUM(cost)
    + SUM(IFNULL((SELECT SUM(c.amount)
                  FROM UNNEST(credits) c), 0))
    AS total,
  (SUM(CAST(cost * 1000000 AS int64))
    + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64))
                  FROM UNNEST(credits) c), 0))) / 1000000
    AS total_exact
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
GROUP BY 1
ORDER BY 1 ASC
;

Par exemple, le résultat de la requête précédente peut être celui-ci :

Ligne mois total total_exact
1 201901 $1005.004832999999984 $1005.00
2 201902 $992.3101739999999717 $992.31
3 201903 $1220.761089999999642 $1220.76

Exemple 2 : Renvoyer des détails par type de coût, par mois de facturation

Cette requête affiche les totaux de chaque type de coût cost_type pour chaque mois. Les types de coûts comprennent les coûts réguliers, les taxes, les ajustements et les erreurs d'arrondi.

SQL standard

SELECT
  invoice.month,
  cost_type,
  SUM(cost)
    + SUM(IFNULL((SELECT SUM(c.amount)
                  FROM   UNNEST(credits) c), 0))
    AS total,
  (SUM(CAST(cost * 1000000 AS int64))
    + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64))
                  FROM UNNEST(credits) c), 0))) / 1000000
    AS total_exact
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
GROUP BY 1, 2
ORDER BY 1 ASC, 2 ASC
;

Par exemple, le résultat de la requête précédente peut être celui-ci :

Ligne mois cost_type total total_exact
1 201901 regular $1000.501209987994782 $1000.50
2 201901 rounding_error –$0.500489920049387 –$0.50
3 201901 taxes $10.000329958477891 10 $
4 201901 ajustement –$5.002572999387045 –$5.00

Exemples de requêtes avec des libellés

Les exemples suivants illustrent d'autres façons d'exécuter des requêtes sur les données avec des libellés.

En ce qui concerne les exemples de cette section, nous supposons ce qui suit :

  • Vous possédez deux applications (presse-agrumes et pilon-à-chocolat).
  • Pour chaque application, vous avez deux environnements (développement et production).
  • L'environnement de développement dispose d'une petite instance par application.
  • L'environnement de production dispose d'une petite instance en Amérique et d'une petite instance en Asie.
  • Chaque instance présente un libellé indiquant l'application et l'environnement.
  • Vous possédez une instance sans libellé que vous utilisez pour les tests.

Votre facture totale s'élève à 24 $. Voici le détail :

Instance Libellés Coût total
Petite instance avec un processeur virtuel exécuté en Amérique Aucun 4 $
Petite instance avec un processeur virtuel exécuté en Amérique application : pilon-à-chocolat
environnement : dev
2 $
Petite instance avec un processeur virtuel exécuté en Amérique application : presse-agrumes
environnement : dev
3 $
Petite instance avec un processeur virtuel exécuté en Amérique application : pilon-à-chocolat
environnement : prod
3,25 $
Petite instance avec un processeur virtuel exécuté en Asie application : pilon-à-chocolat
environnement : prod
3,75 $
Petite instance avec un processeur virtuel exécuté en Amérique application : presse-agrumes
environnement : prod
3,50 $
Petite instance avec un processeur virtuel exécuté en Asie application : presse-agrumes
environnement : prod
4,50 $

Exécuter des requêtes sur chaque ligne sans les grouper

Pour obtenir le rapport le plus détaillé des coûts, vous devez exécuter des requêtes sur chaque ligne sans les grouper. Supposons que tous les champs, sauf les libellés et la description du SKU, sont identiques (projet, service, etc.).

SQL standard

SELECT
  sku.description,
  TO_JSON_STRING(labels) as labels,
 cost as cost
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`;

Ancien SQL

TO_JSON_STRING not supported.
Ligne sku.description libellés coût
1 Petite instance avec un processeur virtuel exécuté en Amérique [] 4 $
2 Petite instance avec un processeur virtuel exécuté en Amérique [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] 2 $
3 Petite instance avec un processeur virtuel exécuté en Amérique [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] 3 $
4 Petite instance avec un processeur virtuel exécuté en Amérique [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] 3,25 $
5 Petite instance avec un processeur virtuel exécuté en Asie [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] 3,75 $
6 Petite instance avec un processeur virtuel exécuté en Amérique [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] 3,50 $
7 Petite instance avec un processeur virtuel exécuté en Asie [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] 4,50 $
TOTAL 24 $

Grouper par correspondance de libellés en tant que chaîne JSON

Cette méthode vous permet de rapidement et facilement détailler les coûts pour chaque combinaison de libellés.

SQL standard

SELECT
  TO_JSON_STRING(labels) as labels,
  sum(cost) as cost
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
GROUP BY labels;

Ancien SQL

TO_JSON_STRING not supported.
Ligne libellés coût
1 [] 4 $
2 [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] 2 $
3 [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] 3 $
4 [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] 7 $
5 [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] 8 $
TOTAL 24 $

Grouper par valeur de libellés pour une clé spécifique

Il est fréquent de détailler les coûts pour les valeurs d'une clé de libellé spécifique. En utilisant la jointure LEFT JOIN et en plaçant le filtre de clé dans la condition JOIN (plutôt que WHERE), vous incluez les coûts qui ne contiennent pas cette clé. Vous obtenez ainsi une vue complète de vos coûts.

SQL standard

SELECT
  labels.value as environment,
  SUM(cost) as cost
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
LEFT JOIN UNNEST(labels) as labels
  ON labels.key = "environment"
GROUP BY environment;

Ancien SQL

SELECT
  labels.value as environment,
  SUM(cost) as cost
FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX]
WHERE labels.key = "environment" OR labels.key IS NULL
GROUP BY environment;
Ligne environnement coût
1 production 15 $
2 dev 5 $
3 null 4 $
TOTAL 24 $

Grouper par paires valeur/clé

Soyez prudent lorsque vous interprétez ou exportez ces résultats. Une ligne individuelle affiche ici une somme valide sans que l'utilisation soit comptabilisée deux fois. Toutefois, elle ne doit pas être combinée avec d'autres lignes (sauf si la clé est la même ou si vous êtes certain que les clés ne sont jamais définies sur la même ressource).

SQL standard

SELECT
  labels.key as key,
  labels.value as value,
  SUM(cost) as cost
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
LEFT JOIN UNNEST(labels) as labels
GROUP BY key, value;

Ancien SQL

SELECT
  labels.key as key,
  labels.value as value,
  SUM(cost)
FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX]
GROUP BY key, value;
Ligne clé valeur coût
1 null null 4 $
2 application pilon-à-chocolat 9 $
3 application presse-agrumes 11 $
4 environnement dev 5 $
5 environnement production 15 $
TOTAL 44 $

Notez que le coût total est supérieur au montant de votre facture.

Requêtes pour la remise sur engagement d'utilisation

Les requêtes suivantes montrent comment afficher les frais et les crédits associés aux remises sur engagement d'utilisation dans les données de facturation exportées. Pour comprendre comment vos frais d'engagement et vos crédits sont appliqués à votre compte et à vos projets Cloud Billing, consultez la section Attribution des remises sur engagement d'utilisation.

Afficher les frais d'engagement

Pour afficher les frais d'engagement pour vos remises sur engagement d'utilisation dans votre exportation de données de facturation, utilisez l'exemple de requête suivant.

SQL standard

SELECT
    invoice.month AS invoice_month,
    SUM(cost) as commitment_fees
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
WHERE LOWER(sku.description) LIKE "commitment%"
GROUP BY 1

Afficher les crédits d'engagement

Pour afficher vos crédits de remise sur engagement d'utilisation dans votre exportation de données de facturation, utilisez l'exemple de requête suivant.

SQL standard

SELECT
    invoice.month AS invoice_month,
    SUM(credits.amount) as CUD_credits
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
LEFT JOIN UNNEST(credits) AS credits
WHERE LOWER(credits.name) LIKE "committed use discount%"
GROUP BY 1

Utiliser les filtres de hiérarchie des ressources pour examiner l'ascendance

Vous pouvez utiliser les filtres de hiérarchie des ressources pour regrouper les coûts par éléments de hiérarchie, tels que les projets, les dossiers et les organisations. Ces exemples de requêtes montrent des méthodes permettant d'additionner les coûts filtrés en fonction des éléments de la hiérarchie des ressources et d'afficher les ancêtres du projet.

Exemple 1 : Filtrer par nom de ressource

Cet exemple présente des requêtes qui regroupent les coûts par ancêtre de projet et appliquent un filtrage pour ne retenir que les coûts générés sous un élément de hiérarchie spécifié, identifié par le nom de ressource relatif.

Méthode chaîne

SELECT
    invoice.month AS invoice_month,
    TO_JSON_STRING(project.ancestors) as ancestors,
    SUM(cost)
        + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0))
        AS net_cost
  FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq
  WHERE TO_JSON_STRING(project.ancestors) like "%resource_name\":\"folders/1234"
  GROUP BY invoice_month, ancestors
  ORDER BY invoice_month, ancestors

Méthode UNNEST

SELECT
    invoice.month AS invoice_month,
    TO_JSON_STRING(project.ancestors) as ancestors,
    SUM(cost)
        + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0))
        AS net_cost
  FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor
  WHERE ancestor.resource_name = "folders/1234"
  GROUP BY invoice_month, ancestors
  ORDER BY invoice_month, ancestors

Exemple 2 : Filtrer par nom à afficher

Cet exemple présente des requêtes qui regroupent les coûts par ancêtre de projet et appliquent un filtrage pour ne retenir que les coûts générés sous un élément de hiérarchie spécifié, identifié par le nom à afficher fourni par l'utilisateur.

Méthode de correspondance de chaînes

SELECT
    invoice.month AS invoice_month,
    TO_JSON_STRING(project.ancestors) as ancestors,
    SUM(cost)
        + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0))
        AS net_cost
  FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq
  WHERE TO_JSON_STRING(project.ancestors) like "%display_name\":\"MyFolderName%"
  GROUP BY invoice_month, ancestors
  ORDER BY invoice_month, ancestors

Méthode UNNEST

SELECT
    invoice.month AS invoice_month,
    TO_JSON_STRING(project.ancestors) as ancestors,
    SUM(cost)
        + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0))
        AS net_cost
  FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor
  WHERE ancestor.display_name = "MyFolderName"
  GROUP BY invoice_month, ancestors
  ORDER BY invoice_month, ancestors

Exemples de requêtes avec des tags

Les exemples suivants montrent comment interroger des données avec des tags.

Calculer les coûts par mois de facturation avec des tags

La requête suivante montre comment utiliser les frais de retour par mois de facturation pour le tag cost_center.

SELECT
  invoice.month AS invoice_month,
  tag.value AS cost_center,
  ROUND((SUM(CAST(cost AS NUMERIC))
    + SUM(IFNULL((SELECT SUM (CAST(c.amount AS NUMERIC))
                  FROM UNNEST(credits) AS c), 0))), 2)
    AS net_cost
FROM `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX`, UNNEST(tags) AS tag
WHERE tag.key = "cost_center" AND tag.namespace = "821092389413"
GROUP BY invoice.month, tag.value
ORDER BY invoice.month, tag.value;

Par exemple, le résultat de la requête précédente peut être celui-ci :

Ligne invoice_month cost_center net_cost
1 202208 android_mobile_apps 9.93
2 202208 ios_mobile_apps 9.93
3 202209 android_mobile_apps 25.42
4 202209 ios_mobile_apps 25,4
5 202209 personnalisation 16.08

Afficher les coûts des ressources sans tag

Cette requête affiche le total de la facture pour les ressources sans tags, regroupées par mois de facturation.

SELECT
 invoice.month AS invoice_month,
 ROUND((SUM(CAST(cost AS NUMERIC))
   + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC))
                 FROM UNNEST(credits) AS c), 0))), 2)
   AS net_cost
FROM
 `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX`
WHERE "color" NOT IN (SELECT key FROM UNNEST(tags))
GROUP BY invoice_month
ORDER BY invoice_month;

Par exemple, le résultat de la requête précédente peut être celui-ci :

Ligne invoice_month net_cost
1 202202 0
2 202203 16.81
3 202204 54.09
4 202205 55.82
5 202206 54.09
6 202207 55.83
7 202208 31.49

Exemples de requête supplémentaires

Exécuter des requêtes sur les coûts et crédits par projet pour un mois de facturation spécifié

Lorsque vous lui fournissez un mois de facturation spécifique au format AAAAMM (dans l'exemple, le mois de juin 2020), cette requête renvoie les coûts et les crédits regroupés par projet, ainsi que les libellés de projet.

SQL standard

SELECT
  project.name,
  TO_JSON_STRING(project.labels) as project_labels,
  sum(cost) as total_cost,
  SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) as total_credits
FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`
WHERE invoice.month = "202006"
GROUP BY 1, 2
ORDER BY 1;

Ancien SQL

TO_JSON_STRING not supported.
Ligne nom project_labels total_cost total_credits
1 CTG - Dev [{"key":"ctg_p_env","value":"dev"}] 79.140979 -4.763796
2 CTG - Prod [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"eng"}] 32.466272 -3.073356
3 CTG - Sandbox [{"key":"ctg_p_env","value":"dev"}] 0 0
4 CTG - Storage [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"data"}] 7.645793 -0.003761

Rapports sur les coûts et les tarifs disponibles dans Google Cloud Console