En esta página, se proporciona información de referencia para el esquema de datos de costo de uso estándar de Facturación de Cloud que se exportan a cada tabla en BigQuery.
Esquema de los datos de costo de uso estándar
En el conjunto de datos de BigQuery, los datos de costos de uso estándar de Google Cloud se cargan en una tabla de datos llamada gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
.
En la siguiente información, se describe el esquema de los datos de costo de uso estándar de Google Cloud que se exportan a BigQuery. Contiene la información del uso de costos estándar de la cuenta de Facturación de Cloud, como el ID de la cuenta, la fecha de la factura, los servicios, los SKU, los proyectos, las etiquetas, las ubicaciones, el costo, el uso, los créditos, los ajustes y la moneda.
Cuando uses los datos de costos de uso estándar en BigQuery, ten en cuenta lo siguiente:
- Cuando eliges o creas un conjunto de datos de BigQuery para los datos de costos de uso estándar, puedes elegir cualquier ubicación de conjunto de datos compatible para usarla con datos de Facturación de Cloud.
- Cuando habilitas la exportación de datos de los costos de uso estándar la primera vez en Facturación de Cloud, si eliges un conjunto de datos configurado para usar una ubicación multirregión (EU o US), los datos de Facturación de Cloud estarán disponibles de forma retroactiva desde el comienzo del mes anterior. Los datos se exportan en orden cronológico. En el caso del reabastecimiento inicial de datos exportados, es posible que los datos de la Facturación de Cloud tarden hasta 5 días en terminar de exportarse antes de que empieces a ver los datos de uso más recientes.
- Si habilitas la exportación de datos de los costos de uso estándar y eliges un conjunto de datos configurado para usar una ubicación regional compatible, tus datos de Facturación de Cloud estarán disponibles a partir de la fecha en la que habilitaste la exportación.
- Si habilitaste, inhabilitaste y, luego, vuelves a habilitar la exportación de datos de costos de uso estándar, es posible que los datos de Facturación de Cloud no estén disponibles para el período en el que la exportación de datos se inhabilitó de forma explícita.
- Obtén más información sobre la frecuencia de los datos que se cargan en tus tablas de BigQuery.
- Los datos de costos de uso estándar no incluyen ningún dato de costo a nivel de recurso, como una máquina virtual o SSD que genera un uso de servicios. Si te interesa exportar datos de costos a nivel de recursos a BigQuery para su análisis, considera habilitar la exportación de los datos de costos de uso detallados. Los datos detallados de los costos de uso incluyen todos los campos y la información que contienen los datos de costos de uso estándar.
- Consulta otras limitaciones que podrían afectar la exportación de tus datos de facturación a BigQuery, como los conjuntos de datos con claves de encriptación administradas por el cliente (CMEK) habilitadas.
Campo | Tipo | Descripción |
---|---|---|
billing_account_id |
String | El ID de la cuenta de Facturación de Cloud con el que está asociado el uso. Para los distribuidores: En el caso de los costos de uso generados por una cuenta secundaria de Facturación de Cloud, corresponde al ID de la cuenta secundaria y no al de la cuenta principal de Facturación de Cloud del distribuidor. |
invoice.month |
String | El año y el mes (AAAAMM) de la factura que incluye los elementos de una sola línea del costo. Por ejemplo: “201901” es equivalente a enero de 2019. Puedes usar este campo para obtener los cargos totales en la factura. Consulta Ejemplos de consultas de exportación de la Facturación de Cloud a BigQuery. |
cost_type |
String | Tipo de costo que representa este elemento de una sola línea: regular, impuesto, ajuste o error de redondeo. |
service.id |
String | El ID del servicio con el que se asocia el uso. |
service.description |
String | El servicio de Google Cloud que informó los datos de la Facturación de Cloud. |
sku.id |
String | El ID del recurso que usa el servicio. Para ver la lista completa de SKU, consulta SKU de Google Cloud. |
sku.description |
String | Una descripción del tipo de recurso que usa el servicio. Por ejemplo, un tipo de recurso de Cloud Storage es Standard Storage US. |
usage_start_time |
Marca de tiempo | La hora de inicio del período de uso de una hora en el que se calculó el costo determinado. El uso o el costo de todos los servicios se muestra con un nivel de detalle por hora, lo que significa que el uso prolongado de un servicio se expande en varios períodos de una hora.
Para obtener más información, consulta la documentación de BigQuery sobre los tipos de datos de las marcas de tiempo. También puedes consultar Diferencias entre los datos exportados y las facturas, que se encuentra más adelante. |
usage_end_time |
Marca de tiempo | La hora de finalización del período de uso de una hora en el que se calculó el costo determinado. El uso o el costo de todos los servicios se muestra con un nivel de detalle por hora, lo que significa que el uso prolongado de un servicio se expande en varios períodos de una hora.
Para obtener más información, consulta la documentación de BigQuery sobre los tipos de datos de las marcas de tiempo. También puedes consultar Diferencias entre los datos exportados y las facturas, que se encuentra más adelante. |
project |
Struct | project contiene campos que describen el proyecto de Facturación de Cloud, como el ID, el número, el nombre, los ancestry_numbers y las etiquetas.
|
project.id |
String | El ID del proyecto de Google Cloud que generó los datos de Facturación de Cloud. |
project.number |
String | Un identificador único, generado de forma interna y anonimizado para el proyecto de Google Cloud que generó los datos de Facturación de Cloud. En los casos de asistencia y otras comunicaciones con los clientes, Google hará referencia a tus proyectos con este número de proyecto. |
project.name |
String | El nombre del proyecto de Google Cloud que generó los datos de Facturación de Cloud. |
project.ancestry_numbers |
String | Los principales en la jerarquía de recursos del proyecto que identifica el project.id específico (por ejemplo, my-project-123).Por ejemplo: /ParentOrgNumber/ParentFolderNumber/. Obtén más información sobre la jerarquía de recursos. |
project.ancestors | Struct |
En este campo, se describe la estructura y el valor de la jerarquía de recursos de un elemento de una sola línea del costo, incluidos los proyectos, las carpetas y las organizaciones. Los principales se ordenan del nodo a la raíz (proyecto, carpeta y organización). |
project.ancestors.resource_name | String | El
nombre de recurso relativo de cada principal en el formato “resourceType/resourceNumber”. Si usas project.ancestors.resource_name , se mostrará una vista más completa de project.ancestry_numbers . |
project.ancestors.display_name | String | El nombre que creaste para el recurso en tu consola. |
project.labels.key | String | Si hay etiquetas, la parte de la clave del par clave-valor que incluye la etiqueta en el proyecto de Google Cloud en el que se produjo el uso. Para obtener más información sobre el uso de etiquetas, consulta Usa etiquetas. |
project.labels.value |
String | Si hay etiquetas, la parte del valor del par clave-valor que incluye la etiqueta en el proyecto de Google Cloud en el que se produjo el uso. Para obtener más información sobre el uso de etiquetas, consulta Usa etiquetas. |
labels.key |
String | Si hay etiquetas, la parte de la clave del par clave-valor que incluye la etiqueta en el recurso de Google Cloud en el que se produjo el uso. Para obtener más información sobre el uso de etiquetas, consulta Usa etiquetas. |
labels.value |
String | Si hay etiquetas, la parte del valor del par clave-valor que incluye la etiqueta en el recurso de Google Cloud en el que se produjo el uso. Para obtener más información sobre el uso de etiquetas, consulta Usa etiquetas. |
system_labels.key |
String | Si hay etiquetas del sistema, la parte de la clave del par clave-valor que contiene la etiqueta generada por el sistema en el recurso en el que se produjo el uso. Consulta también Etiquetas del sistema disponibles. |
system_labels.value |
String | Si hay etiquetas del sistema, la parte del valor del par clave-valor que contiene la etiqueta generada por el sistema en el recurso en el que se produjo el uso. Consulta también Etiquetas del sistema disponibles. |
location.location |
String | Ubicación del uso a nivel de una multirregión, un país, una región o una zona; o global para los recursos que no tienen una ubicación específica.
Para obtener más información, consulta Geografía y regiones y Ubicaciones de Google Cloud.
|
location.country |
String | Cuando location.location es un país, una región o una zona, este campo es el país del uso, p. ej., US .
Para obtener más información, consulta Geografía y regiones y Ubicaciones de Google Cloud.
|
location.region |
String | Cuando location.location es una región o una zona, este campo es la región del uso, p. ej., us-central1 .
Para obtener más información, consulta Geografía y regiones y Ubicaciones de Google Cloud.
|
location.zone |
String | Cuando location.location es una zona, este campo es la zona del uso, p. ej., us-central1-a .
Para obtener más información, consulta Geografía y regiones y Ubicaciones de Google Cloud.
|
cost |
Número de punto flotante | El costo de uso antes de cualquier crédito, con una precisión de hasta seis decimales. Para obtener el costo total, incluidos los créditos, se debe agregar cualquier credits.amount al costo.
Visita esta consulta de ejemplo para obtener más información. |
currency |
String | La moneda en la que se factura el costo. Si quieres obtener más información, consulta Moneda local para facturación y pagos. |
currency_conversion_rate |
Número de punto flotante | El tipo de cambio de dólares estadounidenses a la moneda local. Es decir, cost /currency_conversion_rate es el costo en dólares estadounidenses. |
usage.amount |
Número de punto flotante | La cantidad de usage.unit que se usó. |
usage.unit |
String | La unidad base en la que se mide el uso del recurso. Por ejemplo, la unidad base para el almacenamiento estándar es bytes por segundos. |
usage.amount_in_pricing_units
|
Número de punto flotante | La cantidad de usage.pricing_unit que se usó.
|
usage.pricing_unit
|
String | La unidad en la que se mide el uso de recursos según la API del catálogo de Facturación de Cloud. |
credits |
Struct | credits contiene campos que describen la estructura y el valor de los créditos asociados con los SKU de Google Cloud y Google Maps Platform. |
credits.id |
String | Si está presente, indica que un crédito está asociado con el SKU del producto.
Los valores de credits.id pueden ser un identificador único alfanumérico (por ejemplo, 12-b34-c56-d78) o una descripción del tipo de crédito (como 12-b34-c56-d78).
Si el campo |
credits.full_name |
String | El nombre del crédito asociado con el SKU del producto. Esta es una descripción en lenguaje natural de un credits.id alfanumérico.
En los ejemplos se incluyen un crédito de prueba gratuita o un descuento por compromiso de uso basado en el gasto.
Los valores de |
credits.type |
String | En este campo, se describe el propósito o el origen de credits.id .
Entre los tipos de crédito, se incluyen los siguientes:
|
credits.name |
String | Una descripción del crédito aplicado a la cuenta de facturación de Cloud. |
credits.amount |
Número de punto flotante | El importe del crédito aplicado al uso. |
adjustment_info |
Struct | adjustment_info contiene campos que describen la estructura y el valor de un ajuste para los elementos de una sola línea de costos asociados con una cuenta de Facturación de Cloud.Los valores de |
adjustment_info.id |
String | Si está presente, indica que un ajuste está asociado con un elemento de una sola línea del costo. adjustment_info.id es el ID único para todos los ajustes asociados debido a un problema.
|
adjustment_info.description |
String | Una descripción del ajuste y su causa. |
adjustment_info.type |
String | El tipo de ajuste. Se incluyen los siguientes tipos:
|
adjustment_info.mode |
String | Cómo se emitió el ajuste. Se incluyen los siguientes modos:
|
export_time |
Marca de tiempo | Un tiempo de procesamiento asociado con una adición de datos de la Facturación de Cloud.
Este aumentará con cada exportación nueva. También puedes consultar Diferencias entre los datos exportados y las facturas, que se encuentra más adelante. |
tags |
Struct | Campos que describen la etiqueta de política, como clave, valor y espacio de nombres. |
tags.key |
String | El nombre corto o el nombre visible de la clave asociada con esta etiqueta de política en particular. |
tags.value |
String | Los recursos adjuntos a un |
tags.inherited |
Booleano | Indica si una vinculación de etiqueta de política es heredada (etiquetas de política heredadas = verdadero) o directa/no heredada (etiquetas de política heredadas = falso). Puedes crear una vinculación de etiqueta de política a un recurso superior en la jerarquía de recursos. |
tags.namespace |
String | Representa la jerarquía de recursos que define los valores y la clave de la etiqueta de política. El espacio de nombres se puede combinar con los nombres cortos de los valores de etiqueta de política y las claves de etiqueta de política para crear un nombre único a nivel global para la clave o el valor de etiqueta de política. |
cost_at_list |
Número de punto flotante | Los precios de lista asociados con todos los elementos de una sola línea cobrados a tu cuenta de Facturación de Cloud. |
transaction_type |
String | Es el tipo de transacción del vendedor. El tipo de transacción puede ser uno de los siguientes:
|
seller_name |
String | Es el nombre legal del vendedor. |
Comprende los datos de costos de uso estándar y detallados
En las siguientes secciones, se describen los datos estándar y los datos detallados de costos de uso exportados a BigQuery.
Acerca de las etiquetas
Los datos de costos para una etiqueta específica solo muestran el uso a partir de la fecha desde que
la etiqueta se aplicó a un recurso. Por ejemplo, si agregas la etiqueta environment:dev
a una VM de Compute Engine el 15 de enero de 2024, cualquier análisis de
environment:dev
solo incluye el uso de esa VM desde el 15 de enero.
También es posible que veas datos de etiqueta en diferentes momentos para distintos servicios, según cuándo los proporcione cada servicio.
Etiquetas del sistema disponibles
Las etiquetas del sistema son pares clave-valor para metadatos importantes sobre el recurso que generó el uso. Las siguientes etiquetas del sistema se incluyen en el uso aplicable de manera automática.
system_labels.key |
Ejemplo system_labels.value |
Descripción |
---|---|---|
compute.googleapis.com/machine_spec |
n1-standard-1, custom-2-2048 | Configuración de la máquina virtual. Consulta Tipos de máquinas para obtener más información. |
compute.googleapis.com/cores |
Para n1-standard-4 es 4; para custom-2-2048 es 2 | El número de CPU virtuales disponibles para la máquina virtual. |
compute.googleapis.com/memory |
Para n1-standard-4 es 15,360 (es decir, 15 GB * 1,024 MB/GB); para custom-2-2048 es 2,048 | La cantidad de memoria (en MB) disponible para la máquina virtual. |
compute.googleapis.com/is_unused_reservation |
true; false | Indica el uso que se reservó a través de Reservas zonales, pero que no se usó. |
storage.googleapis.com/object_state |
live; noncurrent; soft_deleted; multipart | El estado del objeto de almacenamiento que se cobra. |
Diferencias entre los datos exportados y las facturas
Los servicios de Google Cloud informan los datos de costos y de uso a los procesos de la Facturación de Cloud en intervalos variables. Como resultado, es posible que veas una demora entre el uso que haces de los servicios de Google Cloud y el uso y los costos disponibles para ver en la Facturación de Cloud. Por lo general, los costos están disponibles en un día, pero, a veces, pueden tardar más de 24 horas.
Al final de un mes calendario, es posible que los informes de uso que se retrasaron no se incluyan en la factura de ese mes y, en su lugar, se transfieran a la factura del mes siguiente.
Cuando consultas los costos mediante campos de marca de tiempo, los datos que se muestran pueden incluir datos de uso informados con demora que no estaban en un principio en la factura que se generó para el mismo mes de uso. Como resultado, es posible que los datos de la Facturación de Cloud que se muestran no se asignen directamente a esa factura.
Entre los campos de marca de tiempo se incluyen los siguientes:
usage_start_time
usage_end_time
export_time
Para mostrar los datos de la Facturación de Cloud que se asignan directamente a una factura, haz una consulta en función de invoice.month
y no en función de los campos de marca de tiempo.
Impuestos
A partir del 1 de septiembre de 2020, los datos de costos de uso detallados mostrarán la responsabilidad fiscal de cada uno de tus proyectos, en lugar de aparecer como un elemento de una sola línea. Si tienes consultas o visualizaciones que dependan de los datos fiscales, es posible que debas actualizar las consultas para que reflejen estos cambios.
Por ejemplo, en el caso de los costos registrados antes del 1 de septiembre, tus datos de costos de uso detallados son similares a los del siguiente ejemplo, en el que muestra una responsabilidad fiscal total de $10.
billing_account_id |
project.id |
cost_type |
cost |
---|---|---|---|
123456-ABCDEF-123456 | example-project | Normal | $60 |
123456-ABCDEF-123456 | test-project | Normal | $40 |
123456-ABCDEF-123456 | [empty] | Impuesto | $10 |
En el caso de los costos registrados después del 1 de septiembre, los $10 se desglosan en $6 para example-project
y $4 para test-project
:
billing_account_id |
project.id |
cost_type |
cost |
---|---|---|---|
123456-ABCDEF-123456 | example-project | Normal | $60 |
123456-ABCDEF-123456 | test-project | Normal | $40 |
123456-ABCDEF-123456 | example-project | Impuesto | $6 |
123456-ABCDEF-123456 | test-project | Impuesto | $4 |
Errores y ajustes
En el improbable caso de que los datos de la Facturación de Cloud contengan un error o requieran un ajuste, se agregan datos correctivos. Estos ajustes se clasifican en una de dos categorías: modificaciones o correcciones de facturación.
Modificaciones de facturación
Las modificaciones de facturación aparecen como líneas de pedido independientes. Si recibiste una modificación en la facturación, un elemento de una sola línea nuevo en la exportación de la Facturación de Cloud a BigQuery muestra el cambio. Los ajustes que se muestran corresponden a los documentos de factura, nota de crédito y nota de débito disponibles en el área Documentos de la sección Facturación en la consola de Google Cloud.
Para obtener más información sobre las modificaciones de facturación y cómo se aplican, consulta Comprende las notas y los ajustes.
Correcciones
Las correcciones aparecen como datos nuevos que anulan los datos incorrectos en los SKU de origen. En algunos casos, habrá datos nuevos que reemplazarán el cargo incorrecto. Todas las columnas de la exportación de datos de facturación coincidirán con los datos originales, excepto las siguientes columnas:
cost
credit
usage.amount
export_time
Por ejemplo, imagina que se te cobrarán $10 por el uso de SKU A
el 1 de enero. En tu factura de enero (emitida a principios de febrero), verás un cargo de $10 por SKU A
. Sin embargo, el 2 de febrero, Google Cloud emitió una corrección contra SKU A
, lo que redujo el costo de uso a $5. Recibirás dos elementos de una sola línea adicionales en tu factura de febrero (emitida a principios de marzo):
- -$10 por su uso el 1 de enero (sin incluir el cargo original)
- $5 por el uso el 1 de enero (con el costo previsto)
Estos elementos nuevos tienen una columna adjustment_info
en la exportación de datos de facturación. La factura original de enero, en la que se muestra el sobrecargo, no se ajustará.
Puedes verificar los cargos en la exportación de datos de facturación si visualizas los costos por usage_start_time
y agrupas por Day
.
En estas vistas, se acumulan las correcciones o los cargos por el uso de monetización tardía, y no necesitas preocuparte por los datos incorrectos de forma temporal.
Si deseas obtener información más detallada sobre tus correcciones, consulta todos los cargos de un mes de facturación y busca los cargos en los que se produjo la fecha de uso. antes del mes de facturación. Estos cargos son el resultado de las correcciones o el uso de monetización tardía.
En la siguiente muestra de código, se indica cómo crear una consulta básica que muestre el costo total de las correcciones o el uso de monetización tardía:
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';
En un ejemplo de consulta que muestra un Desglose de costos por servicio, para cargos de factura, en los que la fecha de uso ocurrió antes del mes de facturación, dirígete a Consulta los detalles de los costos para ver las correcciones o el uso de monetización tardía por servicio para un mes de facturación especificado en "Ejemplos de consultas para la exportación de datos de la Facturación de Cloud".
Acerca de los créditos promocionales en los contratos con precios personalizados
Si tienes un contrato de precios personalizados, es posible que recibas créditos promocionales para usar en Google Cloud como parte del contrato. Por ejemplo, puedes recibir $1,000 para usar en los recursos de Compute Engine. Los créditos promocionales se consideran una forma de pago. Si están disponibles, los créditos promocionales se aplican de forma automática para reducir el total de tu factura.
Las condiciones de tu contrato especifican si los créditos promocionales se aplican a los costos calculados al precio de lista de un SKU o al precio neto (después de aplicar descuentos).
Si tus créditos promocionales se aplican a costos que se calculan según el precio
de lista, en el informe de la tabla de costos, hay un servicio llamado Invoice
,
con un SKU llamado Contract billing adjustment
. Este SKU ajusta tus créditos para que se apliquen a los costos al precio de lista. Para ver el uso al que se aplica el ajuste, consulta las columnas system.labels
. La clave en system.labels.key
es cloud-invoice.googleapis.com/sku_id
, y el valor en system.labels.value
contiene el ID del SKU al que se aplicaron el crédito y el ajuste.
Acerca de las etiquetas de política
Las etiquetas son recursos en forma de pares clave-valor que se pueden adjuntar a recursos de forma directa o mediante herencia. Puedes usar etiquetas de política para hacer devoluciones de cargos, auditorías y otros análisis de asignación de costos. Puedes usar etiquetas y la aplicación condicional de políticas para obtener un control detallado de toda la jerarquía de tus recursos.
Las etiquetas tienen un modelo de permisos sólido y pueden admitir la herencia, la administración centralizada, la estandarización de la nomenclatura y la integración de motores de políticas, mientras que las etiquetas son una herramienta independiente que te permite anotar recursos.
Los datos de las etiquetas de política aparecen en las exportaciones de BigQuery para recursos, proyectos, carpetas y organizaciones.
Etiquetas disponibles
Las exportaciones de costos estándar y de costos detallados para recursos, proyectos, carpetas y organizaciones incluyen estos campos para los datos de etiquetas de política: clave de etiquetas de política, valor de etiquetas de política, etiquetas de política heredadas y espacio de nombres de etiquetas.
Las etiquetas a nivel de recurso en la exportación de datos de la Facturación de Cloud están disponibles para los siguientes recursos:
- Clústeres, instancias y copias de seguridad de AlloyDB para PostgreSQL
- Repositorios de Artifact Registry
- Servicios y trabajos de Cloud Run
- Buckets de Cloud Storage
- Instancias de Compute Engine
- Instancias de Memorystore para Redis
- Secretos de Secret Manager
- Instancias de Spanner
Limitaciones de etiquetas
- Las etiquetas de política pueden tardar hasta una hora en propagarse a las exportaciones de BigQuery. Si se agregó o quitó una etiqueta de política en un plazo de una hora o si existe un recurso durante menos de una hora, es posible que no aparezca en la exportación.
Ejemplos de consultas de costos de uso estándar
En esta sección, se proporcionan ejemplos de cómo consultar los datos de costos de uso estándar de Facturación de Cloud exportados a BigQuery.
- Muestra los costos totales en una factura
- Ejemplos de consultas con etiquetas
- Consultas sobre los descuentos por compromiso de uso
- Usa los filtros de la jerarquía de recursos para revisar el principal
- Ejemplos de consulta adicionales
Especifica el nombre de tabla que se usará en tus consultas
En estos ejemplos, para consultar los datos de Facturación de Cloud en BigQuery, debes especificar el nombre de la tabla en la cláusula FROM
. El nombre de la tabla se determina con tres valores: project.dataset.BQ_table_name.
- proyecto es el ID del proyecto de Google Cloud que configuraste que contiene tu conjunto de datos de BigQuery.
- dataset es el nombre del conjunto de datos de BigQuery que configuraste para contener las tablas de BigQuery con tus datos de la Facturación de Cloud.
- BQ_table_name es el nombre de la tabla de BigQuery que contiene los datos exportados de la Facturación de Cloud que deseas consultar.
Hay tres tablas de BigQuery que contienen datos de la Facturación de Cloud:
- Tabla de costos de uso estándar: En tu conjunto de datos de BigQuery, esta tabla se llama
gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
. - Tabla de costos de uso detallados: En tu conjunto de datos de BigQuery, esta tabla se llama
gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
. - Tabla de precios: En tu conjunto de datos de BigQuery, esta tabla se llama
cloud_pricing_export
.
- Tabla de costos de uso estándar: En tu conjunto de datos de BigQuery, esta tabla se llama
Valores comunes usados en las consultas de costo estándar de ejemplo
En los ejemplos de consulta de esta sección, se usa el siguiente valor para nombre de tabla: project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX
Estos ejemplos de consultas también funcionan con los datos detallados de costos exportados a BigQuery, pese a que no se escriben para recuperar información de nivel de recurso que se proporcione con la opción de exportación de costos de uso detallados.
Muestra los costos totales en una factura
En las siguientes consultas, se demuestran dos formas de ver los costos y los valores de crédito mediante datos de facturación exportados.
- El campo
total
suma directamente el costo de punto flotante y los valores de crédito, lo que puede generar errores de redondeo de punto flotante. - El campo
total_exact
convierte los costos y los valores de crédito en micros antes de sumar; luego, los vuelve a convertir a dólares después de la suma y así evita el error de redondeo de punto flotante.
Ejemplo 1: suma de todos los costos, por factura
Esta consulta muestra el total de la factura de cada mes como una suma de costos regulares, impuestos, ajustes y errores de redondeo.
SQL estándar
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 ejemplo, el resultado de la consulta anterior podría ser el siguiente:
Fila | mes | total | total_exact |
---|---|---|---|
1 | 201901 | $1,005.004832999999984 | $1,005.00 |
2 | 201902 | $992.3101739999999717 | $992.31 |
3 | 201903 | $1,220.761089999999642 | $1,220.76 |
Ejemplo 2: visualiza detalles por tipo de costo, por factura mensual
En esta consulta, se muestran los totales de cada cost_type
de cada mes. Los tipos de costos incluyen costos regulares, impuestos, ajustes y errores de redondeo.
SQL estándar
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 ejemplo, el resultado de la consulta anterior podría ser el siguiente:
Fila | mes | cost_type | total | total_exact |
---|---|---|---|---|
1 | 201901 | regular | $1,000.501209987994782 | $1,000.50 |
2 | 201901 | rounding_error | –$0.500489920049387 | –$0.50 |
3 | 201901 | impuesto | $10.000329958477891 | $10.00 |
4 | 201901 | ajuste | –$5.002572999387045 | –$5.00 |
Ejemplos de consultas con etiquetas
En los siguientes ejemplos, se muestran otras maneras de consultar tus datos con etiquetas.
Para los ejemplos de esta sección, supongamos lo siguiente:
- Tienes 2 apps (grapefruit-squeezer y chocolate-masher).
- Para cada app, tienes 2 entornos (dev y prod).
- El entorno dev tiene 1 instancia pequeña por app.
- El entorno prod tiene 1 instancia pequeña en América y 1 instancia pequeña en Asia.
- Cada instancia tiene la etiqueta de la app y el entorno.
- Tienes 1 instancia sin etiqueta que usas para experimentar.
La factura total es de $24 con el siguiente desglose:
Instancia | Etiquetas | Costo total |
---|---|---|
Instancia pequeña con 1 CPU virtual en ejecución en América | Ninguno | $4 |
Instancia pequeña con 1 CPU virtual en ejecución en América | app: chocolate-masher entorno: desarrollo |
$2 |
Instancia pequeña con 1 CPU virtual en ejecución en América | app: grapefruit-squeezer entorno: desarrollo |
$3 |
Instancia pequeña con 1 CPU virtual en ejecución en América | app: chocolate-masher entorno: producción |
$3.25 |
Instancia pequeña con 1 CPU virtual en ejecución en Asia | app: chocolate-masher entorno: producción |
$3.75 |
Instancia pequeña con 1 CPU virtual en ejecución en América | app: grapefruit-squeezer entorno: producción |
$3.50 |
Instancia pequeña con 1 CPU virtual en ejecución en Asia | app: grapefruit-squeezer entorno: producción |
$4.50 |
Consulta cada fila sin agrupar
La manera más detallada de ver estos costos sería consultar cada fila sin agrupar. Supongamos que todos los campos, excepto las etiquetas y la descripción de SKU, son iguales (proyecto, servicio y otros).
SQL estándar
SELECT sku.description, TO_JSON_STRING(labels) as labels, cost as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`;
SQL heredado
TO_JSON_STRING not supported.
Fila | sku.description | etiquetas | costo |
---|---|---|---|
1 | Instancia pequeña con 1 CPU virtual en ejecución en América | [] | $4 |
2 | Instancia pequeña con 1 CPU virtual en ejecución en América | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] | $2 |
3 | Instancia pequeña con 1 CPU virtual en ejecución en América | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] | $3 |
4 | Instancia pequeña con 1 CPU virtual en ejecución en América | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $3.25 |
5 | Instancia pequeña con 1 CPU virtual en ejecución en Asia | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $3.75 |
6 | Instancia pequeña con 1 CPU virtual en ejecución en América | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | $3.50 |
7 | Instancia pequeña con 1 CPU virtual en ejecución en Asia | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | $4.50 |
TOTAL | $24 |
Agrupar por mapa de etiquetas como un Cadena JSON
Esta es una manera rápida y fácil de desglosar los costos por cada combinación de etiquetas.
SQL estándar
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 heredado
TO_JSON_STRING not supported.
Fila | etiquetas | costo |
---|---|---|
1 | [] | $4 |
2 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] | $2 |
3 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] | $3 |
4 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $7 |
5 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | USD 8 |
TOTAL | $24 |
Agrupar por el valor de las etiquetas para una clave específica
Desglosar los costos por valores de una clave de etiqueta específica es un caso práctico común. Si usas LEFT JOIN y pones el filtro de clave en la condición JOIN (en lugar de WHERE), incluyes el costo que no contiene esta clave, por lo que recibes una vista completa de tus costos.
SQL estándar
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 heredado
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;
Fila | entorno | costo |
---|---|---|
1 | prod | $15 |
2 | dev | $5 |
3 | nulo | $4 |
TOTAL | $24 |
Agrupar por pares clave-valor
Ten cuidado cuando interpretes o exportes estos resultados. Cada una de estas filas muestra una suma válida sin conteos duplicados, pero no se debería combinar con otras filas (excepto si la clave es la misma o si tienes certeza de que las claves nunca se configuran en el mismo recurso).
SQL estándar
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 heredado
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;
Fila | clave | valor | costo |
---|---|---|---|
1 | null | nulo | $4 |
2 | app | chocolate-masher | $9 |
3 | app | grapefruit-squeezer | $11 |
4 | entorno | dev | $5 |
5 | entorno | prod | $15 |
TOTAL | $44 |
Ten en cuenta que la suma total es mayor que la de tu factura.
Consultas sobre los descuentos por compromiso de uso
En las siguientes consultas, se demuestran formas de ver las tarifas y los créditos asociados con los descuentos por compromiso de uso en los datos de facturación exportados. Para comprender cómo se atribuyen las tarifas y los créditos de compromiso a la cuenta y los proyectos de Facturación de Cloud, consulta Atribución de descuentos por compromiso de uso.
Visualiza las tarifas de compromiso
Para ver las tarifas por compromiso de los descuentos por compromiso de uso en la exportación de datos de facturación, usa la siguiente consulta de muestra:
SQL estándar
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
Visualiza los créditos de compromiso
Para ver los créditos de descuento por compromiso de uso en la exportación de datos de facturación, usa la siguiente consulta de muestra.
SQL estándar
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
Usa los filtros de la jerarquía de recursos para revisar el principal
Puedes usar filtros de jerarquía de recursos para agregar costos por elementos jerárquicos, como proyectos, carpetas y organizaciones. En estos ejemplos de consulta, se muestran métodos para sumar costos filtrados por elementos de jerarquía de recursos y mostrar los registros del proyecto.
Ejemplo 1: Filtra por nombre de recurso
En este ejemplo, se muestran las consultas que agrupan los costos por principal del proyecto y filtran solo los costos generados en un elemento de jerarquía especificado, identificado por el nombre de recurso relativo.
Método Cadena
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
Ejemplo 2: Filtra por nombre visible
En este ejemplo, se muestran las consultas que agrupan los costos por principal del proyecto y filtran solo los costos generados en un elemento de jerarquía especificado, identificado por el nombre visible proporcionado por el usuario.
Método de coincidencia de Cadena
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
Ejemplos de consultas con etiquetas de política
En los siguientes ejemplos, se ilustran las maneras de consultar tus datos con etiquetas de política.
Calcula los costos por mes de facturación con etiquetas de política
En la siguiente consulta, se demuestra cómo puedes usar los costos de devolución por mes de facturación para la etiqueta de política 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 ejemplo, el resultado de la consulta anterior podría ser el siguiente:
Fila | 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 | personalización | 16.08 |
Visualiza los costos de los recursos sin etiquetar
En esta consulta se muestra el total de la factura de los recursos sin etiquetar, agrupados por mes de facturación.
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 ejemplo, el resultado de la consulta anterior podría ser el siguiente:
Fila | 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 |
Ejemplos de consulta adicionales
Consulta los costos y créditos por proyecto para un mes de facturación especificado
Si proporcionas junio de 2020 como el mes de facturación específico (en el formato AAAAMM), esta consulta mostrará una vista de los costos y créditos agrupados por proyecto junto con las etiquetas de proyecto.
SQL estándar
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 heredado
TO_JSON_STRING not supported.
Fila | 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
Temas relacionados con los datos exportados de la Facturación de Cloud
- Configura la exportación de datos de la Facturación de Cloud a BigQuery
- Ejemplos de consultas para la exportación de datos de Facturación de Cloud a BigQuery
- Visualiza el gasto en el tiempo con Looker Studio
Informes de costos y precios disponibles en la consola de Google Cloud
- Visualiza los informes de Facturación de Cloud y las tendencias de costos.
- Visualiza y descarga los detalles del costo de tu factura o extracto
- Visualiza y descarga los precios de los servicios en la nube de Google
- Obtén información sobre los ahorros con informes de desglose de costos
- Analizar la efectividad de los descuentos por compromiso de uso
- Visualiza el historial de costos y pagos.