Estructura de la exportación de datos de precios

En este documento, se proporciona información de referencia para el esquema de los datos de precios de Facturación de Cloud que se exportan a cada tabla en BigQuery.

Esquema de datos de precios

En el conjunto de datos de BigQuery, los datos de precios de tu cuenta de Facturación de Cloud se cargan en una tabla de datos llamada cloud_pricing_export.

En la siguiente información, se describe el esquema de los datos de precios de la cuenta de Facturación de Cloud que se exportan a BigQuery.

Campo Tipo Descripción
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.
pricing_as_of_time Marca de tiempo Los datos de precios aplicables a tu cuenta de Facturación de Cloud se generan una vez al día a fin de prepararlos para su exportación a BigQuery. Esta es la marca de tiempo diaria del momento en que se generaron los datos de precios.
billing_account_id String El ID de la cuenta de Facturación de Cloud con el que está asociado el precio.
billing_account_name String

El nombre de la cuenta de Facturación de Cloud con la que está asociado el precio.

business_entity_name String El nombre de la familia de servicios de Google del servicio que ofrece el SKU. Los valores incluyen GCP (Google Cloud) o Maps (Google Maps Platform).
service.id String Es el ID del servicio de Google Cloud o la API de Google Maps Platform que informó sobre los datos de la Facturación de Cloud. Por ejemplo, 6F81-5844-456A.
service.description String La descripción del servicio de Google Cloud o la API de Google Maps Platform que informó sobre los datos de la Facturación de Cloud. Por ejemplo, Compute Engine.
sku.id String El identificador único del SKU de recursos que usa el servicio. Por ejemplo, 2E27-4F75-95CD. Para ver la lista completa de SKU, consulta la página SKU de Google Cloud.
sku.description String Una descripción legible del SKU del recurso que usa el servicio. Por ejemplo, Núcleo de instancia predefinido N1 que se ejecuta en América.
sku.destination_migration_mappings Arreglo de strings Los nombres de los SKU de destino a los que se migra este SKU.
product_taxonomy Arreglo de strings Lista de categorías de productos que se aplican al SKU, como sin servidores, Cloud Run, TaskQueue, VM a pedido, núcleos: por núcleo, y otros.
geo_taxonomy Struct Metadatos geográficos que se aplican al SKU, como regiones y multirregiones, como us-east4, la Unión Europea.
geo_taxonomy.type String El tipo de metadatos geográficos asociados con el SKU. Estos son los valores válidos:
  • GLOBAL: No tiene regiones.
  • REGIONAL: Tiene una región.
  • MULTI_REGION: Tiene dos o más regiones.
geo_taxonomy.regions Arreglo de strings Las regiones de Google Cloud asociadas al SKU. Por ejemplo, Europe-west2 o US.

Una región es un lugar geográfico específico, como Londres. Una multirregión es un área geográfica grande, como Estados Unidos, que contiene dos o más lugares geográficos.

pricing_unit String La abreviatura de la unidad de uso en la que se especifica el precio (como GiBy.mo).
pricing_unit_description String La descripción legible de la unidad de uso (como mes gibibyte).
account_currency_code String La moneda en la que está configurada la cuenta de Facturación de Cloud con un código de moneda de tres letras definido en ISO 4217. Si deseas obtener más información, consulta Moneda local para facturación y pagos automáticos.
currency_conversion_rate String La tasa de cambio de dólares estadounidenses a la moneda local en la que se configuró la cuenta de Facturación de Cloud para operar. Si la moneda de la cuenta de Facturación de Cloud es USD, la tasa de intercambio se establece de forma predeterminada en 1.0.

Si los costos de Facturación de Cloud se facturan en una moneda distinta de USD, puedes convertir tus costos de uso a USD con esta fórmula: cost ÷ currency_conversion_rate = costo de uso en dólares estadounidenses.

Cuando Google cobra en la moneda local, convertimos los precios a la moneda local correspondiente según las tasas de conversión que publican las principales instituciones financieras. Esto incluye cualquier cargo adicional recaudado por la facturación en una moneda distinta del dólar estadounidense. Utilizamos las tarifas que están vigentes en el pricing_as_of_time.

list_price Estructura

El precio de lista de los SKU de Google Cloud Platform o de Google Maps Platform y niveles de precios de los SKU, vigentes a partir del pricing_as_of_time.

