Cette page fournit des exemples d'interrogation de 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 la section Configurer l'exportation des données Channel Services vers BigQuery. Pour obtenir des conseils de dépannage supplémentaires, consultez Résoudre les problèmes liés aux exportations BigQuery.
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 respecte le format suivant: PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1
Pour autoriser d'autres utilisateurs à consulter une exportation Channel Services, 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 la table elle-même.
Exemples de requêtes
Les exemples suivants incluent un exemple de requête et une explication de base sur l'interprétation des résultats. Les résultats contiennent les coûts d'utilisation de Google Cloud pour chaque client ou partenaire de distribution configuré dans la Partner Sales Console.
Somme des coûts 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. Ceux-ci incluent 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 de chaque client. Les valeurs customer_cost
et credit.customer_amount
indiquent la somme de toutes les lignes représentant les coûts d'utilisation. Les lignes qui représentent les taxes, les ajustements et les arrondis affichent une valeur null
.
Pour les crédits où type
est défini sur RESELLER_MARGIN, sa valeur customer_amount
est définie sur zéro pour que la marge ne soit pas visible dans la facturation client.
Les valeurs customer_cost
et credit.customer_amount
indiquent vos configurations de calcul des nouveaux tarifs. Par exemple, si le RebillingBasis
pour le droit d'accès Google Cloud d'un client particulier est défini sur Direct Customer Cost minus 5%
, la valeur customer_cost
est 0,95 multipliée par cost
. Cette valeur reflète la réduction configurée de vos coûts.
Les résultats de cette requête contiennent chaque sous-compte Cloud Billing, le nom de ressource du client Ventes partenaires associé, 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 que présentée au propriétaire du sous-compte
Cette requête vous permet de comparer les chiffres de coût des données avec ce qu'un client indirect (ou vous en tant que partenaire) voit lorsqu'il ouvre la console Google Cloud pour son sous-compte.
- Pour les crédits où
type
est défini sur RESELLER_MARGIN, ce champ est masqué dans la vue SBA. - Pour les coûts où la valeur de
cost_type
correspond à la taxe, elle est masquée dans la vue des PME. Le revendeur est censé ajouter les taxes applicables séparément aux factures des clients indirects.
Il peut arriver que cost_at_list
soit nul pour certains enregistrements : ce résultat diffère de ce que vous voyez dans la console Google Cloud. Dans ce cas, utilisez plutôt IFNULL(cost_at_list, cost)
. Pour en savoir plus, consultez la section Frais sans liste 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 de partenaire de distribution par compte de facturation
Si vous êtes distributeur, vous pouvez utiliser cette requête pour résumer l'utilisation facturable de chaque partenaire de distribution. Les valeurs channel_partner_cost
et credit.channel_partner_amount
indiquent la somme de toutes les lignes qui représentent les coûts d'utilisation. Les lignes qui représentent les taxes, les ajustements et les arrondis affichent une valeur null
.
Pour les crédits où type
est défini sur RESELLER_MARGIN, sa valeur channel_partner_amount
est définie sur zéro afin que la marge ne soit pas visible dans la facturation des partenaires de distribution.
Les valeurs channel_partner_cost
et credit.channel_partner_amount
indiquent vos configurations de calcul des nouveaux tarifs. Par exemple, si la valeur de RebillingBasis
d'un partenaire de distribution spécifique est définie sur Direct Customer Cost minus 5%
, la valeur de channel_partner_cost
est 0,95 multipliée par cost
. Elle reflète la 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
associé aux clients de ce compte de facturation, le mois de facturation et l'utilisation totale facturable.
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 affectés à un client
Vous pouvez utiliser cette requête pour résumer les coûts qui ne sont pas associés à un client Channel Services, mais qui peuvent représenter une utilisation facturable à d'autres clients. Les valeurs cost
et credit.amount
indiquent la somme de toutes les lignes où billing_account_id
et payer_billing_account_id
sont différents. L'élément billing_account_id
représente le sous-compte de facturation Cloud.
Pour les crédits où type
est défini sur RESELLER_MARGIN, cette requête exclut le montant du crédit. Le montant du crédit est destiné à être alloué et n'est pas considéré comme un coût client. Le montant de RESELLER_MARGIN
est inclus dans votre coût et apparaît 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;
Vue des données Google Workspace semblable à la facture au format CSV
Si vous êtes un revendeur Google Workspace, vous pouvez obtenir une vue des données de facturation Google Workspace avec des colonnes semblables à celles des fichiers de facture CSV.
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 intéressantes à ajouter aux clauses SELECT
et GROUP BY
:
billing_account_id
: représente l'ID Cloud Identity du client.customer_name
: représente la ressource client pouvant être utilisée dans les appels d'API.channel_partner_name
: (pour les distributeurs) représente le partenaire de distribution.entitlement_name
: nom de la 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 du nombre de licences utilisateur Google Workspace, il s'agit des licences payantes. (par exemple, des licences achetées pour des engagements ou le nombre de licences attribuées pour les abonnements Flex).
Le résultat de la requête diffère de la facture CSV de différentes manières:
- La colonne "Description" du fichier CSV utilise une chaîne lisible, tandis que l'exportation BigQuery utilise des valeurs enum.
- Les colonnes "Date de début/fin" du fichier CSV ne sont pas complétées par des zéros (par exemple, le 1er mai), tandis que la requête BigQuery utilise des valeurs complétées (par exemple, le 1er mai). Vous pouvez également utiliser les valeurs d'horodatage directement. La propriété
usage_start_time
est inclusive, tandis que la valeurusage_end_time
est exclusive. - Le fichier CSV comporte une seule ligne "Taxe" à la fin, tandis que l'exportation vers BigQuery comporte des lignes de taxes au niveau de l'abonnement qui totalisent le même montant que la ligne "Taxes" du fichier CSV.