Estrutura da exportação de dados de preços

Este documento fornece informações de referência sobre o esquema dos dados de preços do Cloud Billing exportados para cada tabela no BigQuery.

Esquema de dados de preços

No conjunto de dados do BigQuery, os dados de preços da conta de faturamento do Cloud são carregados em uma tabela denominada cloud_pricing_export.

As informações a seguir descrevem o esquema dos dados de preços da conta do Cloud Billing que são exportados para o BigQuery.

Campo Tipo Descrição
export_time Carimbo de data/hora Um tempo de processamento associado a um anexo de dados do Faturamento do Cloud. Ele sempre aumentará com cada nova exportação.
pricing_as_of_time Carimbo de data/hora Os dados de preços aplicáveis à sua conta de faturamento do Cloud são gerados uma vez por dia para prepará-los para a exportação para o BigQuery. Esse é o carimbo de data/hora diário de quando os dados de preço foram gerados.
billing_account_id String O ID da conta de faturamento do Cloud ao qual o preço está associado.
billing_account_name String

O nome da conta de faturamento do Cloud à qual o preço está associado.

business_entity_name String O nome da família de serviços do Google para o serviço que oferece a SKU. Os valores incluem o GCP (Google Cloud) ou o Google Maps (Plataforma Google Maps).
service.id String O ID do serviço do Google Cloud ou da API Plataforma Google Maps que relatou os dados do Faturamento do Cloud. Por exemplo, 6F81-5844-456A.
service.description String A descrição do serviço do Google Cloud ou da API Google Maps Platform que informou os dados do Cloud Billing. Por exemplo, Compute Engine.
sku.id String O identificador exclusivo da SKU do recurso usado pelo serviço. Por exemplo, 2E27-4F75-95CD. Para ver a lista completa de SKUs, consulte SKUs do Google Cloud.
sku.description String Uma descrição legível da SKU do recurso usado pelo serviço. Por exemplo, Núcleo da instância predefinida N1 em execução nas Américas.
sku.destination_migration_mappings Matriz de strings Os nomes dos SKUs de destino para os quais a SKU está sendo migrada.
product_taxonomy Matriz de strings Lista de categorias de produtos que se aplicam à SKU, como sem servidor, Cloud Run, TaskQueue, VMs sob demanda, núcleos: por núcleo e outras.
geo_taxonomy Struct Metadados geográficos que se aplicam à SKU, como regiões e multirregiões, como us-east4, União Europeia.
geo_taxonomy.type String O tipo de metadados geográficos associados à SKU. Os valores válidos são:
  • GLOBAL: não tem regiões.
  • REGIONAL: tem uma região
  • MULTI_REGION: tem duas ou mais regiões
geo_taxonomy.regions Matriz de strings As regiões do Google Cloud associadas à SKU. Por exemplo, Europe-west2 ou US.

Uma região é um lugar geográfico específico, como Londres. Um local multirregional é uma área geográfica grande, como Estados Unidos, que contém dois ou mais lugares geográficos.

pricing_unit String A abreviação da unidade de uso em que o preço é especificado, como GiBy.mo.
pricing_unit_description String A descrição legível da unidade de uso, como mês do gibibyte.
account_currency_code String A moeda em que a conta do Cloud Billing está configurada para operar, usando um código de moeda de três letras definido no ISO 4217. Para mais informações, consulte Moeda local para faturamento e pagamentos automáticos.
currency_conversion_rate String A taxa de câmbio de dólares americanos para a moeda local em que a conta de faturamento do Cloud está configurada para operar. Se a moeda da conta de faturamento do Cloud for o dólar americano, a taxa de troca será padronizada como 1.0.

Se os custos do Cloud Billing forem faturados em uma moeda que não seja o dólar americano, será possível converter os custos de uso para dólar americano usando esta fórmula: cost ÷ currency_conversion_rate = custo do uso em dólar americano.

Quando o Google cobra em moeda local, convertemos os preços para a moeda local aplicável de acordo com as taxas de conversão publicadas pelas principais instituições financeiras. Isso inclui quaisquer sobretaxas coletadas para faturamento em uma moeda que não seja o dólar americano. Usamos as taxas que estão em vigor no pricing_as_of_time.

list_price Struct

O preço de tabela de SKUs do Google Cloud ou da Plataforma Google Maps e níveis de preços da SKU, em vigor desde o pricing_as_of_time.

list_price contém campos que descrevem a estrutura e o valor do preço de lista, incluindo:

