Exemples de requêtes d'exportation BigQuery

Cette page fournit des exemples d'interrogation des données Channel Services exportées vers un ensemble de données BigQuery.

Pour en savoir plus sur l'exportation de données Channel Services, consultez les instructions pour configurer l'exportation de données Channel Services vers dans BigQuery. Pour des conseils de dépannage supplémentaires, consultez la page Résoudre les problèmes liés à BigQuery les exportations.

Identifier la table BigQuery et y accéder

Les exportations Channel Services sont configurées à l'aide de la Partner Sales Console.

Le nom de la table utilise le format suivant : PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1

Pour autoriser d'autres utilisateurs à consulter une exportation des services de chaîne, vous devez appliquer les autorisations appropriées. Par exemple, vous pouvez attribuer le rôle bigquery.dataViewer à vos identifiants sur le projet, l'ensemble de données ou le tableau lui-même.

Exemples de requêtes

Les exemples suivants incluent un exemple de requête et une explication de base pour savoir comment à interpréter les résultats. Les résultats incluent les coûts d'utilisation de Google Cloud pour chaque client ou partenaire de distribution configuré Partner Sales Console.

Somme des coûts des partenaires par compte de facturation

Vous pouvez utiliser cette requête pour vérifier une facture que vous recevez de Google. Les valeurs cost et credit.amount correspondent aux sommes de toutes les lignes. Cela inclut les coûts d'utilisation, les taxes, les ajustements et les erreurs d'arrondi.

SELECT
  payer_billing_account_id,
  currency,
  invoice.month,
  SUM(cost)
    + SUM(
      IFNULL(
        (SELECT SUM(c.amount) FROM UNNEST(credits) AS c), 0))
    AS total
FROM `PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1`
WHERE
  export_time BETWEEN TIMESTAMP(START_DATE)
    AND TIMESTAMP(END_DATE)
GROUP BY
  payer_billing_account_id,
  currency,
  invoice.month
ORDER BY
  payer_billing_account_id,
  currency,
  invoice.month;

Somme des coûts client par sous-compte de facturation Cloud

Vous pouvez utiliser cette requête pour résumer l'utilisation facturable pour chaque client. Les valeurs customer_cost et credit.customer_amount affichent la somme de toutes les lignes représentent les coûts d'utilisation. Les lignes représentant les taxes, les ajustements et l'arrondi affichent une valeur null.

Pour les crédits dont type est défini sur RESELLER_MARGIN, customer_amount est défini sur zéro pour s'assurer que la marge n'est pas visible dans la facturation client.

Les valeurs customer_cost et credit.customer_amount correspondent au nouveau tarif de configuration. Par exemple, si la valeur RebillingBasis des droits d'accès Google Cloud d'un client particulier est définie sur Direct Customer Cost minus 5%, la valeur customer_cost est égale à 0,95 multipliée par cost. Cela reflète les de réduction de vos coûts.

Les résultats de cette requête contiennent chaque sous-compte de facturation Cloud, son le programme Ventes partenaires Ressource Customer le nom, le mois de facturation et l'utilisation totale facturable.

SELECT
  customer_name,
  billing_account_id,
  payer_billing_account_id,
  currency,
  invoice.month,
  SUM(customer_cost)
    + SUM(
      IFNULL(
        (SELECT SUM(c.customer_amount) FROM UNNEST(credits) AS c), 0))
    AS total
FROM `PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1`
WHERE
  export_time BETWEEN TIMESTAMP(START_DATE)
    AND TIMESTAMP(END_DATE)
GROUP BY
  customer_name,
  billing_account_id,
  payer_billing_account_id,
  currency,
  invoice.month
ORDER BY
  customer_name,
  billing_account_id,
  payer_billing_account_id,
  currency,
  invoice.month;

Somme des coûts client par sous-compte de facturation Cloud, telle qu'indiquée au propriétaire du sous-compte

Cette requête affiche la correspondance entre les chiffres de coût des données et ceux d'un client indirect (ou vous, en tant que partenaire) que vous voyez lorsqu'il ouvre la console Google Cloud sous-compte.

  1. Pour les crédits où type est défini sur RESELLER_MARGIN, il est masqué dans la vue SBA.
  2. Pour les coûts pour lesquels cost_type correspond à la taxe, cette valeur est masquée dans la vue des annonceurs AdWords restreints. La Le Revendeur est censé ajouter les Taxes applicables séparément à ses factures.