list_price contiene campos que describen la estructura y el valor del precio de lista, incluidos los siguientes:

Los precios de lista se encuentran en list_price.tiered_rates.usd_amount

Los datos del precio de lista se generan y se exportan para todos los clientes. Si tu cuenta de Facturación de Cloud tiene precios personalizados por contrato, también se exportan los datos de precios específicos de la cuenta de facturación.

billing_account_price Struct

Si tienes precios de contrato, este es el precio de SKU personalizado del contrato que está vinculado a tu cuenta de Facturación de Cloud.

billing_account_price contiene campos que describen la estructura y el valor de los precios negociados para los SKU de Google Cloud y Google Maps Platform, así como sus niveles de precios. billing_account_price incluye lo siguiente:

Puedes encontrar los precios contratados (si corresponde con tu cuenta de Facturación de Cloud) en billing_account_price.tiered_rates.usd_amount

price_info Struct Información general sobre el precio del contrato.
price_info.price_reason String

Información general sobre el origen del precio del contrato.

Se incluyen los siguientes motivos:

  • DEFAULT_PRICE: El precio predeterminado es el precio de lista actual para el SKU.
  • FIXED_PRICE: Un precio fijo establecido para el SKU aplicable durante los plazos del contrato.
  • FIXED_DISCOUNT: Porcentaje de descuento en el precio de lista, anclado al precio de lista como una fecha fija.
  • FLOATING_DISCOUNT: Porcentaje de descuento sobre el precio predeterminado actual (no fijado a un precio de lista a partir de una fecha específica).
  • MIGRATED_PRICE: Esto se aplica a los precios que se migraron desde otros SKU.
  • MERGED_PRICE: Precio del SKU después de la combinación de varias fuentes. Por ejemplo, con los niveles combinados, cada nivel individual puede provenir de una fuente diferente con diferentes tipos de descuento.
  • LIST_PRICE_AS_CEILING: Esta es una función de contrato opcional, disponible para los contratos nuevos posteriores al 21 de marzo de 2022. Cuando está activa, si el precio de lista actual es más bajo que el precio fijo personalizado, se usa el precio de lista (DEFAULT_PRICE) para el precio del SKU. Se aplica a todos los SKU de precio fijo en el contrato, incluidos FIXED_PRICE, FIXED_DISCOUNT, MIGRATED_PRICE y MERGED_PRICE.
  • CONTRACTED_PRICE_PROTECTION: Esto se aplica a los SKUs que tienen protección de precios en tu contrato. Esto se usa muy poco.
price_info.discount_percent Numérico En el caso de los precios de contrato que sean producto de un porcentaje de descuento (FIXED_DISCOUNT o FLOATING_DISCOUNT), este es el porcentaje del descuento que se usó.
price_info.discount_percent_fixed_date Fecha Para los precios de contacto con un porcentaje de descuento vinculado a una fecha específica (FIXED_DISCOUNT), esta es la fecha que se usó.
price_info.discount_migrated_from String En el caso de los descuentos por contratos que se migraron de otros SKU (MIGRATED_PRICE), este es el SKU de origen del descuento. En ocasiones, cuando un SKU se divide en dos, el descuento se migra del SKU anterior a los nuevos.
aggregation_info Estructura Representa el nivel y el intervalo de agregación para los niveles de precios de un solo SKU.
aggregation_info.aggregation_level String El nivel en el que se agrega el uso para calcular el costo de los niveles de precios.

Se incluyen los siguientes niveles:

  • ACCOUNT: indica un SKU con precios multinivel; el uso del SKU para los niveles de precios se agrega a todos los proyectos en una sola cuenta de Facturación de Cloud.
  • PROJECT: Indica un SKU con precios de varios niveles, el uso del SKU para los niveles de precios se agrega por proyecto.
  • UNKNOWN_AGGREGATION_LEVEL: Indica un SKU con precios de un solo nivel; este es el valor predeterminado para los SKU con precios sin niveles.
aggregation_info.aggregation_interval String El intervalo en el que se agrega el uso para calcular el costo de los niveles de precios.

Se incluyen los siguientes intervalos:

  • ONE_DAY: Indica un SKU con precios de varios niveles; el uso del SKU para los niveles de precios se agrega todos los días.
  • ONE_MONTH: Indica un SKU con precios de varios niveles; el uso de SKU para los niveles de precios se agrega todos los meses.
  • UNKNOWN_AGGREGATION_INTERVAL: Indica un SKU con precios de un solo nivel; este es el valor predeterminado para los SKU con precios sin niveles.