Os preços de tabela podem ser encontrados em list_price.tiered_rates.usd_amount

Os dados de preço de tabela são gerados e exportados para todos os clientes. Se sua conta do Cloud Billing tiver preços personalizados e sob contrato específicos da conta de faturamento, eles também serão exportados.

billing_account_price Struct

Se você tiver o preço do contrato, esse será o preço negociado da SKU do contrato vinculado à sua conta do Cloud Billing.

billing_account_price contém campos que descrevem a estrutura e o valor do preço negociado para SKUs do Google Cloud e da Plataforma Google Maps e os níveis de preços da SKU. O billing_account_price inclui:

Os preços contratados, se aplicáveis à sua conta de faturamento do Cloud, podem ser encontrados em billing_account_price.tiered_rates.usd_amount

price_info Struct Informações em segundo plano sobre o preço do contrato.
price_info.price_reason String

Informações em segundo plano sobre a origem do preço do contrato.

As razões incluem:

  • DEFAULT_PRICE: o preço padrão é o atual preço de tabela da SKU.
  • FIXED_PRICE: um preço fixo definido para a SKU aplicável durante os termos do contrato.
  • FIXED_DISCOUNT: porcentagem de desconto no preço de tabela aplicada ao preço de tabela como uma data fixa.
  • FLOATING_DISCOUNT: percentual de desconto sobre o atual preço padrão (não aplicado a um preço de tabela de uma data específica).
  • MIGRATED_PRICE: aplicável a preços migrados de outras SKUs.
  • MERGED_PRICE: preço da SKU após a combinação de várias origens. Por exemplo, com níveis combinados, é possível que cada nível seja de uma origem diferente com tipos de desconto diferentes.
  • LIST_PRICE_AS_CEILING: este é um recurso opcional, disponível para novos contratos depois de 21 de março de 2022. Quando ativo, se o preço de tabela atual cair abaixo do preço fixo personalizado, o preço de tabela (DEFAULT_PRICE) será usado para o preço do SKU. Aplica-se a todas as SKUs de preço fixo no contrato, incluindo FIXED_PRICE, FIXED_DISCOUNT, MIGRATED_PRICE e MERGED_PRICE.
  • CONTRACTED_PRICE_PROTECTION: isso se aplica a SKUs protegidas pelo preço no seu contrato. Isso raramente é usado.
price_info.discount_percent Numérico Para preços de contrato resultantes de um desconto percentual (FIXED_DISCOUNT ou FLOATING_DISCOUNT), essa é a porcentagem do desconto usado.
price_info.discount_percent_fixed_date Data Para preços de contato com um desconto percentual aplicado em uma data específica (FIXED_DISCOUNT), esta é a data usada.
price_info.discount_migrated_from String Para descontos de preços por contrato que foram migrados de outras SKUs (MIGRATED_PRICE), esta é a SKU de origem do desconto. Em alguns casos, quando uma SKU é dividida em duas, o desconto é migrado da SKU antiga para as novas SKUs.
aggregation_info Struct Representa o nível de agregação e o intervalo para os níveis de preços de uma única SKU.
aggregation_info.aggregation_level String O nível em que o uso é somado para calcular o custo dos níveis de preços.

Os níveis incluem:

  • ACCOUNT: indica uma SKU com preços em vários níveis. O uso da SKU para os níveis de preços é agregado em todos os projetos em uma única conta de faturamento do Cloud.
  • PROJECT: indica uma SKU com preços com várias camadas. O uso de SKU para as camadas de preços é agregado por projeto.
  • UNKNOWN_AGGREGATION_LEVEL: indica uma SKU com preços de nível único. Esse é o valor padrão para SKUs com preços que não estão em níveis.
aggregation_info.aggregation_interval String O intervalo em que o uso é somado para calcular o custo dos níveis de preços.

Os intervalos incluem:

  • ONE_DAY: indica uma SKU com preços com vários níveis. O uso da SKU para os níveis de preço é agregado todos os dias.
  • ONE_MONTH: indica uma SKU com preços em várias camadas. O uso da SKU para os níveis de preços é agregado todo mês.
  • UNKNOWN_AGGREGATION_INTERVAL: indica uma SKU com preços de nível único. Esse é o valor padrão para SKUs com preços que não estão em níveis.
tiered_rates Matriz de strings Informações sobre o nível de preços, incluindo o preço da SKU em dólar americano, e o preço da SKU na moeda em que a conta de faturamento do cloud está configurada para uso.

