Exporter des données Cloud Billing vers BigQuery

La gestion des coûts et la création de rapports efficaces constituent un élément essentiel de la gestion financière, que vous gériez les activités d'une entreprise de plusieurs milliards de dollars ou un modeste budget familial. Pour prendre des décisions basées sur les données concernant vos coûts et votre utilisation de Google Cloud, vous devez commencer par collecter les données dont vous avez besoin.

L'exportation des données Cloud Billing vers BigQuery vous permet d'exporter automatiquement des données de facturation Google Cloud détaillées (telles que les données d'utilisation et d'estimations de coût) tout au long de la journée vers un ensemble de données BigQuery que vous spécifiez. Vous pouvez ensuite accéder à vos données Cloud Billing depuis BigQuery pour une analyse détaillée ou utiliser un outil tel que Google Data Studio pour les visualiser. Cette fonctionnalité vous permet aussi d'exporter des données vers un fichier JSON.

Activer l'exportation Cloud Billing vers BigQuery

Autorisations requises

Pour activer et configurer l'exportation des données Google Cloud Billing vers un ensemble de données BigQuery, vous devez disposer des autorisations suivantes :

  • Le rôle Administrateur de compte de facturation pour le compte de facturation Cloud cible
  • Le rôle Utilisateur de BigQuery pour le projet Cloud qui contient l'ensemble de données BigQuery qui sera utilisé pour stocker les données Cloud Billing

Pour plus d'informations sur les autorisations Google Cloud, consultez les articles suivants :

1. Créer un ensemble de données BigQuery

Avant d'activer l'exportation Cloud Billing vers BigQuery, nous vous recommandons de commencer par créer un ensemble de données BigQuery.

Un ensemble de données est contenu dans un projet Cloud spécifique. Les ensembles de données sont des conteneurs de niveau supérieur utilisés pour organiser et contrôler l'accès à vos tables et vues. Une table ou une vue doit appartenir à un ensemble de données. Vous devez donc créer au moins un ensemble de données avant de charger des données dans BigQuery.

Pour créer un ensemble de données BigQuery, procédez comme suit :

  1. Connectez-vous à Google Cloud Console et accédez à la page BigQuery.

    Accéder à la page BigQuery

  2. Dans la liste déroulante du projet ( Mon projet ), en haut de la page Google Cloud Console, sélectionnez ou créez un projet contenant votre ensemble de données.

    Recommandation : Nous vous recommandons de configurer un seul projet Google Cloud distinct pour gérer vos exigences d'administration de la facturation, y compris vos données Cloud Billing. Votre projet Cloud d'administration de la facturation peut également être utilisé pour l'accès aux API Cloud Billing, aux canaux Cloud Pub/Sub pour les notifications de budget automatisées, etc.

  3. Dans le panneau de navigation de BigQuery, cliquez sur nom-de-votre-projet.

  4. Cliquez sur CRÉER UN ENSEMBLE DE DONNÉES. Le panneau "Créer un ensemble de données" s'ouvre.

    1. Saisissez l'ID de l'ensemble de données.
    2. Sélectionnez l'emplacement des données.

    3. Sélectionnez le délai d'expiration des tables par défaut.

    4. Sélectionnez l'option de chiffrement. Pour l'exportation Cloud Billing, sélectionnez Clé gérée par Google.

    5. Pour enregistrer, cliquez sur Créer un ensemble de données.

2. Activer l'exportation Cloud Billing vers l'ensemble de données BigQuery

Pour activer l'exportation Cloud Billing vers BigQuery, procédez comme suit :

  1. Connectez-vous à Google Cloud Console.

    Se connecter à Cloud Console

  2. Ouvrez le menu de navigation de la console , puis sélectionnez Facturation.

    Si vous possédez plusieurs comptes de facturation Cloud, effectuez l'une des opérations suivantes :

    • Pour gérer Cloud Billing pour le projet Cloud en cours, sélectionnez Accéder au compte de facturation associé.
    • Pour rechercher un autre compte de facturation, sélectionnez Gérer les comptes de facturation, puis sélectionnez le compte pour lequel vous souhaitez activer l'exportation des données Cloud Billing vers BigQuery.
  3. Dans le menu de navigation "Facturation", sélectionnez Exporter la facturation.

  4. Sélectionnez l'onglet Exportation vers BigQuery.

  5. Cliquez sur Modifier les paramètres pour activer l'exportation et mettre à jour les paramètres d'exportation.

  6. Dans la liste Projet, sélectionnez le projet dans lequel votre ensemble de données BigQuery est stocké.

  7. Dans la liste Ensemble de données pour l'exportation de la facturation, spécifiez un ensemble de données dans lequel exporter les données.

    Conseil : Si vous n'avez pas encore créé d'ensemble de données BigQuery, vous serez invité à en créer un. Le cas échéant, procédez comme suit pour créer un ensemble de données.

  8. Cliquez sur Enregistrer.