tiered_rates Arreglo de strings Información sobre el nivel de precios, incluido el precio del SKU en USD y el precio del SKU en la moneda de la cuenta de Facturación de Cloud configurada para usar.

Algunos SKU solo tienen un nivel de precios. Si un SKU tiene varios niveles de precios, cada nivel aparecerá como una fila diferente. Puedes identificar los SKU con varios niveles de precios a través del tiered_rates.start_usage_amount.

tiered_rates.pricing_unit_quantity Número de punto flotante El nivel de precios por cantidad de unidades del SKU. Por ejemplo, si el nivel de precio es $1 por 1,000,000 de bytes, en esta columna aparecerá 1,000,000.
tiered_rates.start_usage_amount Número de punto flotante Reduce la cantidad de vinculaciones para un nivel de precios, expresado en unidades de precio. Por ejemplo, un SKU con tres niveles de precios, como 0-100 unidades, 101-1000 unidades y más de 1,001 unidades, muestra tres filas de precios, con 0, 101 y 1,01 como valores del [tiered_rates].start_usage_amount.
tiered_rates.usd_amount Numérico El precio del SKU, en dólares estadounidenses.
tiered_rates.account_currency_amount Numérico El precio del nivel de SKU convertido de USD en la moneda que la cuenta de la Facturación de Cloud está configurada para usar mediante currency_conversion_rate.

El precio convertido se calcula con la siguiente fórmula: tiered_rates.usd_amount * currency_conversion_rate = tiered_rates.account_currency_amount.

Cuando Google cobra en la moneda local, convertimos los precios a la moneda local correspondiente según las tasas de conversión que publican las principales instituciones financieras. Esto incluye cualquier cargo adicional recaudado por la facturación en una moneda distinta del dólar estadounidense. Utilizamos las tarifas que están vigentes en el pricing_as_of_time.

Acerca de los niveles de precios

Los precios de SKU se ofrecen según niveles de precios. Los niveles de precios proporcionan una estructura de precios según los diferentes niveles. Algunos SKU solo tienen un nivel de precios único, mientras que otros tienen varios niveles de precios. Los ejemplos de SKU con precios por varios niveles incluyen lo siguiente:

  • SKU con un nivel de uso gratuito. Por ejemplo: las unidades de 1 a 1,000 son gratuitas. Más de 1,001 unidades tienen un precio de $1 cada una.
  • Los SKU en los que el precio por unidad disminuye después de que se excede la cantidad de uso dentro de un nivel. Por ejemplo: entre 1 y 100 unidades cuestan $5 cada uno, entre 101 y 1,000 unidades cuestan $4 cada una y más de 1,001 unidades cuestan $3 cada una.

Algunas notas sobre los precios de varios niveles:

  • El recuento de uso de nivel se restablece en cero según el aggregation_interval del SKU: por día o por mes.

    • Los SKU diarios se restablecen todos los días a las 12 a.m. hora del Pacífico de EE.UU. y Canadá (UTC-8 o UTC-7).
    • Los SKU mensuales se restablecen a cero el primer día de cada mes calendario (por ejemplo, enero, febrero, etc.) a las 12 a.m. hora del Pacífico de EE.UU. y Canadá (UTC-8 o UTC-7).
  • Los niveles operan de forma independiente para cada cuenta de facturación de Cloud y no se agregan en varias cuentas, incluso si los proyectos están en la misma organización o pertenecen a la misma entidad legal.

  • Los niveles funcionan de forma independiente por SKU: el uso de un SKU solo puede afectar el precio de ese SKU. No hay SKU cuyo uso afecte el precio por niveles de otro SKU.

  • Es posible que los niveles de precios del SKU de los precios de lista no se ajusten con exactitud a los niveles de precios para los precios de los contratos. Esta circunstancia no es muy común.

  • Si un SKU tiene varios niveles de precios, cada precio de nivel de SKU aparece en una fila separada en la tabla de precios. Puedes identificar los SKU con varios niveles de precios a través del tiered_rates.start_usage_amount.

  • Según cómo escribas tu búsqueda, puedes mostrar los niveles de precios de SKU como datos anidados o no anidados. Para obtener más información sobre los datos anidados y no anidados, consulta los siguientes ejemplos.