Algumas SKUs têm apenas um nível de preço. Se uma SKU tiver várias camadas de preços, cada uma aparecerá como uma linha diferente. É possível identificar SKUs com vários níveis de preços usando o tiered_rates.start_usage_amount.

tiered_rates.pricing_unit_quantity Ponto flutuante A quantidade da unidade do nível do preço da SKU. Por exemplo, se o preço do nível for de US$ 1 por 1.000.000 de bytes, a coluna mostrará 1.000.000.
tiered_rates.start_usage_amount Ponto flutuante O limite de valor mais baixo para um determinado nível de preço, em unidades de preço. Por exemplo, uma SKU com três níveis de preços, como 0 a 100 unidades, 101 a 1000 unidades e mais de 1001 unidades, exibiria três linhas de preços, com 0, 101 e 1001 como os valores [tiered_rates].start_usage_amount.
tiered_rates.usd_amount Numérico O preço da SKU em dólares americanos.
tiered_rates.account_currency_amount Numérico O preço do nível de SKU convertido de dólar americano para a moeda em que a conta de faturamento do Cloud está configurada para ser usada, com o currency_conversion_rate.

Esse preço convertido é calculado usando a seguinte fórmula: tiered_rates.usd_amount * currency_conversion_rate = tiered_rates.account_currency_amount.

Quando o Google cobra em moeda local, convertemos os preços para a moeda local aplicável de acordo com as taxas de conversão publicadas pelas principais instituições financeiras. Isso inclui quaisquer sobretaxas coletadas para faturamento em uma moeda que não seja o dólar americano. Usamos as taxas que estão em vigor no pricing_as_of_time.

Sobre níveis de preços

Os preços da SKU são oferecidos por níveis de preços. Os níveis de preços fornecem uma estrutura de preços com base em diferentes níveis. Algumas SKUs têm apenas uma única camada de preços, enquanto outras têm várias camadas de preços. Exemplos de SKUs com preços de vários níves incluem o seguinte:

  • SKUs com nível de uso gratuito. Por exemplo: 1 a 1.000 unidades são gratuitas. Mais de 100 mil unidades custam US$ 1,00 cada.
  • SKUs em que o preço por unidade diminui depois que a quantidade de uso em um nível é excedida. Por exemplo: o preço de 1 a 100 unidades é de US$ 5 cada. Já uma quantidade de 101 a 1001 unidades tem o preço de US$ 4 cada, e mais de 1001 unidades custam US$ 3 cada.

Algumas observações sobre preços de vários níveis:

  • O contador de uso de níveis é redefinido como zero com base no aggregation_interval da SKU: diária ou mensal.

    • As SKUs diárias são redefinidas todos os dias às 12h do horário do Pacífico dos EUA e do Canadá (UTC-8 ou UTC-7).
    • As SKUs mensais são redefinidas para zero no primeiro dia de cada mês (por exemplo, janeiro, fevereiro e assim por diante), às 12h do horário do Pacífico dos EUA e do Canadá (UTC-8 ou UTC-7).
  • Os níveis operam de forma independente para cada conta do Cloud Billing e não são somados em várias contas, mesmo que os projetos estejam na mesma organização ou pertençam à mesma entidade legal.

  • As camadas operam com independência por SKU: o uso de uma SKU só afeta o preço dessa SKU. Não há SKUs em que o uso afeta o preço em níveis de outra SKU.

  • É possível que os níveis de preço da SKU dos preços de tabela não estejam alinhados com os preços de preços do contrato. Essa situação é rara.

  • Se uma SKU tiver vários níveis de preços, cada um será listado como uma linha separada na tabela de preços. É possível identificar SKUs com vários níveis de preços usando o tiered_rates.start_usage_amount.

  • Dependendo de como você escreve a consulta, é possível retornar os níveis de preços da SKU como dados aninhados ou não aninhados. Para mais informações sobre dados aninhados e não aninhados, consulte os exemplos a seguir.

Exemplos de consulta de dados de preços

Nesta seção, apresentamos exemplos diferentes de como consultar os dados de preços do Cloud Billing exportados para o BigQuery.

Nesta seção, apresentamos exemplos diferentes de como consultar os dados de preços do Cloud Billing exportados para o BigQuery.

Valores comuns usados nas consultas de preços de exemplo

Os exemplos de consulta nesta seção usam os seguintes valores:

  • Nome da tabela: project.dataset.cloud_pricing_export
  • ID da SKU: 2DA5-55D3-E679 (Cloud Run - Solicitações)

Ver os preços de tabela de uma SKU específica

