Exemplos de consultas do BigQuery Export

Esta página mostra 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 este link configurar a exportação de dados do Channel Services para no BigQuery. Para outras dicas de solução de problemas, consulte Resolver problemas com o BigQuery exporta.

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 vejam uma exportação do Channel Services, você precisa aplicar a as permissões corretas. Por exemplo, é possível 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 um exemplo de consulta e uma explicação básica de como os resultados. Os resultados contêm os custos de uso do Google Cloud para cada cliente ou parceiro de canal configurado da Partner Sales Console.

Soma dos custos do parceiro por conta de faturamento

Você pode usar essa consulta para confirmar 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 dos clientes por subconta do Cloud Billing

É possível usar esta 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 os custos de uso. As linhas que representam tributos, ajustes e arredondamento são exibidas um valor null.

Para créditos em que type está definido como RESELLER_MARGIN, o customer_amount é defina como zero para garantir que a margem não seja visível no faturamento do cliente.

Os valores customer_cost e credit.customer_amount mostram mudanças no preço personalizadas. 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. Isso reflete a configuração de redução no custo.

Os resultados desta consulta contêm cada subconta do Cloud Billing, Vendas de parceiros associadas cliente nome, mês da fatura e uso 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 do Cloud Billing, conforme mostrado ao proprietário

Esta consulta mostra como os números do custo de dados se relacionam com o que um cliente de revenda (ou você, como parceiro) vê quando ele abre o console do Google Cloud para subconta.

  1. Para créditos em que type está definido como RESELLER_MARGIN, ele está oculto em Visualização da SPA.
  2. Para custos em que cost_type é referente a tributos, esse valor fica oculto na visualização da conta de administrador. O O revendedor deve adicionar os Tributos aplicáveis separadamente aos faturas.

Ocasionalmente, o valor de cost_at_list pode ser nulo em alguns registros que causam esse resultado diferente do que você vê no console do Google Cloud. Se isso acontecer, use IFNULL(cost_at_list, cost). Para mais informações, consulte Cobranças sem lista custos.

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ê é um distribuidor, pode usar esta consulta para resumir o uso faturável dos para 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, o channel_partner_amount está definido como zero para garantir que a margem não esteja visível no faturamento do parceiro de canal.

Os valores channel_partner_cost e credit.channel_partner_amount mostram Configurações de mudanças de preç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

Use esta consulta para resumir os custos não vinculados a uma conta do Channel Services cliente, mas isso pode representar o uso faturável para 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 está definido como RESELLER_MARGIN, esta consulta exclui o 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 está incluído no seu e refletidos 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ê é revendedor do Google Workspace, pode acessar Dados de faturamento do Google Workspace com colunas semelhantes ao 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,
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 do Cloud Identity do cliente.
  • customer_name: representa o recurso do cliente que pode ser usados em chamadas de API.
  • channel_partner_name: (para distribuidores) representa o parceiro do 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 que você pode definir para um cliente.
  • usage.amount: para o uso do Google Workspace com base em licenças, este indica licenças pagas. Por exemplo, licenças adquiridas para compromissos ou número de licenças por usuário atribuídas para assinaturas flexíveis.

O resultado da consulta e a fatura em CSV têm as seguintes diferenças:

  • A "Descrição" do CSV usa uma string legível por humanos, enquanto a coluna 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). Você pode também usam os valores de carimbo de data/hora diretamente. O usage_start_time é inclusivo, mas o usage_end_time é exclusivo.
  • O CSV tem um único "Tax" no final da linha, enquanto O BigQuery Export tem limites fiscais no nível de assinatura que somar até o mesmo valor do CSV "Imposto" linha