Fréquence des chargements de données

  • Lorsque vous activez l'exportation vers BigQuery pour la première fois, quelques heures peuvent s'écouler avant que vos données de facturation Google Cloud ne commencent à s'afficher.
  • Les services Google Cloud transmettent les données aux processus Cloud Billing à intervalles variables.
  • Exportations de données Cloud Billing vers votre ensemble de données BigQuery à intervalles réguliers (il n'existe aucune garantie de distribution ou de latence pour l'exportation vers BigQuery).
  • Étant donné que la fréquence des rapports d'utilisation varie selon le service Google Cloud, les données de facturation Cloud ne s'affichent pas immédiatement pour tous les services Google Cloud récemment utilisés.
  • Votre ensemble de données BigQuery ne reflète que les données Cloud Billing générées à compter de la date à laquelle vous avez activé l'exportation. Les données Cloud Billing ne sont pas ajoutées rétroactivement. Par conséquent, les données de facturation Cloud générées avant l'activation de l'exportation ne s'affichent pas.
  • Si vous supprimez des données exportées, telles que des enregistrements d'exportation BigQuery, nous ne pouvons pas les remplacer.
  • Notez que les tâches de chargement BigQuery sont conformes aux normes ACID et que les données ne seront donc que partiellement chargées si vous envoyez une requête à l'ensemble de données d'exportation BigQuery Cloud Billing pendant que des données sont en train d'y être chargées. En savoir plus sur les caractéristiques BigQuery

Table d'utilisation

Peu après l'activation de l'exportation Cloud Billing vers BigQuery, la table d'utilisation est automatiquement créée.

Si vous souhaitez consolider les données de facturation d'anciennes configurations ou versions de l'exportation Cloud Billing vers BigQuery, nous vous recommandons de conserver les données dans des tables distinctes et d'utiliser plutôt une requête UNION.

Autorisations d'ensemble de données

L'exportation Cloud Billing vers BigQuery utilise un compte de service pour gérer les autorisations de l'ensemble de données.

Lorsque vous activez l'exportation Cloud Billing vers BigQuery, un compte de service détenu et géré par Google est ajouté en tant que propriétaire à l'ensemble de données que vous spécifiez. Le compte de service se présente comme suit :

  • billing-export-bigquery@system.gserviceaccount.com

Le compte de service fournit les autorisations nécessaires à notre processus hors connexion pour créer une table et y écrire des enregistrements Cloud Billing.

Coût d'utilisation

L'utilisation de BigQuery pour stocker les données d'utilisation entraîne un minimum de frais. Le chargement de données dans l'ensemble de données désigné est gratuit, car il exploite le pool de ressources partagées de BigQuery pour charger des données par lots. Lors de l'exportation et de l'analyse des données Cloud Billing à l'aide de BigQuery, le coût associé dépend de la quantité de données que vous diffusez, stockez et interrogez. Pour vous faire une idée des frais encourus, consultez la page Estimer les coûts liés à l'espace de stockage et aux requêtes. Pour en savoir plus, reportez-vous à la page Tarifs de BigQuery.

Données de coût d'utilisation de Google Cloud dans BigQuery

Le tableau suivant décrit le contenu des données de coût d'utilisation de Google Cloud exportées vers BigQuery.

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 ce poste : 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. Stockage standard aux États-Unis est par exemple un type de ressource pour Cloud Storage.
usage_start_time Temporel 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 Temporel 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.id Chaîne ID du projet Google Cloud ayant généré les données Cloud Billing.
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.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 Clé de la paire valeur/clé comportant le libellé généré par le système sur la ressource associée à l'utilisation (si des libellés système ont été définis). Consultez également Libellés système disponibles.
system_labels.value Chaîne Valeur de la paire valeur/clé comportant le libellé généré par le système sur la ressource associée à l'utilisation (si des libellés système ont été définis). Consultez également Libellés système disponibles.
location.location Chaîne Emplacement de l'utilisation au niveau 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 plus d'informations, consultez la page Régions et zones.
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 plus d'informations, consultez la page Régions et zones.
location.region Chaîne Lorsque location.location est un pays ou une région, ce champ correspond à la région d'utilisation, par exemple us-central1. Pour plus d'informations, consultez la page Régions et zones.
location.zone Chaîne Lorsque location.location est une zone, ce champ correspond à la zone d'utilisation, par exemple us-central1-a. Pour plus d'informations, consultez la page Régions et zones.
cost Nombre à virgule flottante Coût de l'utilisation avant tout crédit. 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 la page Devise locale pour la facturation et les paiements.
currency_conversion_rate Nombre à virgule flottante 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.name Chaîne Description du crédit appliqué au compte de facturation Cloud.
credits.amount Nombre à virgule flottante Montant du crédit appliqué à l'utilisation. Les crédits sont toujours des montants négatifs.
export_time Temporel 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.

À propos des libellés

Vous verrez des colonnes pour les libellés dans votre ensemble de données BigQuery. Toutefois, certaines valeurs de libellés sont vides dans la version actuelle. Les données exportées pour les libellés seront insérées à différents moments pour divers services, en fonction de 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

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

Comme les services Google Cloud transmettent les données d'utilisation et de coût aux processus Cloud Billing à des intervalles variables, les rapports d'utilisation peuvent être légèrement retardés. 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. Toutefois, cette même utilisation inclut un horodatage en fonction de la date et de l'heure d'utilisation réelles lorsque celle-ci est signalée aux processus Cloud Billing.

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.

Erreurs et ajustements

Dans le cas peu probable où vos données Cloud Billing contiendraient une erreur ou nécessiteraient un ajustement, sachez que d'autres données seront ajoutées afin de corriger l'erreur. Les valeurs de toutes les colonnes resteront les mêmes, sauf pour les suivantes :

  • cost
  • credit
  • usage.amount
  • export_time

Pour identifier les nouvelles données, vous pouvez lancer une requête sur export_time.