Este exemplo demonstra uma consulta que retorna o list_price para cada nível de preços de uma SKU especificada.

SQL padrão

SELECT sku.id,  sku.description, list_price.*
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

_PARTITIONTIME é um campo gerado automaticamente pelo BigQuery e representa a data referente aos dados. Em vez de _PARTITIONTIME, é possível usar um campo que a exportação do Cloud Billing gera explicitamente, como pricing_as_of_time.

Esta é a mesma consulta configurada para usar o campo pricing_as_of_time:

SELECT sku.id,  sku.description, list_price.*
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(pricing_as_of_time) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

Resultados da consulta

Linha ID descrição pricing_unit aggregation_info.
aggregation_level
aggregation_info.
aggregation_interval
tiered_rates.
pricing_unit_quantity
tiered_rates.
start_usage_amount
tiered_rates.
usd_amount
tiered_rates.
account_currency_amount
1 2DA5-55D3-E679 Solicitações COUNT CONTA MENSAL 1000000 0 0 0
          1000000 2000000 0,4 0,4

Ver os preços de tabela de uma SKU específica e incluir a descrição do serviço

Os dois exemplos nesta seção demonstram consultas que retornam o list_price para cada nível de preços de uma SKU especificada, além de incluir a descrição da SKU e do serviço.

  • O exemplo 1 retorna uma SKU por linha, com os níveis de preços exibidos como dados aninhados.
  • O exemplo 2 demonstra como desaninhar os dados para retornar uma linha por SKU por nível de preço.

Exemplo 1: retorna dados aninhados

Este exemplo consulta uma única SKU para retornar os dados do list_price. Essa SKU tem vários níveis de preços. Os valores do campo de preço de tabela são exibidos em linhas individuais aninhadas na linha do ID da SKU.

SQL padrão

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       list_price.*
FROM my-billing-admin-project.my_billing_dataset.cloud_pricing_export
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

Resultados da consulta:

Linha sku_id sku_description service_id service_description aggregation_info.
aggregation_level
aggregation_info.
aggregation_interval
tiered_rates.
pricing_unit_quantity
tiered_rates.
start_usage_amount
tiered_rates.
usd_amount
tiered_rates.
account_currency_amount
1 2DA5-55D3-E679 Solicitações 152E-C115-5142 Cloud Run CONTA MENSAL 1000000 0 0 0
            1000000 2000000 0,4 0,4

Exemplo 2: retorna dados não aninhados que foram mesclados com a mesma tabela

Neste exemplo, consultamos uma única SKU para retornar o list price. A SKU tem vários níveis de preços. A consulta demonstra o uso do operador UNNEST para nivelar a matriz de tiered_rates e mesclar os campos com a mesma tabela, o que resulta em uma linha por nível de preço.

SQL padrão

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       tier.*
FROM `my-billing-admin-project.my_billing_dataset.cloud_pricing_export` as sku_pricing, UNNEST (sku_pricing.list_price.tiered_rates) as tier
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

Resultados da consulta:

Linha sku_id sku_description service_id service_description pricing_unit_quantity start_usage_amount usd_amount account_currency_amount
1 2DA5-55D3-E679 Solicitações 152E-C115-5142 Cloud Run 1000000.0 0,0 0,0 0,0
2 2DA5-55D3-E679 Solicitações 152E-C115-5142 Cloud Run 1000000.0 2000000.0 0,4 0,4

Usar a taxonomia do produto e taxonomia geográfica para consultar SKUs

  • A taxonomia do produto é uma lista de categorias de produtos que se aplicam à SKU, como sem servidor, Cloud Run ou VMs sob demanda.
  • Taxonomia geográfica são os metadados geográficos que se aplicam a uma SKU e consiste em valores de tipo e região.

Ver a taxonomia do produto de uma SKU

Este exemplo demonstra uma consulta que retorna a lista product_taxonomy para uma SKU especificada, em que o ID da SKU = 2DA5-55D3-E679 (Cloud Run - Solicitações).

SQL padrão

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       product_taxonomy
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

Resultados da consulta:

Linha sku_id sku_description service_id service_description product_taxonomy
1 2DA5-55D3-E679 Solicitações 152E-C115-5142 Cloud Run GCP
        Sem servidor
        Cloud Run
        Outro

Ver todas as SKUs para uma taxonomia de produto específica

Este exemplo demonstra uma consulta que retorna todas as SKUs que correspondem a um product_taxonomy especificado. Nessa consulta, especificamos Sem servidor como o valor de product taxonomy.

