Cette page fournit des exemples d'interrogation des données Channel Services exportées vers un jeu de données BigQuery.
Pour en savoir plus sur l'exportation des données Channel Services, consultez la section Configurer l'exportation des données Channel Services vers BigQuery. Pour obtenir d'autres conseils de dépannage, consultez la section Résoudre les problèmes liés aux exportations BigQuery.
Identifier et accéder à la table BigQuery
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 à afficher une export 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 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 de chaque client. Les valeurs customer_cost
et credit.customer_amount
affichent la somme de toutes les lignes représentant 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
indiquent vos configurations de repricing. Par exemple, si le RebillingBasis
pour les droits 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
. Il reflète la réduction configurée sur votre coût.
Les résultats de cette requête contiennent chaque sous-compte Cloud Billing, le nom de la 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, comme indiqué au propriétaire du sous-compte
Cette requête vous montre comment les chiffres des coûts des données correspondent à ce qu'un client revendu (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, il est masqué dans la vue SBA. - Pour les coûts où
cost_type
est tax (taxe), ils sont masqués dans la vue SBA. Le revendeur est censé ajouter les taxes applicables séparément aux factures de ses revendeurs.
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 plutôt IFNULL(cost_at_list, cost)
. Pour en savoir plus, consultez la section Frais sans coûts de liste.
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 des 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
indiquent la somme de toutes les lignes représentant 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, channel_partner_amount
est défini sur zéro pour s'assurer que la marge n'est pas visible dans la facturation partenaire de canal.
Les valeurs channel_partner_cost
et credit.channel_partner_amount
affichent vos configurations de repricing. Par exemple, si la valeur RebillingBasis
d'un partenaire de distribution particulier est définie sur Direct Customer Cost minus 5%
, la valeur channel_partner_cost
est 0,95 multipliée par cost
. Il reflète la réduction configurée sur votre coût.
Les résultats de cette requête contiennent chaque compte de facturation, le resource_name
du partenaire de distribution associé aux clients sous 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 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
indiquent la somme de toutes les lignes où billing_account_id
et payer_billing_account_id
sont différents. billing_account_id
représente le sous-compte Cloud Billing.
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,
SUM(cost_at_list) AS list_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 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 de l'accès dans les services de chaîne.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 les licences Google Workspace, ce champ indique les licences payantes. 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 CSV comme suit:
- La colonne "Description" du fichier CSV utilise une chaîne lisible, tandis que l'exportation BigQuery utilise des valeurs d'énumération.
- Les colonnes CSV "Date de début/fin" ne sont pas remplies de zéros (par exemple, 1er mai), tandis que la requête BigQuery utilise des valeurs remplies de zéros (par exemple, 01 mai). Vous pouvez également utiliser directement les valeurs de code temporel.
usage_start_time
est inclusif, maisusage_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.
Vue des données de facturation des commandes hors connexion semblable à la facture PDF (aperçu)
Si vous êtes un revendeur qui passe également des commandes hors connexion (commandes que vous ne passez pas via Partner Sales Console), vous pouvez afficher les données de facturation avec des colonnes similaires à celles des fichiers CSV de facture.
SELECT
billing_account_id AS customer_name,
service.description AS sku_name,
sku.id AS sku_id,
FORMAT_TIMESTAMP('%b %d', usage_start_time, 'America/Los_Angeles')
AS start_date,
FORMAT_TIMESTAMP('%b %d', usage_end_time, 'America/Los_Angeles')
AS end_date,
SUM(usage.amount_in_pricing_unit) AS quantity,
SUM(cost) AS amount,
FROM `PROJECT_ID.DATASET_NAME.reseller_billing_offline_orders_detailed_export_v0`
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
customer_name,
sku_name,
sku_id,
start_date,
end_date
HAVING amount != 0
ORDER BY
customer_name,
start_date,
end_date,
sku_id;
Le résultat de la requête diffère de la facture PDF comme suit:
- Vous pouvez convertir la valeur d'horodatage en valeur de date dans le fuseau horaire "America/Los_Angeles".
usage_start_time
etusage_end_time
sont exclusifs. - Le PDF contient une répartition détaillée des taxes locales et d'État, tandis que l'exportation BigQuery comporte des lignes de taxes au niveau de l'abonnement qui correspondent au montant des taxes pour l'ensemble de l'abonnement.