Esta página apresenta exemplos de como consultar dados do Channel Services exportados para um conjunto de dados do BigQuery.
Para mais informações sobre a exportação de dados do Channel Services, consulte como configurar a exportação de dados do Channel Services para o BigQuery. Para mais dicas, consulte Resolver problemas com exportações do BigQuery.
Como identificar e acessar a tabela do BigQuery
As exportações do Channel Services são configuradas usando o Partner Sales Console.
O nome da tabela usa o formato: PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1
Para permitir que outros usuários acessem uma exportação dos Serviços do Canal, é necessário
aplicar as permissões corretas. Por exemplo, você pode atribuir o papel bigquery.dataViewer
às suas credenciais no projeto, no conjunto de dados ou na própria tabela.
Exemplos de consultas
Os exemplos a seguir incluem uma consulta de exemplo e uma explicação básica de como interpretar os resultados. Os resultados contêm os custos de uso do Google Cloud para cada cliente ou parceiro de canal configurado no Partner Sales Console.
Soma dos custos do parceiro por conta de faturamento
Use essa consulta para verificar uma fatura recebida do Google. Os valores
cost
e credit.amount
são as somas de todas as linhas. Isso inclui custos de uso,
tributos, ajustes e erros de arredondamento.
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;
Soma dos custos do cliente por subconta do Cloud Billing
Use essa consulta para resumir o uso faturável de cada cliente. Os valores
customer_cost
e credit.customer_amount
mostram as somas de todas as linhas que
representam custos de uso. As linhas que representam tributos, ajustes e arredondamento mostram
um valor null
.
Para créditos em que type
é definido como RESELLER_MARGIN, o customer_amount
é
definido como zero para garantir que a margem não seja visível na fatura do cliente.
Os valores customer_cost
e credit.customer_amount
mostram as configurações de
reprecificação. Por exemplo, se o direito do Google Cloud de um cliente específico estiver definido como Direct Customer Cost minus 5%
, o valor de customer_cost
será 0,95 multiplicado por cost
.RebillingBasis
Isso reflete a redução
configurada do seu custo.
Os resultados dessa consulta contêm cada subconta do Cloud Billing, o nome do recurso associado ao cliente de vendas de parceiros, o mês da fatura e o uso total faturável.
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;
Soma dos custos do cliente por subconta do Cloud Billing, conforme mostrado ao proprietário
Essa consulta mostra como os números de custo de dados são mapeados com o que um cliente revendido (ou você como parceiro) vê quando abre o console do Google Cloud para a subconta.
- Para créditos em que
type
está definido como RESELLER_MARGIN, ele fica oculto na visualização da SBA. - Para custos em que
cost_type
é tributo, ele fica oculto na visualização da SBA. O revendedor precisa adicionar os tributos aplicáveis separadamente às faturas de revenda.
Ocasionalmente, cost_at_list
pode ser nulo para alguns registros, fazendo com que esse resultado
seja diferente do que aparece no console do Google Cloud. Se isso acontecer, use
IFNULL(cost_at_list, cost)
. Para mais informações, consulte
Cobranças sem custos 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;
Soma dos custos do parceiro de canal por conta de faturamento
Se você for um distribuidor, use essa consulta para resumir o uso faturável de cada parceiro de canal. Os valores channel_partner_cost
e
credit.channel_partner_amount
mostram a soma de todas as linhas que representam os custos de uso. As linhas que representam tributos, ajustes e arredondamentos mostram um valor null
.
Para créditos em que type
está definido como RESELLER_MARGIN, channel_partner_amount
é definido como zero para garantir que a margem não seja visível no
faturamento do parceiro do canal.
Os valores channel_partner_cost
e credit.channel_partner_amount
mostram suas
configurações de reprecificação. Por exemplo, se o RebillingBasis
de um parceiro de canal específico for definido como Direct Customer Cost minus 5%
, o valor de channel_partner_cost
será 0,95 multiplicado por cost
. Isso reflete a
redução configurada do seu custo.
Os resultados dessa consulta contêm cada conta de faturamento, o parceiro de canal
resource_name
associado aos clientes nessa conta de faturamento, o mês da fatura
e o uso total faturável.
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;
Soma dos custos não atribuídos a um cliente
Você pode usar essa consulta para resumir os custos não vinculados a um cliente do Channel Services, mas que podem representar o uso cobrado de outros clientes. Os valores
cost
e credit.amount
mostram a soma de todas as linhas em que o
billing_account_id
e o payer_billing_account_id
são diferentes. O
billing_account_id
representa a subconta do Cloud Billing.
Para créditos em que type
é definido como RESELLER_MARGIN, essa consulta exclui o
valor do crédito. O valor do crédito é destinado à sua alocação e não é
considerado um custo do cliente. O valor de RESELLER_MARGIN
é incluído no seu custo e refletido nas faturas enviadas pelo 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;
Visualização de dados do Google Workspace semelhante ao CSV da fatura
Se você for um revendedor do Google Workspace, poderá conferir os dados de faturamento do Google Workspace com colunas semelhantes aos arquivos CSV da fatura.
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;
Outras colunas de interesse a serem adicionadas às cláusulas SELECT
e GROUP BY
:
billing_account_id
: representa o ID de identidade do cliente do Cloud.customer_name
: representa o recurso do cliente que pode ser usado em chamadas de API.channel_partner_name
: (para distribuidores) representa o parceiro de canal.entitlement_name
: nome do recurso do direito de acesso nos serviços de canal.customer_correlation_id
: um ID de gestão de relacionamento com o cliente (CRM) que pode ser definido para um cliente.usage.amount
: para o uso baseado em assentos do Google Workspace, indica assentos pagos. Por exemplo, licenças compradas para compromissos ou número de licenças atribuídas para assinaturas flexíveis.
O resultado da consulta é diferente da fatura em CSV das seguintes maneiras:
- A coluna "Description" do CSV usa uma string legível por humanos, enquanto a exportação do BigQuery usa valores de tipo enumerado.
- As colunas "Start/End date" do CSV não são preenchidas com zeros (por exemplo, 1 de maio), enquanto a consulta do BigQuery usa valores preenchidos (por exemplo, 01 de maio). Também é possível
usar os valores de carimbo de data/hora diretamente. O
usage_start_time
é inclusivo, mas ousage_end_time
é exclusivo. - O CSV tem uma única linha "Tax" no final, enquanto a exportação do BigQuery tem linhas de impostos no nível da assinatura que somam o mesmo valor da linha "Tax" do CSV.
Visualização de dados de faturamento de pedidos off-line semelhante ao PDF da fatura (pré-visualização)
Se você for um revendedor que também faz pedidos off-line (pedidos que não são feitos pelo Partner Sales Console), poderá acessar uma visualização dos dados de faturamento com colunas semelhantes às dos arquivos CSV de fatura.
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;
O resultado da consulta é diferente da fatura em PDF das seguintes maneiras:
- É possível converter o valor do carimbo de data/hora em um valor de data no fuso horário "America/Los_Angeles". O
usage_start_time
e ousage_end_time
são exclusivos. - O PDF tem um detalhamento detalhado de impostos locais e estaduais, em que a exportação do BigQuery tem linhas de impostos no nível da assinatura que somam o valor do imposto de toda a assinatura.