Il est possible que cost_at_list soit parfois nul pour certains enregistrements, ce qui entraîne une différence entre ce résultat et ce que vous voyez dans la console Google Cloud. Dans ce cas, utilisez IFNULL(cost_at_list, cost) à la place. Pour en savoir plus, consultez l'article Débits sans liste de réduction des coûts.

SELECT
  customer_name,
  currency,
  SUM(cost_at_list) AS list_cost,
  SUM(cost - cost_at_list) AS negotiated_savings,
  SUM(cost)
    + SUM(
      IFNULL(
        (
          SELECT
            SUM(c.amount)
          FROM
            UNNEST(credits) AS c
          WHERE
            c.type != 'RESELLER_MARGIN'
        ),
        0)) AS total
FROM
  `PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1`
WHERE
  cost_type != 'tax'
  AND billing_account_id = 'BILLING_SUBACCOUNT_ID'
  AND invoice.month = 'YYYYMM'
GROUP BY
  customer_name,
  currency
ORDER BY
  customer_name,
  currency;

Somme des coûts associés aux partenaires de distribution par compte de facturation

Si vous êtes distributeur, vous pouvez utiliser cette requête pour résumer l'utilisation facturable pour chaque partenaire de distribution. Les valeurs channel_partner_cost et credit.channel_partner_amount affiche la somme de toutes les lignes représentant l'utilisation. les coûts. Les lignes qui représentent les taxes, les ajustements et les arrondis affichent une valeur null.

Pour les crédits dont type est défini sur RESELLER_MARGIN, channel_partner_amount est défini sur zéro pour s'assurer que la marge n'est pas visible dans la facturation des partenaires de distribution.

Les valeurs channel_partner_cost et credit.channel_partner_amount indiquent Configurations de calcul des nouveaux tarifs. Par exemple, si le RebillingBasis d'une valeur partenaire de distribution est défini sur Direct Customer Cost minus 5%, le La valeur de channel_partner_cost est 0,95 multiplié par cost. Cela reflète les de réduction configurée de vos coûts.

Les résultats de cette requête contiennent chaque compte de facturation, le partenaire de distribution resource_name rattachées aux clients dans ce compte de facturation, la facture le mois et l'utilisation facturable totale.

SELECT
  channel_partner_name,
  payer_billing_account_id,
  currency,
  invoice.month,
  SUM(channel_partner_cost)
    + SUM(
      IFNULL(
        (SELECT SUM(c.channel_partner_amount) FROM UNNEST(credits) AS c), 0))
    AS total
FROM `PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1`
WHERE
  export_time BETWEEN TIMESTAMP(START_DATE)
    AND TIMESTAMP(END_DATE)
GROUP BY
  channel_partner_name,
  payer_billing_account_id,
  currency,
  invoice.month
ORDER BY
  channel_partner_name,
  payer_billing_account_id,
  currency,
  invoice.month;

Somme des coûts non attribués à un client

Vous pouvez utiliser cette requête pour résumer les coûts non associés à un client Channel Services, mais qui peuvent représenter une utilisation facturable à d'autres clients. Les valeurs cost et credit.amount affichent la somme de toutes les lignes dans lesquelles billing_account_id et payer_billing_account_id sont différents. La billing_account_id représente le sous-compte de facturation Cloud.

Pour les crédits pour lesquels type est défini sur RESELLER_MARGIN, cette requête exclut le montant du crédit. Le montant du crédit est destiné à votre allocation et n'est pas considéré comme un coût client. Le montant de RESELLER_MARGIN est inclus dans vos coûts et figure sur les factures envoyées par Google.

SELECT
  billing_account_id,
  payer_billing_account_id,
  currency,
  invoice.month,
  SUM(cost)
    + SUM(
      IFNULL(
        (SELECT SUM(c.amount) FROM UNNEST(credits) AS c WHERE c.type != 'RESELLER_MARGIN'), 0))
    AS total
