En esta página, se proporcionan ejemplos de cómo consultar datos de servicios de canal exportados a un conjunto de datos de BigQuery.
Para obtener más información sobre la exportación de datos de servicios de canal, consulta cómo configurar la exportación de datos de servicios de canal a BigQuery. Si deseas obtener sugerencias adicionales para la solución de problemas, consulta Cómo solucionar problemas con las exportaciones de BigQuery.
Identifica y accede a la tabla de BigQuery
Las exportaciones de servicios de canal se configuran con Partner Sales Console.
El nombre de la tabla usa el siguiente formato: PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1
Para permitir que otros usuarios vean una exportación de servicios de canal, debes aplicar los permisos correctos. Por ejemplo, puedes asignar la función bigquery.dataViewer
a tus credenciales en el proyecto, el conjunto de datos o la tabla en sí.
Ejemplos de consultas
Los siguientes ejemplos incluyen una consulta de muestra y una explicación básica de cómo interpretar los resultados. Los resultados contienen los costos de uso de Google Cloud para cada cliente o socio de canal configurado en la Partner Sales Console.
Suma de los costos de socios por cuenta de facturación
Puedes usar esta consulta para verificar una factura que recibas de Google. Los valores cost
y credit.amount
son las sumas de todas las filas. Estos incluyen costos de uso, impuestos, ajustes y errores de redondeo.
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;
Suma de los costos del cliente por cuenta de Facturación secundaria de Cloud
Puedes usar esta consulta para resumir el uso facturable de cada cliente. Los valores customer_cost
y credit.customer_amount
muestran las sumas de todas las filas que representan los costos de uso. Las filas que representan impuestos, ajustes y redondeo muestran un valor null
.
En el caso de los créditos en los que type
se establece en RESELLER_MARGIN, su customer_amount
se establece en cero para garantizar que el margen no sea visible en la facturación del cliente.
Los valores customer_cost
y credit.customer_amount
muestran la configuración de revisión de precios. Por ejemplo, si RebillingBasis
para el derecho de Google Cloud de un cliente en particular se establece en Direct Customer Cost minus 5%
, el valor de customer_cost
es 0.95 multiplicado por cost
. Esto refleja la reducción configurada de tu costo.
Los resultados de esta consulta contienen cada cuenta de Facturación de Cloud, su nombre del recurso del cliente de Ventas para socios, el mes de facturación y el uso facturable total.
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;
Suma de los costos del cliente por cuenta de Facturación secundaria de Cloud, como se le muestra al propietario de la cuenta secundaria
En esta consulta, se muestra cómo se asignan los números de costo de los datos con lo que ve un cliente de reventa (o tú como socio) cuando abre la consola de Google Cloud para su cuenta secundaria.
- En el caso de los créditos en los que
type
se establece en RESELLER_MARGIN, esto se oculta en la vista SBA. - Para los costos en los que
cost_type
es impuesto, esto se oculta en la vista de SBA. El revendedor debe agregar los Impuestos aplicables por separado a sus facturas de reventa.
En ocasiones, cost_at_list
podría ser nulo para algunos registros, lo que provoca que este resultado difiera
del que ves en la consola de Google Cloud. Si esto sucede, usa IFNULL(cost_at_list, cost)
en su lugar. Para obtener más información, consulta Cargos sin costos de lista.
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;
Suma de los costos de socio de canal por cuenta de facturación
Si eres distribuidor, puedes usar esta consulta para resumir el uso facturable de cada socio de canal. Los valores channel_partner_cost
y credit.channel_partner_amount
muestran la suma de todas las filas que representan los costos de uso. Las filas que representan impuestos, ajustes y redondeo muestran un valor null
.
En el caso de los créditos en los que type
se establece en RESELLER_MARGIN, su channel_partner_amount
se establece en cero para garantizar que el margen no sea visible en la facturación del socio de canal.
Los valores channel_partner_cost
y credit.channel_partner_amount
muestran tus parámetros de configuración de Revisión de precios. Por ejemplo, si RebillingBasis
para un socio de canal en particular se establece en Direct Customer Cost minus 5%
, el valor channel_partner_cost
es 0.95 multiplicado por cost
. Esto refleja la reducción configurada de tu costo.
Los resultados de esta consulta contienen cada cuenta de facturación, el socio de canal resource_name
vinculado a los clientes de esa cuenta de facturación, el mes de facturación y el uso facturable total.
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;
Suma de los costos no asignados a un cliente
Puedes usar esta consulta para resumir los costos no vinculados a un cliente de servicios de canal, pero que pueden representar el uso facturable a otros clientes. Los valores cost
y credit.amount
muestran la suma de todas las filas en las que billing_account_id
y payer_billing_account_id
son diferentes. El billing_account_id
representa la cuenta de facturación secundaria de Cloud.
Para los créditos en los que type
se establece como RESELLER_MARGIN, esta consulta excluye el importe del crédito. El importe del crédito está destinado a tu asignación y no se considera un costo para el cliente. El importe de RESELLER_MARGIN
se incluye en tu costo y se refleja en las facturas que envía 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;
Vista de datos de Google Workspace similar a la factura en formato CSV
Si eres revendedor de Google Workspace, es posible que obtengas una vista de los datos de facturación de Google Workspace con columnas similares a las de los archivos CSV de las facturas.
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;
Otras columnas de interés para agregar a las cláusulas SELECT
y GROUP BY
:
billing_account_id
: Representa el ID de Cloud Identity del cliente.customer_name
: Representa el recurso del cliente que se puede usar en las llamadas a la API.channel_partner_name
: Representa al socio de canal.entitlement_name
: Es el nombre del recurso de la autorización en los servicios de canal.customer_correlation_id
: Es un ID de administración de relaciones con clientes (CRM) que puedes definir para un cliente.usage.amount
: En el caso del uso por licencias de Google Workspace, esto indica las licencias pagadas. Por ejemplo, las licencias compradas para compromisos o la cantidad de licencias asignadas para las suscripciones flexibles.
El resultado de la consulta difiere de la factura CSV de las siguientes maneras:
- La columna “Descripción” del archivo CSV usa una string legible, mientras que la exportación de BigQuery usa valores de enumeración.
- Las columnas “Fecha de inicio/finalización” de CSV no tienen relleno en cero (p.ej., el 1 de mayo), mientras que la consulta de BigQuery usa valores con relleno (p.ej., el 1 de mayo). También puedes usar directamente los valores de marca de tiempo. La
usage_start_time
es inclusiva, pero lausage_end_time
es exclusiva. - El archivo CSV tiene una sola línea “Impuestos” al final, mientras que la exportación de BigQuery tiene líneas fiscales a nivel de la suscripción que suman hasta el mismo importe que la línea “Impuestos” del CSV.