Esta página fornece exemplos de como consultar dados dos serviços de canal exportados para um conjunto de dados do BigQuery.
Para mais informações sobre a exportação de dados dos serviços de canal, consulte como configurar a exportação de dados dos serviços de canal para o BigQuery. Para ver sugestões adicionais de resolução de problemas, consulte o artigo Resolva problemas com exportações do BigQuery.
Identificar e aceder à tabela do BigQuery
As exportações dos serviços de canal são configuradas através da Partner Sales Console.
O nome da tabela usa o formato: PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1
Para permitir que outros utilizadores vejam uma exportação dos serviços de canal, tem de aplicar as autorizações corretas. Por exemplo, pode atribuir a função bigquery.dataViewer
às suas credenciais no projeto, no conjunto de dados ou na própria tabela.
Exemplos de consultas
Os exemplos seguintes incluem uma consulta de exemplo e uma explicação básica de como interpretar os resultados. Os resultados contêm Google Cloud custos de utilização para todos os clientes ou parceiros do canal configurados na Consola de vendas de parceiros.
Soma dos custos de parceiros por conta de faturação
Pode usar esta consulta para validar uma fatura que recebe da Google. Os valores
cost
e credit.amount
são as somas de todas as linhas. Estes incluem custos de utilização,
impostos, 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 de faturação do Google Cloud
Pode usar esta consulta para resumir a utilização faturável de cada cliente. Os valores customer_cost
e credit.customer_amount
mostram as somas de todas as linhas que representam custos de utilização. As linhas que representam impostos, ajustes e arredondamentos mostram um valor de null
.
Para créditos em que type
está definido como RESELLER_MARGIN, o respetivo customer_amount
está definido como zero para garantir que a margem não está visível na faturação do cliente.
Os valores customer_cost
e credit.customer_amount
mostram as suas configurações de redefinição de preços. Por exemplo, se o RebillingBasis
para a concessão de um determinado cliente
Google Cloud estiver definido como Direct Customer Cost minus 5%
, o valor
customer_cost
é 0,95 multiplicado por cost
. Isto reflete a redução configurada do seu custo.
Os resultados desta consulta contêm cada subconta do Cloud Billing, o nome do recurso do cliente de vendas de parceiros associado, o mês de faturação e a utilização faturável 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;
Soma dos custos do cliente por subconta de faturação do Google Cloud, conforme apresentado ao proprietário da subconta
Esta consulta mostra como os números de custos de dados são mapeados com o que um cliente de revenda (ou o parceiro) vê quando abre a Google Cloud consola para a respetiva subconta.
- Para créditos em que
type
está definido como RESELLER_MARGIN, este campo está oculto na vista de SBA. - Para custos em que
cost_type
é imposto, este valor está oculto na vista da SBA. O revendedor deve adicionar os impostos aplicáveis separadamente às faturas de revenda.
Ocasionalmente, cost_at_list
pode ser nulo para alguns registos, o que faz com que este resultado seja diferente do que vê na Google Cloud consola. Se isto acontecer, use
IFNULL(cost_at_list, cost)
em alternativa. Para mais informações, consulte o artigo
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 do canal por conta de faturação
Se for um distribuidor, pode usar esta consulta para resumir a utilização 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 custos de utilização. As linhas que representam impostos, ajustes e arredondamentos mostram um valor de null
.
Para créditos em que type
está definido como RESELLER_MARGIN, o respetivo channel_partner_amount
é definido como zero para garantir que a margem não é visível na faturação do parceiro de canal.
Os valores channel_partner_cost
e credit.channel_partner_amount
mostram as suas configurações de redefinição de preços. Por exemplo, se o RebillingBasis
de um parceiro de canal específico estiver definido como Direct Customer Cost minus 5%
, o valor channel_partner_cost
é 0,95 multiplicado por cost
. Isto reflete a redução
configurada do seu custo.
Os resultados desta consulta contêm cada conta de faturação, o parceiro de canal
resource_name
associado aos clientes nessa conta de faturação, o mês
da fatura e a utilização faturável 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;
Soma dos custos não atribuídos a um cliente
Pode usar esta consulta para resumir os custos não associados a um cliente dos serviços de canal, mas que podem representar a utilização faturável a outros clientes. Os valores
cost
e credit.amount
mostram a soma de todas as linhas em que os valores
billing_account_id
e payer_billing_account_id
são diferentes. O elemento
billing_account_id
representa a subconta do Cloud Billing.
Para créditos em que type
está definido como RESELLER_MARGIN, esta consulta exclui o valor do crédito. O valor do crédito destina-se à sua atribuição e não é
considerado um custo do cliente. O valor de RESELLER_MARGIN
está incluído no seu custo e refletido nas faturas enviadas pela 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 dados do Google Workspace semelhante ao CSV de faturas
Se for um revendedor do Google Workspace, pode ver os dados de faturação do Google Workspace com colunas semelhantes às dos ficheiros CSV de faturas.
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 adicionar às cláusulas SELECT
e GROUP BY
:
billing_account_id
: representa o ID do Cloud ID do cliente.customer_name
: representa o recurso de cliente que pode ser usado em chamadas de API.channel_partner_name
: (Para distribuidores) Representa o parceiro do canal.entitlement_name
: nome do recurso da concessão nos serviços de canal.customer_correlation_id
: um ID de gestão das relações com clientes (CRM) que pode definir para um cliente.usage.amount
: Para a utilização baseada em postos do Google Workspace, isto indica postos pagos. Por exemplo, lugares comprados para compromissos ou número de lugares atribuídos para subscrições flexíveis.
O resultado da consulta difere da fatura CSV das seguintes formas:
- A coluna "Descrição" do CSV usa uma string legível, enquanto a exportação do BigQuery usa valores de enumeração.
- As colunas "Data de início/fim" do CSV não têm zeros à esquerda (por exemplo, 1 de maio), enquanto a consulta do BigQuery usa valores com zeros à esquerda (por exemplo, 01 de maio). Também pode usar os valores de data/hora diretamente. O elemento
usage_start_time
está incluído, mas o elementousage_end_time
está excluído. - O CSV tem uma única linha "Imposto" no final, enquanto a exportação do BigQuery tem linhas de impostos ao nível da subscrição que somam o mesmo valor que a linha "Imposto" do CSV.
Vista de dados de faturação de encomendas offline semelhante ao PDF da fatura (pré-visualização)
Se for um revendedor que também faz encomendas offline (encomendas que não faz através da Consola de vendas de parceiros), pode ver os dados de faturação com colunas semelhantes às dos ficheiros CSV de faturas.
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 difere da fatura em PDF nos seguintes aspetos:
- Pode converter o valor da data/hora num valor de data no fuso horário "America/Los_Angeles". Tanto o
usage_start_time
como ousage_end_time
são exclusivos. - O PDF tem uma discriminação detalhada dos impostos sobre vendas locais e estaduais, enquanto a exportação do BigQuery tem linhas de impostos ao nível da subscrição que totalizam o valor do imposto para toda a subscrição.