FROM `PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1`
WHERE
  export_time BETWEEN TIMESTAMP(START_DATE)
    AND TIMESTAMP(END_DATE)
  AND customer_name IS NULL
GROUP BY
  billing_account_id,
  payer_billing_account_id,
  currency,
  invoice.month
ORDER BY
  billing_account_id,
  payer_billing_account_id,
  currency,
  invoice.month;

Affichage des données Google Workspace semblable au fichier CSV de la facture

Si vous êtes un revendeur Google Workspace, vous pouvez afficher les données de facturation Google Workspace avec des colonnes similaires à celles des fichiers CSV de facture.

SELECT
  (
    SELECT
      ws_labels.value
    FROM
      UNNEST(system_labels) AS ws_labels
    WHERE
      ws_labels.key = 'workspace.googleapis.com/domain_name'
  ) AS domain_name,
  billing_account_id AS customer_id,
  sku.description AS sku_name,
  sku.id AS sku_id,
  (
    SELECT
      ws_labels.value
    FROM
      UNNEST(system_labels) AS ws_labels
    WHERE
      ws_labels.key = 'workspace.googleapis.com/usage_type'
  ) AS description,
  (
    SELECT
      ws_labels.value
    FROM
      UNNEST(system_labels) AS ws_labels
    WHERE
      ws_labels.key = 'workspace.googleapis.com/order_id'
  ) AS order_name,
  FORMAT_TIMESTAMP('%b %d ', usage_start_time, 'America/Los_Angeles')
    AS start_date,
  FORMAT_TIMESTAMP(
    '%b %d',
    TIMESTAMP_SUB(usage_end_time, INTERVAL 1 MINUTE),
    'America/Los_Angeles')
    AS end_date,
  SUM(usage.amount_in_pricing_unit) AS quantity,
  (
    SELECT ws_labels.value
    FROM UNNEST(system_labels) AS ws_labels
    WHERE ws_labels.key = 'workspace.googleapis.com/purchase_order_id'
  ) AS po_number,
  SUM(cost) AS amount,
FROM `PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1`
WHERE
  export_time BETWEEN TIMESTAMP(START_DATE)
    AND TIMESTAMP(END_DATE)
  AND payer_billing_account_id = 'EXTERNAL_BILLING_ACCOUNT_ID'
  AND invoice.month = 'INVOICE_MONTH'
GROUP BY
  domain_name,
  customer_id,
  sku_name,
  sku_id,
  description,
  order_name,
  start_date,
  end_date,
  po_number
HAVING amount != 0
ORDER BY
  domain_name,
  order_name,
  start_date,
  end_date;

Autres colonnes d'intérêt à ajouter aux clauses SELECT et GROUP BY :

  • billing_account_id : représente l'ID d'identité Cloud du client.
  • customer_name: représente la ressource client qui peut dans les appels d'API.
  • channel_partner_name : (pour les distributeurs) Représente le partenaire de la chaîne.
  • entitlement_name: nom de ressource du droit d'accès dans Channel Services.
  • customer_correlation_id : ID de gestion de la relation client (CRM) que vous pouvez définir pour un client.
  • usage.amount: pour l'utilisation basée sur le nombre de licences Google Workspace, ce indique les sièges payés. Par exemple, licences achetées pour les licences avec engagement ou nombre de licences attribuées pour les abonnements modulables.

Le résultat de la requête diffère de la facture au format CSV de la manière suivante:

  • La colonne "Description" du fichier CSV utilise une chaîne lisible, tandis que l'exportation BigQuery utilise des valeurs d'énumération.
  • Les colonnes "Date de début/fin" du fichier CSV ne sont pas renseignées avec des zéros à gauche (par exemple, 1er mai), tandis que la requête BigQuery utilise des valeurs renseignées avec des zéros à gauche (par exemple, 01 mai). Vous pouvez également utiliser directement les valeurs de code temporel. Le usage_start_time est inclusif, mais le usage_end_time est exclusif.
  • Le fichier CSV ne comporte qu'une seule ligne "Tax" (Taxes) à la fin, tandis que l'exportation BigQuery comporte des lignes de taxes au niveau de l'abonnement qui totalisent le même montant que la ligne "Tax" (Taxes) du fichier CSV.