Ce document 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. Le schéma contient 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 compatible, vos données Cloud Billing seront 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. |
invoice.publisher_type |
Chaîne | Indique l'éditeur associé à la transaction. Ce champ permet de répartir les factures entre les transactions effectuées directement avec Google (propriétés propriétaires) et les transactions effectuées avec un partenaire (tiers), ce qui indique également les réglementations pouvant s'appliquer à la transaction. Les valeurs possibles sont les suivantes :
|
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. |
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. |
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 d'un emplacement 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.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 credits.id alphanumérique.
Exemples :
Crédit d'essai sans frais ou
Remise sur engagement d'utilisation basée sur les dépenses.
Les valeurs |
credits.type |
Chaîne | Ce champ décrit l'objectif ou l'origine de l'objet credits.id .
Les types de crédits incluent :
|
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.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 l'identifiant unique de tous les ajustements associés à un problème.
|
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 :
|
adjustment_info.mode |
Chaîne | La manière dont l'ajustement a été émis. Les modes disponibles sont les suivants :
|
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.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 :
|
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 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
Depuis le 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 de 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 remplacent la facturation incorrecte. 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 obtenir un exemple de requête qui renvoie la répartition des coûts par service, pour les frais de facturation, où la date d'utilisation s'est produite avant le mois de facturation, consultez Requête les détails des coûts pour afficher les corrections ou l'utilisation monétisée tardive par service pour un mois de facturation spécifié dans "Exemples de requêtes pour 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 d'allocation 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 :
- Clusters, instances et sauvegardes AlloyDB pour 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.
- Afficher les coûts totaux sur une facture
- Exemples de requêtes avec des libellés
- Requêtes pour la remise sur engagement d'utilisation
- Utiliser les filtres de hiérarchie des ressources pour examiner l'ascendance
- Exemples de requête supplémentaires
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
.
project
est l'ID du projet Google Cloud que vous configurez et qui contient votre ensemble de données BigQuery.dataset
est le nom de l'ensemble de données BigQuery que vous avez configuré pour qu'il contienne les tables BigQuery comprenant vos données Cloud Billing exportées.BQ_table_name
est le nom de la table BigQuery qui contient les données Cloud Billing exportées que vous souhaitez interroger. Trois tables BigQuery contiennent des données Cloud Billing :- Table de coût d'utilisation standard : dans votre ensemble de données BigQuery, cette table est nommée
gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
. - Table de coût d'utilisation détaillé : dans votre ensemble de données BigQuery, cette table est nommée
gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
. - Grille tarifaire : dans votre ensemble de données BigQuery, cette table est nommée
cloud_pricing_export
.
- Table de coût d'utilisation standard : dans votre ensemble de données BigQuery, cette table est nommée
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 l'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":"application","value":"pilon-à-chocolat"},{"key":"environnement","value":"développement"}] | 2 $ |
3 | Petite instance avec un processeur virtuel exécuté en Amérique | [{"key":"application","value":"presse-agrumes"},{"key":"environnement","value":"développement"}] | 3 $ |
4 | Petite instance avec un processeur virtuel exécuté en Amérique | [{"key":"application","value":"pilon-à-chocolat"},{"key":"environnement","value":"production"}] | 3,25 $ |
5 | Petite instance avec un processeur virtuel exécuté en Asie | [{"key":"application","value":"pilon-à-chocolat"},{"key":"environnement","value":"production"}] | 3,75 $ |
6 | Petite instance avec un processeur virtuel exécuté en Amérique | [{"key":"application","value":"presse-agrumes"},{"key":"environnement","value":"production"}] | 3,50 $ |
7 | Petite instance avec un processeur virtuel exécuté en Asie | [{"key":"application","value":"presse-agrumes"},{"key":"environnement","value":"production"}] | 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":"application","value":"pilon-à-chocolat"},{"key":"environnement","value":"développement"}] | 2 $ |
3 | [{"key":"application","value":"presse-agrumes"},{"key":"environnement","value":"développement"}] | 3 $ |
4 | [{"key":"application","value":"pilon-à-chocolat"},{"key":"environnement","value":"production"}] | 7 $ |
5 | [{"key":"application","value":"presse-agrumes"},{"key":"environnement","value":"production"}] | 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 | name | 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 |
Articles associés
Articles liés aux données Cloud Billing exportées
- Configurer l'exportation des données Cloud Billing vers BigQuery
- Exemples de requêtes associées à l'exportation de données Cloud Billing vers BigQuery
- Visualiser les dépenses au fil du temps avec Looker Studio
Rapports sur les coûts et les tarifs disponibles dans Google Cloud Console
- Afficher les rapports Cloud Billing et l'évolution des coûts
- Consulter et télécharger les détails des coûts de votre facture ou relevé
- Afficher et télécharger les tarifs des services Cloud de Google
- Comprendre les économies réalisées grâce aux rapports de répartition des coûts
- Analyser l'efficacité de vos remises sur engagement d'utilisation
- Consulter l'historique des frais et paiements