Estructura de la exportación de datos estándar

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.id está vacío, el SKU del producto no está asociado con un crédito.

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.full_name solo están presentes para los SKU con alfanuméricos credits.id. Si el valor de credits.id es una descripción del tipo de crédito (como Descuento por compromiso de uso: CPU), el campo credits.full_name estará vacío.

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:
  • COMMITTED_USAGE_DISCOUNT: Contratos de compromiso de uso basados en recursos comprados para Compute Engine a cambio de descuentos considerables en los precios por el uso de VM.
  • COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE: Contratos de compromiso de uso basados en gastos adquiridos por servicios a cambio de su compromiso para invertir un importe mínimo.
  • DISCOUNT: El tipo de crédito de descuento se usa para los créditos que se obtienen después de alcanzar un límite de gastos contractual. Ten en cuenta que, en los informes de Facturación de Cloud disponibles en la consola de Google Cloud, el tipo de crédito de descuento se muestra como Descuentos basados en gastos (contrato).
  • FREE_TIER: Algunos servicios ofrecen uso de recursos gratuitos hasta los límites especificados. En estos servicios, se aplican créditos para implementar el uso del nivel gratuito.
  • PROMOTION: El tipo de crédito promocional incluye la prueba gratuita de Google Cloud y los créditos de la campaña de marketing o algún otro otorgamiento para usar Google Cloud. Cuando están disponibles, estos créditos se consideran una forma de pago y se aplican de forma automática para reducir el total de tu factura.
  • RESELLER_MARGIN: Si eres un distribuidor, el tipo de crédito de margen del distribuidor indica los descuentos del programa para distribuidores ganados en cada elemento de una sola línea apto.
  • SUBSCRIPTION_BENEFIT: Son los créditos que se obtienen mediante la compra de suscripciones a largo plazo a los servicios a cambio de descuentos.
  • SUSTAINED_USAGE_DISCOUNT: El tipo de crédito de descuento por uso continuo es un descuento automático que obtienes por ejecutar recursos de Compute Engine específicos en una parte significativa de la facturación mensual.
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 solo están presentes si el elemento de una sola línea del costo se generó para una modificación de la Facturación de Cloud. Puede suceder una modificación por motivos de corrección o falta de corrección. El tipo adjustment_info contiene detalles sobre el ajuste, si se emitió para corregir un error o por otros motivos.

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:

  • USAGE_CORRECTION: Una corrección debido a un uso incorrecto informado.
  • PRICE_CORRECTION: Una corrección debido a reglas de fijación de precios incorrectas.
  • METADATA_CORRECTION: Una corrección para corregir metadatos sin cambiar el costo.
  • GOODWILL: Se trata de un crédito que se emite al cliente para el fondo de comercio.
  • SALES_BASED_GOODWILL: Un crédito que se emite al cliente para el fondo de comercio, como parte de un contrato.
  • SLA_VIOLATION: Un crédito que se emite al cliente debido a un incumplimiento del objetivo de nivel de servicio (SLO).
  • BALANCE_TRANSFER: Un ajuste para transferir fondos de una cuenta de pago a otra.
  • ACCOUNT_CLOSURE: Un ajuste para llevar una cuenta cerrada a un saldo de cero.
  • GENERAL_ADJUSTMENT: Una modificación general de la cuenta de facturación.
adjustment_info.mode String

Cómo se emitió el ajuste.

Se incluyen los siguientes modos:

  • PARTIAL_CORRECTION: La corrección anula de forma parcial el uso y el costo originales.
  • COMPLETE_NEGATION_WITH_REMONETIZATION: La corrección anula por completo el uso y el costo originales y emite elementos de una sola línea corregidos con el uso y el costo actualizados.
  • COMPLETE_NEGATION: La corrección anula por completo el uso y el costo originales y no se vuelve a monetizar el uso.
  • MANUAL_ADJUSTMENT: El ajuste se asigna al costo y al uso de forma manual.
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.key En cualquier momento, se puede adjuntar un valor a un recurso para una clave determinada.

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:

  • GOOGLE = 1: Son los servicios vendidos por Google Cloud.
  • THIRD_PARTY_RESELLER = 2: Servicios de terceros que Google Cloud revende.
  • THIRD_PARTY_AGENCY = 3: Servicios de terceros que vende un socio, en los que Google Cloud actúa como el agente.
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.

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.

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

Informes de costos y precios disponibles en la consola de Google Cloud