Nesta página, você verá informações de referência sobre o esquema de dados padrão de custo de uso do Cloud Billing que são exportados para cada tabela no BigQuery.
Esquema dos dados de custo de uso padrão
No conjunto de dados do BigQuery, os dados de custo padrão de uso do Google Cloud
são carregados em uma tabela de dados denominada
gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
.
A seguir, descrevemos o esquema dos dados de custo de uso padrão do Google Cloud que são exportados para o BigQuery. Ele contém informações padrão de uso de custo da conta do Cloud Billing, como ID da conta, data da fatura, serviços, SKUs, projetos, rótulos, locais, custo, uso, créditos, ajustes e moeda.
Ao usar os dados padrão de custo de uso no BigQuery, observe o seguinte:
- Ao selecionar ou criar um conjunto de dados do BigQuery para os dados de custo de uso padrão, é possível selecionar qualquer local de conjunto de dados que seja compatível com o uso com os dados do Cloud Billing.
- Ao ativar a exportação de dados padrão de custo de uso pela primeira vez no Cloud Billing, se você selecionar um conjunto de dados configurado para usar um local multirregional , os dados do Cloud Billing (UE ou EUA) ficarão disponíveis retroativamente a partir do início do mês anterior. Os dados são exportados em ordem cronológica. Para a adição retroativa inicial de dados exportados, pode levar até cinco dias para que os dados retroativos do Cloud Billing terminem de exportar antes que você comece a ver os dados de uso mais recentes.
- Se você ativar a exportação de dados padrão de custo de uso e selecionar um conjunto de dados configurado para usar um local regional , seus dados do Cloud Billing ficarão disponíveis a partir da data em que você ativou a exportação.
- Se você ativou, desativou e reativou a exportação de dados padrão de custo de uso, talvez os dados do Cloud Billing podem não estar disponíveis para o período em que a exportação de dados foi explicitamente desativada.
- Saiba mais sobre a frequência dos carregamentos de dados nas tabelas do BigQuery.
- Os dados padrão de custo de uso não incluem dados de custo no nível do recurso, como uma máquina virtual ou SSD que gera o uso do serviço. Se você quiser exportar dados de custo no nível do recurso para análise do BigQuery, considere ativar a exportação de dados detalhados de custo de uso. Os dados detalhados de custo de uso exportados incluem todos os campos e informações contidos nos dados de custo de uso padrão.
- Veja outras limitações que podem afetar a exportação dos seus dados de faturamento para o BigQuery, como conjuntos de dados com chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) ativadas.
Campo | Tipo | Descrição |
---|---|---|
billing_account_id |
String | O ID da Conta de faturamento do Cloud ao qual o uso está associado. Para revendedores: no caso de custos de uso gerados por uma subconta do Cloud Billing, trata-se do ID da subconta (não o ID da conta do Cloud Billing do revendedor pai). |
invoice.month |
String | O ano e o mês (AAAAMM) da fatura que inclui os itens de linha de custo. Por exemplo: "201901" equivale a janeiro de 2019. Use este campo para ver as cobranças totais na fatura. Consulte Exportação do Cloud Billing para exemplos de consulta do BigQuery. |
cost_type |
String | O tipo de custo representado por este item de linha: erro regular, imposto, ajuste ou arredondamento. |
service.id |
String | O código do serviço que está associado ao uso. |
service.description |
String | O serviço do Google Cloud que relatou os dados do Faturamento do Cloud. |
sku.id |
String | O ID do recurso usado pelo serviço. Para ver a lista completa de SKUs, consulte SKUs do Google Cloud. |
sku.description |
String | Uma descrição do tipo de recurso usado pelo serviço. Por exemplo, um tipo de recurso do Cloud Storage é o armazenamento padrão dos EUA. |
usage_start_time |
Carimbo de data/hora | O horário de início da janela de uso por hora em que o custo determinado foi calculado. O uso e os custos de todos os serviços são exibidos com granularidade de hora em hora, o que significa que o uso do serviço de longa duração está distribuído em várias janelas horárias.
Para mais informações, consulte a documentação do BigQuery sobre os tipos de dados de carimbo de data/hora. Consulte também Diferenças entre os dados exportados e as faturas abaixo. |
usage_end_time |
Carimbo de data/hora | O horário de término da janela de uso por hora em que o custo determinado foi calculado. O uso e os custos de todos os serviços são exibidos com granularidade de hora em hora, o que significa que o uso do serviço de longa duração está distribuído em várias janelas horárias.
Para mais informações, consulte a documentação do BigQuery sobre os tipos de dados de carimbo de data/hora. Consulte também Diferenças entre os dados exportados e as faturas abaixo. |
project |
Struct | project contém campos que descrevem o
projeto do Cloud Billing , como ID, number, name, ancestry_numbers
e labels.
|
project.id |
String | O ID do projeto do Google Cloud que gerou os dados do Cloud Billing. |
project.number |
String | Um identificador exclusivo, anônimo e gerado internamente para o projeto do Google Cloud que produziu os dados do Cloud Billing. Nos casos de suporte e em outras comunicações com o cliente, o Google se referirá ao seus projetos com esse número. |
project.name |
String | O nome do projeto do Google Cloud que gerou os dados do Cloud Billing. |
project.ancestry_numbers |
String | Os ancestrais na hierarquia de recursos do projeto identificado por project.id especificado (por exemplo, my-project-123).
Por exemplo: /ParentOrgNumber/ParentFolderNumber/. Saiba mais sobre a Hierarquia de recursos. |
project.ancestors | Struct |
Esse campo descreve a estrutura e o valor da hierarquia de recursos de um item de linha de custo, incluindo projetos, pastas e organizações. Os ancestrais são ordenados do nó para a raiz (projeto, pasta e organização). |
project.ancestors.resource_name | String | O
nome do recurso relativo de cada ancestral no formato "resourceType/resourceNumber". O uso de project.ancestors.resource_name oferecerá uma visualização mais completa de
project.ancestry_numbers . |
project.ancestors.display_name | String | O nome que você criou para o recurso no console. |
project.labels.key | String | Se houver rótulos, é a parte chave no par de chave-valor que compreende o rótulo no projeto do Google Cloud em que ocorreu o uso. Para mais informações sobre o uso de rótulos, consulte Como usar rótulos. |
project.labels.value |
String | Se houver rótulos, é a parte valor no par de chave-valor que compreende o rótulo no projeto do Google Cloud em que ocorreu o uso. Para mais informações sobre o uso de rótulos, consulte Como usar rótulos. |
labels.key |
String | Se houver rótulos, é a parte chave no par de chave-valor que compreende o rótulo no recurso do Google Cloud em que ocorreu o uso. Para mais informações sobre o uso de rótulos, consulte Como usar rótulos. |
labels.value |
String | Se houver rótulos, é a parte valor no par de chave-valor que compreende o rótulo no recurso do Google Cloud em que ocorreu o uso. Para mais informações sobre o uso de rótulos, consulte Como usar rótulos. |
system_labels.key |
String | Se houver rótulos do sistema, é a parte chave no par de chave-valor que compreende o rótulo gerado pelo sistema no recurso onde o uso ocorreu. Consulte também Rótulos do sistema disponíveis. |
system_labels.value |
String | Se houver rótulos do sistema, é a parte valor no par de chave-valor que compreende o rótulo gerado pelo sistema no recurso onde o uso ocorreu. Consulte também Rótulos do sistema disponíveis. |
location.location |
String | Local do uso no nível de um país, multirregião, região ou zona, ou global para recursos que não têm local específico.
Para mais informações, consulte
Geografia e regiões e
Locais do Google Cloud.
|
location.country |
String | Quando location.location é um país, região ou zona, este campo é o país de uso, por exemplo, US .
Para mais informações, consulte
Geografia e regiões e
Locais do Google Cloud.
|
location.region |
String | Quando location.location é uma região ou zona, este campo é
a região de uso, por exemplo, us-central1 .
Para mais informações, consulte
Geografia e regiões e
Locais do Google Cloud.
|
location.zone |
String | Quando location.location é uma zona, este campo é a zona de uso, por exemplo, us-central1-a
Para mais informações, consulte
Geografia e regiões e
Locais do Google Cloud.
|
cost |
Ponto flutuante | O custo do uso antes de qualquer crédito, para uma precisão de até seis casas decimais. Para conseguir o custo total, incluindo os créditos, é preciso incluir credits.amount no custo.
Veja esta consulta de exemplo para mais informações. |
currency |
String | A moeda em que o custo é cobrado. Para mais informações, consulte Moeda local para faturamento e pagamentos. |
currency_conversion_rate |
Ponto flutuante | A taxa de câmbio de dólares americanos para a moeda local. Ou seja, cost /currency_conversion_rate é o custo em dólares americanos. |
usage.amount |
Ponto flutuante | A quantidade de usage.unit usada. |
usage.unit |
String | A unidade base em que o uso do recurso é medido. Por exemplo, a unidade base para armazenamento padrão é byte-segundos. |
usage.amount_in_pricing_units
|
Ponto flutuante | A quantidade de usage.pricing_unit usada.
|
usage.pricing_unit
|
String | A unidade em que o uso de recursos é medido, de acordo com a API Cloud Billing Catalog. |
credits |
Struct | credits contém campos que descrevem a estrutura e o
valor dos créditos associados às SKUs do Google Cloud e da Plataforma Google Maps. |
credits.id |
String | Se presente, indica que um crédito está associado à SKU do produto.
Os valores de credits.id são um identificador alfanumérico exclusivo (por exemplo,
12-b34-c56-d78) ou uma descrição do tipo de crédito (como
Desconto por uso contínuo: CPU).
Se o campo |
credits.full_name |
String | O nome do crédito associado à SKU do produto. Esta é uma
descrição legível de um credits.id alfanumérico.
Por exemplo,
Crédito do teste sem custos financeiros ou
Desconto por compromisso de uso com base em gastos.
Os valores |
credits.type |
String | Este campo descreve a finalidade ou a origem do credits.id .
Os tipos de crédito incluem:
|
credits.name |
String | Uma descrição do crédito aplicado à conta de faturamento do Cloud. |
credits.amount |
Ponto flutuante | Valor do crédito aplicado ao uso. |
adjustment_info |
Struct | adjustment_info contém campos que descrevem a estrutura e o valor de um ajuste nos itens de linha de custo associados a uma conta do Cloud Billing.
Os valores |
adjustment_info.id |
String | Se presente, indica que um ajuste está associado a um item de linha de custo. adjustment_info.id é o ID exclusivo de todos os ajustes associados causados por um problema.
|
adjustment_info.description |
String | A descrição do ajuste e a causa. |
adjustment_info.type |
String | O tipo de ajuste. Os tipos incluem:
|
adjustment_info.mode |
String | Como o ajuste foi emitido. Os modos incluem:
|
export_time |
Carimbo de data/hora | Um tempo de processamento associado a um anexo de dados do Faturamento do Cloud.
Ele sempre aumentará a cada nova exportação. Consulte também Diferenças entre os dados exportados e as faturas abaixo. |
tags |
Struct | Campos que descrevem a tag, como chave, valor e namespace. |
tags.key |
String | É o nome curto ou de exibição da chave associada a essa tag específica. |
tags.value |
String | Os recursos anexados a um |
tags.inherited |
Booleano | Indica se uma vinculação de tag foi herdada (tags herdadas = True) ou diretas/não herdadas (tags herdadas = False). É possível criar uma vinculação de tag para um recurso pai na hierarquia de recursos. |
tags.namespace |
String | Representa a hierarquia de recursos que define valores e chaves de tags. O namespace pode ser combinado com nomes curtos de chave de tag e valor de tag para criar um nome globalmente exclusivo e totalmente qualificado para a chave de tag ou o valor de tag. |
cost_at_list |
Ponto flutuante | Os preços de tabela associados a todos os itens de linha cobrados da sua conta do Cloud Billing. |
transaction_type |
String | O tipo de transação do vendedor. O tipo de transação pode ser um dos seguintes:
|
seller_name |
String | A razão social do vendedor. |
Entender os dados de custo de uso padrão e detalhados
As seções a seguir descrevem os dados de custo de uso padrão e detalhados exportados para o BigQuery.
Sobre os rótulos
Os dados de custo de um rótulo específico mostram o uso a partir da data em que o rótulo
foi aplicado a um recurso. Por exemplo, se você adicionar o rótulo environment:dev
a uma VM do Compute Engine em 15 de janeiro de 2024, qualquer análise de
environment:dev
incluirá apenas o uso dessa VM desde 15 de janeiro.
Também é possível ver os dados dos rótulos em momentos diferentes para serviços diferentes, dependendo de quando cada serviço fornece esses dados.
Rótulos do sistema disponíveis
Os rótulos do sistema são pares de chave-valor para metadados importantes sobre o recurso que gerou o uso. Os seguintes rótulos de sistema são automaticamente incluídos no uso aplicável.
system_labels.key |
Exemplo de system_labels.value |
Descrição |
---|---|---|
compute.googleapis.com/machine_spec |
n1-standard-1, custom-2-2048 | Configuração da máquina virtual. Consulte Tipos de máquina para mais informações. |
compute.googleapis.com/cores |
para n1-standard-4 é 4. Para custom-2-2048 é 2 | O número de vCPUs disponíveis para a máquina virtual. |
compute.googleapis.com/memory |
para n1-standard-4 é 15360 (isto é, 15 GB * 1024 MB/GB), para custom-2-2048 é 2048 | A quantidade de memória (em MB) disponível para a máquina virtual. |
compute.googleapis.com/is_unused_reservation |
true; false | Indica o uso que foi reservado por meio de Reservas de zona, mas não usado. |
Diferenças entre os dados exportados e as faturas
Os produtos do Google Cloud informam dados de uso e custo para processos do Cloud Billing em intervalos variados. Como resultado, pode haver um atraso entre o uso dos serviços do Google Cloud e a disponibilização do uso e dos custos para visualização no Cloud Billing. Normalmente, os custos ficam disponíveis em um dia, mas às vezes podem demorar mais de 24 horas.
No final de um mês, é possível que o uso informado com atraso não esteja incluído na fatura desse mês e, em vez disso, passe para a fatura do mês seguinte.
Quando você consulta seus custos usando campos de carimbo de data/hora, os dados retornados podem identificar o uso informado posteriormente que não foi incluído originalmente na fatura gerada para o mesmo mês de uso. Consequentemente, os dados do Faturamento do Cloud retornados podem não ser mapeados diretamente para essa fatura.
Os campos do carimbo de data/hora incluem:
usage_start_time
usage_end_time
export_time
Para retornar dados do Faturamento do Cloud que mapeia diretamente para uma fatura, consulte invoice.month
em vez dos campos de carimbo de data/hora.
Impostos
A partir de 1º de setembro de 2020, os dados de custo diário mostrarão a garantia de impostos de cada um dos seus projetos, em vez de um único item de linha. Se você tiver consultas ou visualizações que dependem de dados fiscais, talvez seja necessário atualizar as consultas para considerar essas alterações.
Por exemplo, para os custos registrados antes de 1º de setembro, os dados de custo de uso são semelhantes aos exemplos a seguir, que mostram uma responsabilidade total de impostos de US$ 10.
billing_account_id |
project.id |
cost_type |
cost |
---|---|---|---|
123456-ABCDEF-123456 | projeto-exemplo | Normal | US$ 60 |
123456-ABCDEF-123456 | projeto-teste | Normal | US$ 40 |
123456-ABCDEF-123456 | [vazio] | Imposto | US$ 10 |
Nos custos registrados após 1º de setembro, os US$ 10 são divididos em US$ 6 para
example-project
e US$ 4 para test-project
:
billing_account_id |
project.id |
cost_type |
cost |
---|---|---|---|
123456-ABCDEF-123456 | projeto-exemplo | Normal | US$ 60 |
123456-ABCDEF-123456 | projeto-teste | Normal | US$ 40 |
123456-ABCDEF-123456 | projeto-exemplo | Imposto | US$ 6 |
123456-ABCDEF-123456 | projeto-teste | Imposto | US$ 4 |
Erros e ajustes
No caso raro de os dados do Cloud Billing conterem um erro ou precisarem de um ajuste, eles serão anexados com dados corretivos. Esses ajustes se enquadram em uma destas duas categorias: correções ou modificações de faturamento.
Modificações de faturamento
As modificações de faturamento aparecem como itens de linha separados. Se você recebeu uma modificação de faturamento, um novo item de linha na exportação do Cloud Billing para o BigQuery vai mostrar a alteração. Os ajustes mostrados correspondem aos documentos da fatura, nota de crédito e nota de débito disponíveis na área Documentos da seção Faturamento no console do Google Cloud.
Para mais informações sobre modificações de faturamento e como elas são aplicadas, consulte Noções básicas sobre notas e ajustes.
Correções
As correções aparecem como novos dados que negam dados incorretos nas SKUs de origem. Em alguns casos, novos dados substituem a cobrança incorreta. Todas as colunas na exportação de dados de faturamento corresponderão aos dados originais, exceto as seguintes:
cost
credit
usage.amount
export_time
Por exemplo, imagine que você recebeu uma cobrança de R $10 pelo uso do SKU A
em 1o de janeiro. Na sua fatura de janeiro (emitida no início de fevereiro), você verá uma cobrança de US $10 para SKU A
. No entanto, em 2 de fevereiro, o Google Cloud emitiu uma correção para o SKU A
, reduzindo o custo de uso para US $5. Você receberá dois itens de linha adicionais na sua fatura de fevereiro (emitida no início de março):
- - US$ 10 pelo uso em 1o de janeiro (negando a cobrança original)
- US$ 5 para uso em 1o de janeiro (informando a cobrança pretendida)
Esses novos itens têm uma coluna adjustment_info
na exportação de dados de faturamento. A fatura original de janeiro, que mostra a cobrança a mais, não será ajustada.
Para verificar as cobranças na exportação de dados de faturamento, confira seus custos por usage_start_time
e agrupe por Day
.
Nessas visualizações, todas as correções ou cobranças pelo uso com monetização atrasada são acumuladas, e você não precisa se preocupar com dados temporariamente incorretos.
Se você quiser informações mais detalhadas sobre as correções, veja todas as cobranças em um mês de fatura e procure cobranças em que a data de uso ocorreu. antes do mês da fatura. Essas cobranças são resultado de correções ou de uso com monetização tardia.
O exemplo de código a seguir mostra como criar uma consulta básica que retorna o custo total das correções ou do uso monetizado com atraso:
SELECT
SUM(cost)
+ SUM(IFNULL((SELECT SUM(c.amount)
FROM UNNEST(credits) c), 0))
AS total
FROM `project.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX`
WHERE
invoice.month = '202311' AND
DATE(TIMESTAMP_TRUNC(usage_start_time, Day, 'US/Pacific')) < '2023-11-01';
Para conferir um exemplo de consulta que retorna um detalhamento de custos por serviço para cobranças de fatura em que a data de uso ocorreu antes do mês da fatura, consulte Consultar detalhes de custo para conferir correções ou uso monetizado com atraso por serviço em um mês específico da fatura em "Exemplos de consultas de exportação de dados do Cloud Billing".
Sobre créditos promocionais em contratos de preços personalizados
Se você tiver um contrato de preços personalizados, poderá receber créditos promocionais para usar no Google Cloud como parte do contrato. Por exemplo, você pode receber US $1.000 para usar nos recursos do Compute Engine. Os créditos promocionais geralmente são considerados uma forma de pagamento. Quando estiverem disponíveis, os créditos promocionais serão gastos automaticamente a fim de reduzir sua fatura total.
Os termos do seu contrato especificam se os créditos promocionais se aplicam aos custos calculados com o preço de tabela de uma SKU ou o preço líquido (após os descontos).
Se os créditos promocionais se aplicarem a custos calculados no preço de tabela, no relatório da tabela de custos, há um serviço chamado Invoice
, com uma SKU chamada Contract billing adjustment
. Essa SKU ajusta seus créditos para que sejam aplicadas aos custos no preço de tabela. Para ver o uso a que o ajuste se destina, consulte as colunas system.labels
. A chave em system.labels.key
é cloud-invoice.googleapis.com/sku_id
, e o valor em system.labels.value
contém o ID da SKU a que o crédito e o ajuste se aplicam.
Sobre as tags
Tags são recursos na forma de pares de chave-valor que podem ser anexados a recursos diretamente ou por meio de herança. Use as tags para executar estornos, auditorias e outras análises de alocação de custos. Use as tags e a aplicação condicional de políticas para ter um controle detalhado sobre toda a hierarquia de recursos.
As tags têm um modelo de permissões robusto e podem oferecer suporte a herança, gerenciamento centralizado, padronização de nomenclatura e integração do mecanismo de políticas, enquanto os rótulos são uma ferramenta separada que permite anotar recursos. ,
Os dados de tags aparecem nas exportações do BigQuery para recursos, projetos, pastas e organizações.
Tags disponíveis
As exportações de Custos padrão e Custos detalhados para recursos, projetos, pastas e organizações incluem estes campos para os dados de tags: chaves de tags, valor de tags, tags herdadas e namespace de tags.
As tags no nível do recurso na exportação de dados do Cloud Billing estão disponíveis para os seguintes recursos:
- Instâncias do Compute Engine
- Buckets do Cloud Storage
- Instâncias do Spanner
- Serviços e jobs do Cloud Run
- Repositórios do Artifact Registry
- Instâncias do Memorystore para Redis
Limitações das tags
- As tags podem levar até uma hora para serem propagadas para as exportações do BigQuery. Se uma tag tiver sido adicionada ou removida em uma hora, ou se um recurso existir por menos de uma hora, talvez ela não apareça na exportação.
Exemplos de consulta de custo de uso padrão
Nesta seção, você verá exemplos sobre como consultar os dados de custo de uso padrão do Cloud Billing exportados para o BigQuery.
- Retornar os custos totais em uma fatura
- Exemplos de consultas com rótulos
- Consultas de desconto por uso contínuo
- Usar filtros de hierarquia de recursos para analisar a ancestralidade
- Outros exemplos de consulta
Como especificar o nome da tabela a ser usado nas consultas
Nestes exemplos, para consultar os dados do Cloud Billing no
BigQuery, é preciso especificar o nome da tabela na
cláusula FROM
. O nome da tabela é determinado usando três valores:
project.dataset.BQ_table_name.
- projeto é o ID do projeto do Google Cloud configurado que contém o conjunto de dados do BigQuery.
- dataset é o nome do conjunto de dados do BigQuery configurado para conter as tabelas do BigQuery com os dados exportados do Cloud Billing.
- BQ_table_name é o nome da
tabela do BigQuery
que contém os dados exportados do Cloud Billing que você quer consultar.
Há três tabelas do BigQuery que contêm
os dados do Cloud Billing:
- Tabela de custos de uso padrão:
no conjunto de dados do BigQuery, essa tabela
é denominada
gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
. - Tabela de custo de uso detalhado:
no conjunto de dados do BigQuery, essa tabela é denominada
gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
. - Tabela de preços:
no conjunto de dados do BigQuery, ela denominada
cloud_pricing_export
.
- Tabela de custos de uso padrão:
no conjunto de dados do BigQuery, essa tabela
é denominada
Valores comuns usados nas consultas de custo padrão de exemplo
Os exemplos de consulta nesta seção usam o seguinte valor para Nome da tabela: project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX
Esses exemplos de consulta também funcionam com os dados detalhados de custo de uso exportados para o BigQuery, embora não sejam gravados para recuperar qualquer informação no nível do recurso fornecida com isso opção detalhada de exportação de custo de uso.
Retornar os custos totais em uma fatura
Nas consultas a seguir, demonstramos duas maneiras de visualizar valores de custo e crédito usando dados de faturamento exportados.
- O campo
total
soma diretamente o custo de ponto flutuante e os valores de crédito, o que pode acarretar erros de arredondamento de ponto flutuante. - O campo
total_exact
converte custos e valores de crédito em micros antes de somar, depois reconverte para dólares após a soma, o que evita o erro de arredondamento de ponto flutuante.
Exemplo 1: soma de todos os custos, por fatura
Essa consulta mostra o total da fatura de cada mês, como uma soma de custos regulares, impostos, ajustes e erros de arredondamento.
SQL padrão
SELECT invoice.month, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total, (SUM(CAST(cost * 1000000 AS int64)) + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64)) FROM UNNEST(credits) c), 0))) / 1000000 AS total_exact FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1 ORDER BY 1 ASC ;
Por exemplo, o resultado da consulta anterior pode ser:
Linha | mês | total | total_exact |
---|---|---|---|
1 | 201901 | US$ 1005,004832999999984 | US$ 1005,00 |
2 | 201902 | US$ 992,3101739999999717 | US$ 992,31 |
3 | 201903 | US$ 1220,761089999999642 | US$ 1220,76 |
Exemplo 2: retornar detalhes por tipo de custo, por mês da fatura
Nesta consulta, mostramos os totais de cada cost_type
para cada mês. Os tipos de custos incluem custos regulares, tributos, ajustes e erros de arredondamento.
SQL padrão
SELECT invoice.month, cost_type, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total, (SUM(CAST(cost * 1000000 AS int64)) + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64)) FROM UNNEST(credits) c), 0))) / 1000000 AS total_exact FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1, 2 ORDER BY 1 ASC, 2 ASC ;
Por exemplo, o resultado da consulta anterior pode ser:
Linha | mês | cost_type | total | total_exact |
---|---|---|---|---|
1 | 201901 | regular | US$ 1000,501209987994782 | US$ 1000,50 |
2 | 201901 | rounding_error | –US$ 0,500489920049387 | –US$ 0,50 |
3 | 201901 | Tributo | US$ 10,000329958477891 | US$ 10,00 |
4 | 201901 | ajuste | –US$ 5,002572999387045 | –US$ 5,00 |
Exemplos de consultas com rótulos
Os exemplos a seguir ilustram outras maneiras de consultar dados com rótulos.
Para os exemplos nesta seção, pressuponha o seguinte:
- Você tem 2 aplicativos (grapefruit-squeezer e chocolate-masher).
- Para cada aplicativo, você tem 2 ambientes: desenvolvimento (dev) e produção (prod).
- O ambiente de desenvolvimento tem uma pequena instância por aplicativo.
- O ambiente de produção tem uma pequena instância nas Américas e uma pequena instância na Ásia.
- Cada instância é rotulada com o aplicativo e o ambiente.
- Você tem 1 instância sem rótulos utilizada para testes.
Sua conta total é de US$ 24, detalhada da seguinte maneira:
Instância | Rótulos | Custo total |
---|---|---|
Pequena instância com uma vCPU em execução nas Américas | Nenhum | US$ 4 |
Pequena instância com uma vCPU em execução nas Américas | app: chocolate-masher ambiente: dev |
US$ 2 |
Pequena instância com uma vCPU em execução nas Américas | app: grapefruit-squeezer ambiente: dev |
US$ 3 |
Pequena instância com uma vCPU em execução nas Américas | app: chocolate-masher ambiente: prod |
US$ 3,25 |
Pequena instância com uma vCPU em execução na Ásia | app: chocolate-masher ambiente: prod |
US$ 3,75 |
Pequena instância com uma vCPU em execução nas Américas | app: grapefruit-squeezer ambiente: prod |
US$ 3,50 |
Pequena instância com uma vCPU em execução na Ásia | app: grapefruit-squeezer ambiente: prod |
US$ 4,50 |
Consultar cada linha sem agrupar
A visão mais granular desses custos seria consultar cada linha sem agrupar. Suponha que todos os campos, exceto os rótulos e a descrição do SKU, sejam os mesmos (projeto, serviço etc.).
SQL padrão
SELECT sku.description, TO_JSON_STRING(labels) as labels, cost as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`;
SQL legado
TO_JSON_STRING not supported.
Linha | sku.description | rótulos | custo |
---|---|---|---|
1 | Pequena instância com uma vCPU em execução nas Américas | [] | US$ 4 |
2 | Pequena instância com uma vCPU em execução nas Américas | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] | US$ 2 |
3 | Pequena instância com uma vCPU em execução nas Américas | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] | US$ 3 |
4 | Pequena instância com uma vCPU em execução nas Américas | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | US$ 3,25 |
5 | Pequena instância com uma vCPU em execução na Ásia | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | US$ 3,75 |
6 | Pequena instância com uma vCPU em execução nas Américas | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | US$ 3,50 |
7 | Pequena instância com uma vCPU em execução na Ásia | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | US$ 4,50 |
TOTAL | US$ 24 |
Agrupar por mapa de rótulos como uma string JSON
Esta é uma maneira rápida e fácil de detalhar os custos por combinação de rótulos.
SQL padrão
SELECT TO_JSON_STRING(labels) as labels, sum(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY labels;
SQL legado
TO_JSON_STRING not supported.
Linha | rótulos | custo |
---|---|---|
1 | [] | US$ 4 |
2 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] | US$ 2 |
3 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] | US$ 3 |
4 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | US$ 7 |
5 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | US$ 8 |
TOTAL | US$ 24 |
Agrupar pelo valor do rótulo de uma chave específica
Detalhar custos para valores de uma chave de rótulo específica é um caso de uso comum. Usando um LEFT JOIN e colocando o filtro de chave na condição JOIN (em vez de WHERE), você inclui um custo que não contém essa chave e, assim, recebe uma visão completa dos custos.
SQL padrão
SELECT labels.value as environment, SUM(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(labels) as labels ON labels.key = "environment" GROUP BY environment;
SQL legado
SELECT labels.value as environment, SUM(cost) as cost FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX] WHERE labels.key = "environment" OR labels.key IS NULL GROUP BY environment;
Linha | ambiente | custo |
---|---|---|
1 | prod | US$ 15 |
2 | dev | US$ 5 |
3 | null | US$ 4 |
TOTAL | US$ 24 |
Agrupar por pares de chave/valor
Tenha cuidado ao interpretar ou exportar esses resultados. Uma linha individual neste caso mostra uma soma válida sem contagem dupla, mas não deve ser combinada com outras linhas (exceto, possivelmente, se a chave for a mesma ou se você estiver certo de que as chaves nunca são definidas no mesmo recurso).
SQL padrão
SELECT labels.key as key, labels.value as value, SUM(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(labels) as labels GROUP BY key, value;
SQL legado
SELECT labels.key as key, labels.value as value, SUM(cost) FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX] GROUP BY key, value;
Linha | chave | valor | custo |
---|---|---|---|
1 | null | null | US$ 4 |
2 | app | chocolate-masher | US$ 9 |
3 | app | grapefruit-squeezer | US$ 11 |
4 | ambiente | dev | US$ 5 |
5 | ambiente | prod | US$ 15 |
TOTAL | US$ 44 |
Observe que a soma total é maior que sua fatura.
Consultas de desconto por uso contínuo
As consultas a seguir demonstram maneiras de visualizar as taxas e os créditos associados aos descontos por uso contínuo nos dados de faturamento exportados. Para entender como as taxas e os créditos de compromisso são atribuídos à sua conta e aos projetos do Cloud Billing, consulte Atribuição de descontos por uso contínuo.
Como visualizar taxas de compromisso
Para visualizar as taxas de compromisso dos descontos por uso contínuo na exportação de dados de faturamento, use a consulta de amostra a seguir.
SQL padrão
SELECT invoice.month AS invoice_month, SUM(cost) as commitment_fees FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` WHERE LOWER(sku.description) LIKE "commitment%" GROUP BY 1
Como visualizar créditos de compromisso
Para visualizar créditos de desconto por uso contínuo na exportação dos dados de faturamento, use a seguinte consulta de amostra.
SQL padrão
SELECT invoice.month AS invoice_month, SUM(credits.amount) as CUD_credits FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(credits) AS credits WHERE LOWER(credits.name) LIKE "committed use discount%" GROUP BY 1
Usar filtros de hierarquia de recursos para analisar a ancestralidade
Os filtros de hierarquia de recursos podem ser usados para agregar custos por elementos de hierarquia, como projetos, pastas e organizações. Estes exemplos de consulta mostram métodos para somar os custos filtrados por elementos da hierarquia de recursos e exibir as ancestralidades do projeto.
Exemplo 1: filtrar por nome de recurso
Este exemplo demonstra consultas que agrupam custos por ancestralidade do projeto e filtram apenas os custos gerados em um elemento de hierarquia especificado, identificado pelo nome do recurso relativo.
Método de string
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq WHERE TO_JSON_STRING(project.ancestors) like "%resource_name\":\"folders/1234" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Método UNNEST
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor WHERE ancestor.resource_name = "folders/1234" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Exemplo 2: filtrar por nome de exibição
Este exemplo demonstra consultas que agrupam custos por ancestralidade do projeto e filtram apenas os custos gerados em um elemento de hierarquia especificado, identificado pelo nome de exibição fornecido pelo usuário.
Método de correspondência de strings
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq WHERE TO_JSON_STRING(project.ancestors) like "%display_name\":\"MyFolderName%" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Método UNNEST
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor WHERE ancestor.display_name = "MyFolderName" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Exemplos de consultas com tags
Os exemplos a seguir ilustram formas de consultar seus dados com tags.
Calcular custos por mês da fatura com tags
A consulta a seguir demonstra como usar os custos de devolução por mês da fatura
da tag cost_center
.
SELECT invoice.month AS invoice_month, tag.value AS cost_center, ROUND((SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM (CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))), 2) AS net_cost FROM `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX`, UNNEST(tags) AS tag WHERE tag.key = "cost_center" AND tag.namespace = "821092389413" GROUP BY invoice.month, tag.value ORDER BY invoice.month, tag.value;
Por exemplo, o resultado da consulta anterior pode ser:
Linha | invoice_month | cost_center | net_cost |
---|---|---|---|
1 | 202208 | android_mobile_apps | 9.93 |
2 | 202208 | ios_mobile_apps | 9.93 |
3 | 202209 | android_mobile_apps | 25.42 |
4 | 202209 | ios_mobile_apps | 25,4 |
5 | 202209 | personalização | 16.08 |
Ver os custos dos recursos sem tags
Essa consulta mostra o total da fatura para recursos sem tag, agrupados por mês da fatura.
SELECT invoice.month AS invoice_month, ROUND((SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))), 2) AS net_cost FROM `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` WHERE "color" NOT IN (SELECT key FROM UNNEST(tags)) GROUP BY invoice_month ORDER BY invoice_month;
Por exemplo, o resultado da consulta anterior pode ser:
Linha | invoice_month | net_cost |
---|---|---|
1 | 202202 | 0 |
2 | 202203 | 16.81 |
3 | 202204 | 54.09 |
4 | 202205 | 55.82 |
5 | 202206 | 54.09 |
6 | 202207 | 55.83 |
7 | 202208 | 31.49 |
Outros exemplos de consulta
Consultar custos e créditos por projeto de um mês específico da fatura
Se você fornecer o mês de fatura específico de junho de 2020 (no formato AAAAMM), essa consulta retornará uma visualização dos custos e créditos agrupados por projeto, além de mostrar rótulos de projeto.
SQL padrão
SELECT project.name, TO_JSON_STRING(project.labels) as project_labels, sum(cost) as total_cost, SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) as total_credits FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` WHERE invoice.month = "202006" GROUP BY 1, 2 ORDER BY 1;
SQL legado
TO_JSON_STRING not supported.
Linha | name | project_labels | total_cost | total_credits |
---|---|---|---|---|
1 | CTG - Dev | [{"key":"ctg_p_env","value":"dev"}] | 79.140979 | -4,763796 |
2 | CTG - Prod | [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"eng"}] | 32.466272 | -3,073356 |
3 | CTG - Sandbox | [{"key":"ctg_p_env","value":"dev"}] | 0 | 0 |
4 | CTG - Storage | [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"data"}] | 7.645793 | -0,003761 |
Temas relacionados
Tópicos relacionados aos dados exportados do Cloud Billing
- Configurar a exportação de dados do Cloud Billing para o BigQuery
- Exemplo de consultas para a exportação de dados do Faturamento do Cloud para o BigQuery
- Visualizar gastos ao longo do tempo com o Looker Studio
Relatórios de custos e preços disponíveis no Console do Google Cloud
- Visualizar relatórios do Faturamento do Cloud e tendências de custo
- Visualizar e fazer o download dos detalhes de custo da fatura ou do extrato
- Visualizar e fazer o download dos preços dos serviços de nuvem do Google
- Noções básicas sobre o valor economizado com os relatórios de detalhamento de custos
- Analisar a eficácia dos descontos por uso contínuo
- Ver o histórico de custos e pagamentos