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 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.

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 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.

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>.

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 extiende 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 extiende 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 Estructural 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 Estructural

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 Estructural 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 Descuento por compromiso de uso: CPU).

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 a fin de 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 automáticamente 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 Estructural 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 Estructural

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 conectados a un tags.key. En cualquier momento, solo 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_price 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.

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

Verás columnas para las etiquetas en el conjunto de datos de BigQuery, pero los valores de algunas etiquetas estarán vacíos en la versión actual. Los datos de exportación de las etiquetas de los distintos servicios se propagarán en momentos diferentes. Esto depende de cuándo los envíen los servicios.

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ó.

Diferencias entre los datos exportados y las facturas

Debido a que los servicios de Google Cloud generan informes de los datos de costos y de uso para los procesos de la Facturación de Cloud en intervalos variables, hay una demora entre el uso que haces de los recursos de Google Cloud y los costos de uso que aparecen en tus tablas de BigQuery. 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

Debes tener en cuenta que, en el caso poco probable de que los datos de la Facturación de Cloud contengan un error o se deban ajustar, estos se adjuntarán a datos que anulan el error. Todas las columnas se conservarán, excepto las siguientes:

  • cost
  • credit
  • usage.amount
  • export_time

Si necesitas determinar qué datos son nuevos, puedes consultar el export_time.

En los datos exportados, el mes de facturación de los ajustes de Facturación de Cloud y los impuestos asociados reflejan el mes en que se emitió el ajuste. Sin embargo, el ajuste se podría aplicar a una factura en un mes diferente del mes de emisión del ajuste. Para saber si se aplica un ajuste y dónde se aplica dicho ajuste, deberás revisar la factura o los documentos de notas de crédito o débito disponibles en la página de documentos de la consola de Google Cloud. Para obtener más detalles sobre el análisis de ajustes y cómo se aplican, consulta Comprende las notas y los ajustes.

Acerca de las etiquetas de política

<atrack-type="tasks"track-name="internallink"track-metadata-position="body" l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="iUWjxJRweELRfbeZQy/YQwc9zZofjBXGTjbrIegRjdnVz6nUhi3jRGB4DwvsPvv3">Las etiquetas de política son recursos en forma de pares clave-valor que se pueden adjuntar directamente a recursos o mediante herencia. Puedes usar etiquetas de política para realizar devoluciones de cargos, auditorías y otros análisis de asignación de costos. También puedes usar etiquetas y la aplicación condicional de las políticas para obtener un control detallado de toda la jerarquía de recursos.</atrack-type="tasks"track-name="internallink"track-metadata-position="body">

Las etiquetas de política 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 del motor de políticas, mientras que <atrack-type="tasks"track-name="internallink"track-metadata-position="body" l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="VL5eQBNGQ+VFZ8Ic4FEC0gc9zZofjBXGTjbrIegRjdloWDKjJtF205jHQgIOO0QT5mGjae8t5DMH2GXg6ydeww=="> las etiquetas de recurso son una herramienta independiente que te permite anotar recursos.</atrack-type="tasks"track-name="internallink"track-metadata-position="body">

Los datos de las etiquetas de política aparecen en las exportaciones de BigQuery para recursos, proyectos, carpetas y organizaciones.

Etiquetas de política 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.

Limitaciones de etiquetas

  • Las instancias de Compute Engine solo se limitan a las etiquetas a nivel de recurso.

  • 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 exacto
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 tipo de costo total total exacto
1 201901 regular $1,000.501209987994782 $1,000.50
2 201901 error de redondeo –$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:

Instance Etiquetas Costo total
Instancia pequeña con 1 CPU virtual en ejecución en América None $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 string 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"}] $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 key 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 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

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 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 "%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 `ivory-vim-309221.billing_export_dataset.gcp_billing_export_resource_v1_018ADD_3CEBBB_A4DF22`, 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.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.
Row 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