SQL padrão

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       product_taxonomy
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
     AND "Serverless" in UNNEST(product_taxonomy)
LIMIT 10
;

Resultados da consulta:

Linha sku_id sku_description service_id service_description product_taxonomy
1 0160-BD7B-4C40 Saída de intraregião da rede do Cloud Tasks F3A6-D7B7-9BDA Cloud Tasks GCP
        Sem servidor
        Cloud Tasks
        Outro
2 FE08-0A74-7AFD Saída da API GOOGLE do Cloud Tasks F3A6-D7B7-9BDA Cloud Tasks GCP
        Sem servidor
        Cloud Tasks
        Outro
3 A81A-32A2-B46D Armazenamento de fila de tarefas de Salt Lake City F17B-412E-CB64 App Engine GCP
        Sem servidor
        GAE
        Outro
        Fila de tarefas

Ver todas as SKUs de taxonomias geográficas e de produto específicas

Este exemplo demonstra uma consulta que retorna todas as SKUs correspondentes a uma região geo_taxonomy especificada e um product_taxonomy especificado, em que region = us-east4 e product_taxonomy = VMs sob demanda.

SQL padrão

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       geo_taxonomy,
       product_taxonomy
FROM `project.dataset.cloud_pricing_export`
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND "VMs On Demand" in UNNEST(product_taxonomy)
      AND geo_taxonomy.type = "REGIONAL"
      AND "us-east4" in UNNEST (geo_taxonomy.regions)
;

Resultados da consulta:

Linha sku_id sku_description service_id service_description geo_taxonomy.type geo_taxonomy.regions product_taxonomy
1 9174-81EE-425B Premium de locatário única para instância de locatário única em execução na Virgínia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Computação
            GCE
            VMs sob demanda
            Memória: por GB
2 C3B9-E891-85ED RAM da instância de locatário individual em execução na Virgínia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Computação
            GCE
            VMs sob demanda
            Memória: por GB
3 6E2A-DCD9-87ED RAM da instância pré-definida N1 em execução na Virgínia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Computação
            GCE
            VMs sob demanda
            Memória: por GB

Retorna os preços de tabela de uma SKU com vários níveis de preço

Consulte os dados do BigQuery por nome da tabela. O nome da tabela usado na cláusula FROM da consulta é determinado usando três valores: project.dataset.BQ_table_name.

Valores comuns usados nestes exemplos:

  • Nome da tabela: project.dataset.cloud_pricing_export
  • ID da SKU: 2DA5-55D3-E679 (Cloud Run - Solicitações)

Exemplo 1: retorna dados aninhados

Este exemplo consulta uma única SKU para retornar os dados do list_price. Essa SKU tem vários níveis de preços. Os valores do campo de preço de tabela são exibidos em linhas individuais aninhadas na linha do ID da SKU.

SQL padrão

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       list_price.*
FROM my-billing-admin-project.my_billing_dataset.cloud_pricing_export
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

Resultados da consulta:

Linha sku_id sku_description service_id service_description aggregation_info.
aggregation_level
aggregation_info.
aggregation_interval
tiered_rates.
pricing_unit_quantity
tiered_rates.
start_usage_amount
tiered_rates.
usd_amount
tiered_rates.
account_currency_amount
1 2DA5-55D3-E679 Solicitações 152E-C115-5142 Cloud Run CONTA MENSAL 1000000 0 0 0
            1000000 2000000 0,4 0,4

Exemplo 2: retorna dados não aninhados que foram mesclados com a mesma tabela

Neste exemplo, consultamos uma única SKU para retornar o list price. A SKU tem vários níveis de preços. A consulta demonstra o uso do operador UNNEST para nivelar a matriz de tiered_rates e mesclar os campos com o mesma tabela, o que resulta em uma linha por nível de preço.

SQL padrão

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       tier.*
FROM `my-billing-admin-project.my_billing_dataset.cloud_pricing_export` as sku_pricing, UNNEST (sku_pricing.list_price.tiered_rates) as tier
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

Resultados da consulta:

Linha sku_id sku_description service_id service_description pricing_unit_quantity start_usage_amount usd_amount account_currency_amount
1 2DA5-55D3-E679 Solicitações 152E-C115-5142 Cloud Run 1000000.0 0,0 0,0 0,0
2 2DA5-55D3-E679 Solicitações 152E-C115-5142 Cloud Run 1000000.0 2000000.0 0,4 0,4

Relatórios de custos e preços disponíveis no Console do Google Cloud