Ejemplos de consultas de datos de precios

En esta sección, se proporcionan ejemplos diferentes de cómo consultar los datos de precios de Facturación de Cloud exportados a BigQuery.

En esta sección, se proporcionan ejemplos diferentes de cómo consultar los datos de precios de la Facturación de Cloud exportados a BigQuery.

Valores comunes que se usan en las consultas de precios de ejemplo

En los ejemplos de consultas de esta sección, se usan los siguientes valores:

  • Nombre de la tabla:project.dataset.cloud_pricing_export
  • ID de SKU: 2DA5-55D3-E679 (Cloud Run: Solicitudes)

Obtén precios de listas para un SKU específico

En este ejemplo, se muestra una consulta que muestra el objeto list_price para cada nivel de precios de un SKU especificado.

SQL estándar

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

_PARTITIONTIME es un campo que BigQuery genera de forma automática y representa la fecha a la que pertenecen los datos. En lugar de _PARTITIONTIME, puedes usar un campo que la exportación de Facturación de Cloud genera de forma explícita, como pricing_as_of_time.

Esta es la misma consulta configurada para usar el campo pricing_as_of_time:

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

Resultados de la consulta

Fila id descripción pricing_unit aggregation_info.
aggregation_level
aggregation_info.
aggregation_interval
tiered_rates.
pricing_unit_quantity
tiered_rates.
start_usage_amount
tiered_rates.
usd_amount
tiered_rates.
account_currency_amount
1 2DA5-55D3-E679 Solicitudes COUNT CUENTA MENSUAL 1000000 0 0 0
          1000000 2000000 0.4 0.4

Obtén precios de lista para un SKU específico e incluye la descripción del servicio

En los dos ejemplos de esta sección, se exponen consultas que muestran el list_price para cada nivel de precios de un SKU especificado, y, además, incluye la descripción del SKU y la descripción del servicio.

  • En el ejemplo 1, se muestra un SKU por fila, con los niveles de precios que se muestran como datos anidados.
  • En el ejemplo 2, se muestra cómo desanidar los datos para mostrar una fila por SKU por nivel de precios.

Ejemplo 1: Muestra datos anidados

En este ejemplo, se consulta un solo SKU para que se muestren los datos de list_price. Este SKU tiene varios niveles de precios. Los valores del campo de precio de lista se muestran en filas individuales anidadas en la fila de ID del SKU.

SQL estándar

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

Resultados de la consulta:

Fila sku_id sku_description service_id service_description aggregation_info.
aggregation_level
aggregation_info.
aggregation_interval
tiered_rates.
pricing_unit_quantity
tiered_rates.
start_usage_amount
tiered_rates.
usd_amount
tiered_rates.
account_currency_amount
1 2DA5-55D3-E679 Solicitudes 152E-C115-5142 Cloud Run CUENTA MENSUAL 1000000 0 0 0
            1000000 2000000 0.4 0.4

Ejemplo 2: Muestra datos no anidados con la misma tabla

En este ejemplo, se consulta un solo SKU para que se muestre list price. El SKU tiene varios niveles de precios. En la consulta, se muestra el uso del operador UNNEST para compactar el arreglo tiered_rates y unir los campos con la misma tabla, lo que genera una fila por nivel de precios.

SQL estándar

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

Resultados de la consulta:

Fila sku_id sku_description service_id service_description pricing_unit_quantity start_usage_amount usd_amount account_currency_amount
1 2DA5-55D3-E679 Solicitudes 152E-C115-5142 Cloud Run 1000000.0 0.0 0.0 0.0
2 2DA5-55D3-E679 Solicitudes 152E-C115-5142 Cloud Run 1000000.0 2000000.0 0.4 0.4

Usar la taxonomía de productos y la taxonomía geográfica para consultar los SKU

  • La taxonomía de productos es una lista de categorías de productos que se aplican al SKU, como sin servidores, Cloud Run o VMs a pedido.
  • La taxonomía geográfica son los metadatos geográficos que se aplican a un SKU y consisten en valores de tipo y región.

Obtén la taxonomía de producto de un SKU

En este ejemplo, se observa una consulta que muestra la lista product_taxonomy para un SKU especificado, en el que el ID de SKU = 2DA5-55D3-E679 (Cloud Run: Solicitudes).

SQL estándar

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

Resultados de la consulta:

Fila sku_id sku_description service_id service_description product_taxonomy
1 2DA5-55D3-E679 Solicitudes 152E-C115-5142 Cloud Run GCP
        Sin servidores
        Cloud Run
        Otro

Obtén todos los SKU de una taxonomía de productos específica

En este ejemplo, se observa una consulta que muestra todos los SKU que coinciden con un product_taxonomy especificado. En esta consulta, especificamos sin servidores como el valor product taxonomy.

SQL estándar

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

Resultados de la consulta:

Fila sku_id sku_description service_id service_description product_taxonomy
1 0160-BD7B-4C40 Salida de red de Cloud Tasks dentro de la región F3A6-D7B7-9BDA Cloud Tasks GCP
        Sin servidores
        Cloud Tasks
        Otro
2 FE08-0A74-7AFD Salida de GOOGLE-API de Cloud Tasks F3A6-D7B7-9BDA Cloud Tasks GCP
        Sin servidores
        Cloud Tasks
        Otro
3 A81A-32A2-B46D Almacenamiento de lista de tareas en cola de Salt Lake City F17B-412E-CB64 App Engine GCP
        Sin servidores
        GAE
        Otro
        TaskQueue

Obtén todos los SKU para una taxonomía geográfica y una taxonomía de productos específicas

En este ejemplo, se observa una consulta que muestra todos los SKU que coinciden con una región geo_taxonomy y una product_taxonomy especificadas, en las que region = us-east4 y product_taxonomy = VM a pedido.

SQL estándar

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

Resultados de la consulta:

Fila sku_id sku_description service_id service_description geo_taxonomy.type geo_taxonomy.regions product_taxonomy
1 9174-81EE-425B Usuario único Premium para RAM de instancia de usuario único que se ejecuta en Virginia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Procesamiento
            GCE
            VM a pedido
            Memoria: por GB
2 C3B9-E891-85ED RAM de instancia de usuario única que se ejecuta en Virginia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Procesamiento
            GCE
            VM a pedido
            Memoria: por GB
3 6E2A-DCD9-87ED RAM de instancia predefinida N1 que se ejecuta en Virginia 6F81-5844-456A Compute Engine REGIONAL us-east4 GCP
            Procesamiento
            GCE
            VM a pedido
            Memoria: por GB

Muestra los precios de lista para un SKU con varios niveles de precios.

Consulta los datos de BigQuery por nombre de tabla. El nombre de la tabla que se usa en la cláusula FROM de la búsqueda se determina con tres valores: project.dataset.BQ_table_name.

Valores comunes que se usan en estos ejemplos:

  • Nombre de la tabla:project.dataset.cloud_pricing_export
  • ID de SKU: 2DA5-55D3-E679 (Cloud Run: Solicitudes)

Ejemplo 1: Muestra datos anidados

En este ejemplo, se consulta un solo SKU para que se muestren los datos de list_price. Este SKU tiene varios niveles de precios. Los valores del campo de precio de lista se muestran en filas individuales anidadas en la fila de ID del SKU.

SQL estándar

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

Resultados de la consulta:

Fila sku_id sku_description service_id service_description aggregation_info.
aggregation_level
aggregation_info.
aggregation_interval
tiered_rates.
pricing_unit_quantity
tiered_rates.
start_usage_amount
tiered_rates.
usd_amount
tiered_rates.
account_currency_amount
1 2DA5-55D3-E679 Solicitudes 152E-C115-5142 Cloud Run CUENTA MENSUAL 1000000 0 0 0
            1000000 2000000 0.4 0.4

Ejemplo 2: Muestra datos no anidados con la misma tabla

En este ejemplo, se consulta un solo SKU para que se muestre list price. El SKU tiene varios niveles de precios. En la consulta, se muestra el uso del operador UNNEST para compactar el arreglo tiered_rates y unir los campos con la misma tabla, lo que genera una fila por nivel de precios.

SQL estándar

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

Resultados de la consulta:

Fila sku_id sku_description service_id service_description pricing_unit_quantity start_usage_amount usd_amount account_currency_amount
1 2DA5-55D3-E679 Solicitudes 152E-C115-5142 Cloud Run 1000000.0 0.0 0.0 0.0
2 2DA5-55D3-E679 Solicitudes 152E-C115-5142 Cloud Run 1000000.0 2000000.0 0.4 0.4

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