Estima y controla los costos
En esta página, se describen las prácticas recomendadas para estimar y controlar los costos en BigQuery.
Los costos principales en BigQuery son el procesamiento, que se usa para el procesamiento de consultas, y el almacenamiento, para los datos que se almacenan en BigQuery. BigQuery ofrece dos tipos de modelos de precios para el procesamiento de consultas: precios a pedido y basados en la capacidad. Cada modelo ofrece diferentes prácticas recomendadas para controlar los costos. En el caso de los datos almacenados en BigQuery, los costos dependen del modelo de facturación de almacenamiento configurado para cada conjunto de datos.
Comprende los precios de procesamiento de BigQuery
Existen diferencias sutiles en los precios de procesamiento de BigQuery que afectan la planificación de la capacidad y el control de costos.
Modelos de precios
En el caso del procesamiento a pedido en BigQuery, se generan cargos por TiB para las consultas de BigQuery.
Como alternativa, para el procesamiento de capacidad en BigQuery, se generan cargos por los recursos de procesamiento (ranuras) que se usan para procesar la consulta. Para usar este modelo, configura reservas para las ranuras.
Las reservas tienen las siguientes características:
- Se asignan en grupos de ranuras y te permiten administrar la capacidad y aislar las cargas de trabajo de formas adecuadas para tu organización.
- Deben residir en un proyecto de administración y están sujetas a cuotas y límites.
El modelo de precios de capacidad ofrece varias ediciones, que ofrecen una opción de pago por uso que se cobra en horas de ranura. Las ediciones Enterprise y Enterprise Plus también proporcionan compromisos de ranuras opcionales de uno o tres años que pueden ahorrar dinero en comparación con la tarifa de pago por uso.
También puedes establecer reservas de escalado automático con la opción de pago por uso. Para obtener más información, consulta lo siguiente:
- Para comparar los modelos de precios, consulta Elige un modelo.
- Para obtener detalles sobre los precios, consulta Precios de procesamiento según demanda y Precios de procesamiento de capacidad.
Restringe los costos de cada modelo
Cuando usas el modelo de precios a pedido, la única forma de restringir los costos es configurar cuotas diarias a nivel de proyecto o de usuario. Sin embargo, estas cuotas aplican un límite estricto que impide que los usuarios ejecuten consultas más allá del límite de la cuota. Para establecer cuotas, consulta Crea cuotas de consultas personalizadas.
Cuando usas el modelo de precios de capacidad con reservas de ranuras, especificas la cantidad máxima de ranuras que están disponibles para una reserva. También puedes comprar compromisos de ranuras que proporcionan precios con descuento durante un período de compromiso.
Puedes usar las ediciones por completo según demanda si configuras el valor de referencia de la reserva en 0 y el máximo en un parámetro de configuración que satisfaga las necesidades de tu carga de trabajo. BigQuery escala verticalmente de forma automática hasta la cantidad de ranuras necesarias para tu carga de trabajo, sin superar nunca el máximo que estableciste. Para obtener más información, consulta Administración de cargas de trabajo con reservas.
Controla los costos de las consultas
Para controlar los costos de las consultas individuales, te recomendamos que primero sigas las prácticas recomendadas para optimizar el procesamiento de las consultas y optimizar el almacenamiento.
En las siguientes secciones, se describen prácticas recomendadas adicionales que puedes usar para controlar aún más los costos de las consultas.
Crea cuotas de consultas personalizadas
Práctica recomendada: Usa cuotas de consultas diarias personalizadas para limitar la cantidad de datos que se procesan por día.
Puedes administrar los costos si configuras una cuota personalizada que especifique un límite para la cantidad de datos que se pueden procesar al día por proyecto o por usuario. Los usuarios no pueden ejecutar consultas una vez que se alcanza la cuota.
Para establecer una cuota personalizada, necesitas roles o permisos específicos. Para conocer las cuotas que se deben establecer, consulta Cuotas y límites.
Para obtener más información, consulta Restringe los costos de cada modelo de precios.
Verifica el costo estimado antes de ejecutar una consulta
Recomendación: Antes de ejecutar consultas, obtén una vista previa para estimar los costos.
Cuando se usa el modelo de precios a pedido, las consultas se facturan según la cantidad de bytes leídos. Para estimar los costos antes de ejecutar una consulta, haz lo siguiente:
- Usa el validador de consultas en la consola de Google Cloud .
- Realiza una ejecución de prueba para las consultas, a menos que la tabla de destino esté enmascarada con seguridad a nivel de fila, en cuyo caso las ejecuciones de prueba siempre devuelven 0 bytes para evitar ataques de canal lateral.
Usa el validador de consultas
Cuando ingresas una consulta en la consola de Google Cloud , el validador de consultas verifica la sintaxis de la consulta y proporciona una estimación de la cantidad de bytes leídos. Puedes usar esta estimación para calcular el costo de la consulta en la calculadora de precios.
Si tu consulta no es válida, el validador de consultas muestra un mensaje de error. Por ejemplo:
Not found: Table myProject:myDataset.myTable was not found in location USSi tu consulta es válida, el validador de consultas proporciona una estimación de la cantidad de bytes necesarios para procesar la consulta. Por ejemplo:
This query will process 623.1 KiB when run.
Realiza una ejecución de prueba
Para realizar una prueba de validación, sigue estos pasos:
Console
Dirígete a la página de BigQuery.
Ingresa tu consulta en el Editor de consultas.
Si la consulta es válida, aparecerá de forma automática una marca de verificación junto con la cantidad de datos que la consulta procesará. Si la consulta no es válida, aparece un signo de exclamación junto con un mensaje de error.
bq
Ingresa una consulta como la siguiente con la marca --dry_run.
bq query \ --use_legacy_sql=false \ --dry_run \ 'SELECT COUNTRY, AIRPORT, IATA FROM `project_id`.dataset.airports LIMIT 1000'
Para una consulta válida, el comando genera la siguiente respuesta:
Query successfully validated. Assuming the tables are not modified, running this query will process 10918 bytes of data.
API
Para realizar una ejecución de prueba mediante la API, envía un trabajo de consulta con dryRun configurado como true en el tipo JobConfiguration.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Node.js.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
PHP
Antes de probar este ejemplo, sigue las instrucciones de configuración para PHP incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para PHP.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Configura la propiedad
QueryJobConfig.dry_run
como True.
Client.query() siempre muestra un QueryJob completo cuando se proporciona una configuración de consulta de ejecución de prueba.
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Estima los costos de las consultas
Según tu modelo de precios de procesamiento, el método para estimar los costos de las consultas varía.
Estimación de costos de consultas a pedido
Cuando usas el modelo de precios a pedido, puedes estimar el costo de ejecutar una consulta calculando la cantidad de bytes procesados.
Estimación de costos de consultas basada en la capacidad
Cuando usas el precio basado en la capacidad, no es posible estimar el costo exacto de una consulta individual antes de la ejecución con precisión. Los costos basados en la capacidad se calculan en función de la capacidad general de ranuras de reserva aprovisionada o con ajuste de escala automático a lo largo del tiempo, en lugar de la cantidad de datos analizados por una consulta específica.
Estimar los costos de las consultas individuales antes de la ejecución es difícil debido a factores dinámicos del entorno de ejecución, incluidos los siguientes:
- Asignación dinámica de ranuras: La cantidad de ranuras asignadas a una consulta depende de la complejidad de la consulta, la optimización del entorno de ejecución y la disponibilidad de recursos.
- Simultaneidad: Varias consultas comparten de forma dinámica las ranuras disponibles en la reserva.
- Comportamiento del ajuste de escala automático: Si el ajuste de escala automático de ranuras está habilitado, la reserva aumenta y disminuye según la demanda agregada de la carga de trabajo, en lugar de la ejecución de una sola consulta.
Después de la ejecución de la consulta, puedes ver los recursos de procesamiento reales que consumió la
consulta en milisegundos de ranura (total_slot_ms) inspeccionando los detalles de la ejecución de la consulta
o consultando la
vista INFORMATION_SCHEMA.JOBS.
Atribución de costos basada en la capacidad
La atribución de costos es el proceso de dividir y atribuir los costos de procesamiento de las reservas entre proyectos, equipos o consultas después de que se ejecutan las cargas de trabajo.
Para comprender y asignar tus costos generales, puedes atribuir las tarifas de reserva a consultas y proyectos específicos con la atribución de costos de reserva en los datos de Facturación de Cloud. En tus datos y tus informes de Facturación de Cloud, busca el elemento de una sola línea Atribución de ranuras de análisis, que hace un seguimiento de las horas de ranura usadas por proyecto sin generar costos adicionales ni afectar los totales de tu factura.
Para obtener más información, consulta Atribución de costos de reservas.
Cálculo del tamaño de la consulta según demanda
Para calcular la cantidad de bytes que procesan los diversos tipos de consultas, consulta las siguientes secciones:
Evita ejecutar consultas para explorar los datos de la tabla
Recomendación: No ejecutes consultas para explorar los datos de las tablas ni obtener una vista previa de ellos.
Para explorar los datos o experimentar con ellos, están disponibles las opciones de vista previa de tablas de sin cargo sin afectar las cuotas.
BigQuery es compatible con las siguientes opciones de vista previa de datos:
- En la página de detalles de la tabla en la consola de Google Cloud , haz clic en la pestaña Vista previa para probar los datos.
- En la herramienta de línea de comandos de bq, usa el comando
bq heady especifica la cantidad de filas para la vista previa. - En la API, usa
tabledata.listpara recuperar los datos de tabla de un conjunto específico de filas. - Evita usar
LIMITen tablas no agrupadas. En el caso de las tablas no agrupadas, una cláusulaLIMITno reducirá los costos de procesamiento.
Restringe la cantidad de bytes facturados por consulta
Práctica recomendada: Usa el parámetro de configuración de cantidad máxima de bytes facturados para limitar el costo de las consultas cuando uses el modelo de precios a pedido.
Puedes limitar la cantidad de bytes facturados para una consulta mediante la configuración de máximo de bytes facturados. Cuando estableces un máximo de bytes facturados, antes de la ejecución de la consulta se estima la cantidad de bytes que lee la consulta. Si la cantidad de bytes estimados supera el límite, la consulta falla sin incurrir en un cargo.
En el caso de las tablas agrupadas en clústeres, la estimación de la cantidad de bytes facturados para una consulta es un límite superior y puede ser mayor que la cantidad real de bytes facturados después de ejecutar la consulta. Por lo tanto, en algunos casos, si estableces el máximo de bytes facturados, una consulta en una tabla agrupada en clústeres puede fallar, aunque los bytes reales facturados no excedan la configuración máxima de bytes facturados.
Si una consulta falla debido a la configuración de máximo de bytes facturados, se muestra un error similar al siguiente:
Error: Query exceeded limit for bytes billed: 1000000. 10485760 or higher
required.
Para configurar el máximo de bytes facturados, haz lo siguiente:
Console
- En el Editor de consultas, haz clic en Editar > Configuración de consultas > Opciones avanzadas.
- En el campo Máximo de bytes facturados, ingresa un número entero.
- Haz clic en Guardar.
bq
Usa el comando bq query con la marca --maximum_bytes_billed.
bq query --maximum_bytes_billed=1000000 \ --use_legacy_sql=false \ 'SELECT word FROM `bigquery-public-data`.samples.shakespeare'
API
Establece la propiedad maximumBytesBilled en JobConfigurationQuery o QueryRequest.
Evita usar LIMIT en tablas no agrupadas
Práctica recomendada:Para tablas no agrupadas en clústeres, no uses una cláusula LIMIT como
método para el control de costos.
En el caso de las tablas no agrupadas, aplicar una cláusula LIMIT a una consulta no afecta
la cantidad de datos leídos. Se te cobra por leer todos los bytes en la tabla completa según lo indica la consulta, aunque esta solo muestre un subconjunto. Con una tabla agrupada en clústeres, una cláusula LIMIT puede reducir la cantidad de bytes analizados, ya que el análisis se detiene cuando se analizan suficientes bloques para obtener el resultado. Solo se te cobrarán los bytes analizados.
Materializa los resultados de la consulta en etapas
Recomendación: Si es posible, materializa los resultados de tu consulta en etapas.
Si creas una consulta grande de varias etapas, BigQuery lee todos los datos que requiere cada vez que la ejecutas. Se te factura por todos los datos que se leen cada vez que se ejecuta la consulta.
En su lugar, divide tu consulta en etapas que materialicen los resultados de la consulta mediante la escritura en una tabla de destino. Consultar la tabla de destino más pequeña reduce los costos y la cantidad de datos que se leen. El costo de almacenar los resultados materializados es mucho menor que el de procesar grandes cantidades de datos.
Usa Rapid Cache para consultar Cloud Storage con tablas externas
Práctica recomendada: Considera habilitar la caché rápida cuando consultes datos de Cloud Storage con tablas externas.
Rapid Cache proporciona una caché de lectura zonal respaldada por SSD para tus buckets de Cloud Storage, lo que puede mejorar el rendimiento de las consultas y reducir sus costos cuando se consultan tablas externas. Para obtener más información, consulta Optimiza las consultas de tablas externas de Cloud Storage.
Controla los costos de las cargas de trabajo
En esta sección, se describen las prácticas recomendadas para controlar los costos dentro de una carga de trabajo. Una carga de trabajo es un conjunto de consultas relacionadas. Por ejemplo, una carga de trabajo puede ser una canalización de transformación de datos que se ejecuta a diario, un conjunto de paneles que ejecuta un grupo de analistas empresariales o varias consultas ad hoc que ejecuta un conjunto de científicos de datos.
Usa la calculadora de precios de Google Cloud
Práctica recomendada: Usa la calculadora de precios deGoogle Cloud para crear una estimación del costo mensual general para BigQuery en función del uso proyectado. Luego, puedes comparar esta estimación con tus costos reales para identificar áreas de optimización.
A pedido
Para estimar los costos en la calculadora de precios deGoogle Cloud con el modelo de precios a pedido, sigue estos pasos:
- Abre la calculadora de precios deGoogle Cloud .
- Haz clic en Agregar a la estimación.
- Selecciona BigQuery.
- Selecciona "On-demand" en Tipo de servicio.
- Elige la ubicación en la que se ejecutarán tus consultas.
- En Cantidad de datos consultados, ingresa los bytes leídos estimados de tu ejecución de prueba o el validador de consultas.
- Ingresa tus estimaciones de uso del almacenamiento para Almacenamiento activo, Almacenamiento a largo plazo, Inserciones de transmisión y Lecturas de transmisión. Solo debes estimar el almacenamiento físico o el almacenamiento lógico, según el modelo de facturación de almacenamiento del conjunto de datos.
- La estimación aparece en el panel Detalles de los costos. Para obtener más información sobre el costo estimado, haz clic en Abrir vista detallada. También puedes descargar y compartir la estimación de costos.
Para obtener más información, consulta Precios a pedido.
Ediciones
Para estimar los costos en la calculadora de precios deGoogle Cloud con el modelo de precios basado en la capacidad con las ediciones de BigQuery, sigue estos pasos:
- Abre la calculadora de precios deGoogle Cloud .
- Haz clic en Agregar a la estimación.
- Selecciona BigQuery.
- Selecciona "Ediciones" en Tipo de servicio.
- Elige la ubicación en la que se usarán las ranuras.
- Elige tu edición.
- Elige las Cantidad máxima de ranuras, Ranuras base, Compromiso opcional y Uso estimado del ajuste de escala automático.
- Elige la ubicación en la que se almacenarán los datos.
- Ingresa tus estimaciones de uso del almacenamiento para Almacenamiento activo, Almacenamiento a largo plazo, Inserciones de transmisión y Lecturas de transmisión. Solo debes estimar el almacenamiento físico o el almacenamiento lógico, según el modelo de facturación de almacenamiento del conjunto de datos.
- La estimación aparece en el panel Detalles de los costos. Para obtener más información sobre el costo estimado, haz clic en Abrir vista detallada. También puedes descargar y compartir la estimación de costos.
Para obtener más información, consulta Precios por capacidad.
Usa reservas y compromisos
Práctica recomendada: Usa reservas y compromisos de BigQuery para controlar los costos.
Para obtener más información, consulta Restringe los costos de cada modelo de precios.
Usa el estimador de ranuras
Práctica recomendada: Usa el estimador de ranuras para calcular la cantidad de ranuras que se necesitan para tus cargas de trabajo.
El estimador de ranuras de BigQuery te ayuda a administrar la capacidad de las ranuras según el historial de rendimiento.
Además, los clientes que usan el modelo de precios a pedido pueden ver recomendaciones de tamaño para los compromisos y las reservas de ajuste de escala automático con un rendimiento similar cuando cambian a los precios basados en la capacidad.
Cancela los trabajos de larga duración innecesarios
Para liberar capacidad, verifica los trabajos de larga duración para asegurarte de que deban seguir ejecutándose. De lo contrario, cancélalas.
Visualiza los costos con un panel
Práctica recomendada: Crea un panel para analizar tus datos de Facturación de Cloud y, así, poder supervisar y ajustar el uso de BigQuery.
Puedes exportar tus datos de facturación a BigQuery y visualizarlos en una herramienta como Data Studio. Para ver un instructivo sobre cómo crear un panel de facturación, consulta Visualiza la facturación de Google Cloud con BigQuery y Data Studio.
Usa presupuestos y alertas de facturación
Práctica recomendada: Usa los presupuestos de Facturación de Cloud para supervisar tus cargos de BigQuery en un solo lugar.
Los presupuestos de Facturación de Cloud te permiten hacer un seguimiento de tus costos reales en comparación con los costos planificados. Después de establecer un importe del presupuesto, establece reglas de umbral de alertas de presupuesto que se usan para activar las notificaciones por correo electrónico. Los correos electrónicos de alertas de presupuesto te ayudan a mantenerte informado sobre cómo se realiza el seguimiento de tu inversión en BigQuery en relación con tu presupuesto.
Controla los costos de almacenamiento
Usa estas prácticas recomendadas para optimizar el costo del almacenamiento de BigQuery. También puedes optimizar el almacenamiento para el rendimiento de las consultas.
Usa el almacenamiento a largo plazo
Práctica recomendada: Usa los precios de almacenamiento a largo plazo para reducir el costo de los datos más antiguos.
Cuando cargas datos en el almacenamiento de BigQuery, estos están sujetos a los precios de almacenamiento de BigQuery. Para los datos más antiguos, puedes aprovechar automáticamente los precios de almacenamiento a largo plazo de BigQuery.
Si tienes una tabla que no se editó durante 90 días consecutivos, el precio de almacenamiento de esa tabla disminuye automáticamente en un 50%. Si tienes una tabla particionada, cada partición se considera por separado para la elegibilidad de los precios a largo plazo sujetos a las mismas reglas que las tablas no particionadas.
Ten en cuenta que, una vez que las tablas y las particiones de tablas están en el almacenamiento a largo plazo, cualquier modificación en los datos, los metadatos o la partición puede hacer que estos recursos vuelvan al almacenamiento activo de BigQuery. Los siguientes son ejemplos de acciones que podrían dar lugar a este cambio:
Sentencias INSERT, UPDATE, TRUNCATE, MERGE o DELETE que cambian los datos de la tabla
Cargar, transmitir o agregar datos a la tabla
Declaraciones
ALTERque cambian el esquema de la tablaAgregar o modificar propiedades de la tabla, como la descripción, las etiquetas o el vencimiento
Modifica los metadatos de tablas
Configura el modelo de facturación de almacenamiento
Práctica recomendada: Optimiza el modelo de facturación de almacenamiento según tus patrones de uso.
BigQuery admite la facturación de almacenamiento con bytes lógicos (sin comprimir) o físicos (comprimidos), o una combinación de ambos. El modelo de facturación de almacenamiento configurado para cada conjunto de datos determina los precios de almacenamiento, pero no afecta el rendimiento de las consultas.
Puedes usar las vistas de INFORMATION_SCHEMA para determinar el modelo de facturación de almacenamiento que funciona mejor según tus patrones de uso.
Evita reemplazar tablas
Práctica recomendada: Cuando uses el modelo de facturación de almacenamiento físico, evita reemplazar tablas de forma repetida.
Cuando reemplazas una tabla, por ejemplo, con el parámetro --replace
en trabajos de carga por lotes
o con la instrucción de SQL TRUNCATE TABLE,
los datos reemplazados se conservan durante el período de viaje en el tiempo y de seguridad para fallas.
Si reemplazas una tabla con frecuencia, se generarán cargos adicionales por almacenamiento.
En su lugar, puedes cargar datos de forma incremental en una tabla con el parámetro WRITE_APPEND
en los trabajos de carga, la instrucción de SQL MERGE o la
API de Storage Write.
Reduce el período de viaje en el tiempo
Práctica recomendada: Según tus requisitos, puedes reducir el período de viaje en el tiempo.
Si se reduce el período de viaje en el tiempo del valor predeterminado de siete días, se reduce el período de retención de los datos borrados o modificados en una tabla. Se te facturará por el almacenamiento de viaje en el tiempo solo cuando uses el modelo de facturación de almacenamiento físico (comprimido).
El período de viaje en el tiempo se establece a nivel del conjunto de datos. También puedes establecer el período de viaje en el tiempo predeterminado para los conjuntos de datos nuevos con los parámetros de configuración.
Usa el vencimiento de tablas para las tablas de destino
Recomendación: Si escribes resultados de consulta de gran tamaño en una tabla de destino, usa el tiempo de vencimiento de tabla predeterminado para quitar los datos cuando ya no sean necesarios.
Mantener conjuntos de resultados de gran tamaño en el almacenamiento de BigQuery tiene un costo. Si no necesitas acceso permanente a los resultados, usa el vencimiento de tabla predeterminado para borrar los datos de forma automática.
Archiva datos en Cloud Storage
Práctica recomendada: considera archivar datos en Cloud Storage.
Puedes mover datos de BigQuery a Cloud Storage según las necesidades empresariales del archivo. Como práctica recomendada, considera los precios de almacenamiento a largo plazo y el modelo de facturación de almacenamiento físico antes de exportar datos fuera de BigQuery.
Soluciona problemas de discrepancias de costos y cargos inesperados de BigQuery
Sigue estos pasos para solucionar problemas relacionados con cargos inesperados o discrepancias de costos de BigQuery:
Para comprender de dónde provienen los cargos de BigQuery cuando se consulta el informe de Facturación de Cloud, la primera recomendación es agrupar los cargos por SKU para que sea más fácil observar el uso y los cargos de los servicios de BigQuery correspondientes.
Después de eso, estudia los precios de los SKU correspondientes en la página de documentación de SKU o en la página
Pricingde la IU de Facturación de Cloud para comprender de qué función se trata, por ejemplo, la API de BigQuery Storage Read, el almacenamiento a largo plazo, los precios a pedido o la edición Standard.Después de identificar los SKU correspondientes, usa las vistas
INFORMATION_SCHEMApara identificar los recursos específicos asociados con estos cargos, por ejemplo:- Si se te cobra por el análisis on demand, consulta los ejemplos de vistas de
INFORMATION_SCHEMA.JOBSpara determinar los trabajos que generan costos y los usuarios que los iniciaron. - Si se te cobran los SKU de reserva o compromiso, consulta las vistas
INFORMATION_SCHEMA.RESERVATIONSyINFORMATION_SCHEMA.CAPACITY_COMMITMENTScorrespondientes para identificar las reservas y los compromisos que se cobran. - Si los cargos provienen de los SKU de almacenamiento, consulta los ejemplos de vistas de
INFORMATION_SCHEMA.TABLE_STORAGEpara comprender qué conjuntos de datos y tablas generan más costos.
- Si se te cobra por el análisis on demand, consulta los ejemplos de vistas de
Consideraciones importantes para solucionar problemas:
Ten en cuenta que un período Diario en el informe de Facturación de Cloud comienza a la medianoche, hora del Pacífico de EE.UU. y Canadá (UTC-8), y observa los cambios en el horario de verano en Estados Unidos. Ajusta tus cálculos y agregaciones de datos para que coincidan con los mismos plazos.
Cuando compares la IU de Facturación de Cloud con la exportación de datos de Facturación de Cloud a BigQuery, asegúrate de agregar en función de
usage_start_timeyusage_end_time, no deexport_time.Filtra por proyecto si hay varios proyectos adjuntos a la cuenta de facturación y quieres revisar los cargos que provienen de un proyecto específico.
Asegúrate de seleccionar la región correcta cuando realices investigaciones.
Tu proyecto superó la cuota gratuita de análisis de bytes de consultas
BigQuery devuelve este error cuando ejecutas una consulta en el nivel de uso gratuito y la cuenta alcanza el límite mensual de consultas. Para obtener más información sobre los precios de las consultas, consulta Nivel de uso gratuito.
Mensaje de error
Your project exceeded quota for free query bytes scanned
Solución
Para seguir usando BigQuery, debes actualizar la cuenta a una cuenta de Facturación de Cloud pagada.
Cargos inesperados relacionados con consultas, reservas y compromisos
La solución de problemas de cargos inesperados relacionados con la ejecución de trabajos depende del origen de estos cargos:
- Si observas un aumento en los costos de análisis on demand, esto puede estar relacionado con un aumento en la cantidad de trabajos que se iniciaron o con el cambio en la cantidad de datos que deben procesar los trabajos. Investiga esto con la vista
INFORMATION_SCHEMA.JOBS. - Si hay un aumento en los cargos por las ranuras comprometidas, investiga esto consultando
INFORMATION_SCHEMA.CAPACITY_COMMITMENT_CHANGESpara ver si se compraron o modificaron compromisos nuevos. - En el caso de los aumentos en los cargos que se originan en el uso de reservas, consulta los cambios en las reservas que se registran en
INFORMATION_SCHEMA.RESERVATION_CHANGES. Para hacer coincidir el uso de la reserva de ajuste de escala automático con los datos de facturación, sigue el ejemplo de ajuste de escala automático.
Horas de ranura facturadas mayores que las horas de ranura calculadas de la vista INFORMATION_SCHEMA.JOBS
Cuando se usa una reserva con ajuste de escala automático, la facturación se calcula según la cantidad de ranuras escaladas, no por la cantidad usada. BigQuery ajusta la escala automáticamente en múltiplos de 50 ranuras, lo que genera una facturación por el múltiplo más cercano, incluso si se usa menos de la cantidad ajustada automáticamente. El escalador automático tiene un período mínimo de 1 minuto antes de reducir la escala verticalmente de forma predeterminada, lo que se traduce en que se cobra al menos 1 minuto, incluso si la consulta usó las ranuras durante menos tiempo, por ejemplo, solo 10 segundos del minuto. Para evitar estos cargos, puedes habilitar el escalamiento fluido de BigQuery a nivel de la reserva para obtener una facturación por segundo sin duración mínima. La forma correcta de estimar los cargos de una reserva con ajuste de escala automático se documenta en la página Ajuste de escala automático de ranuras. Para obtener más información sobre cómo usar el ajuste de escala automático de manera eficiente, consulta las prácticas recomendadas para el ajuste de escala automático.
Se observará una situación similar para las reservas sin ajuste de escala automático: la facturación se calcula según la cantidad de ranuras aprovisionadas, no la cantidad de ranuras usadas. Si quieres estimar los cargos de una reserva sin ajuste de escala automático, puedes consultar la vista RESERVATIONS_TIMELINE directamente.
La facturación es inferior al total de bytes facturados calculados a través de INFORMATION_SCHEMA.JOBS para el proyecto que ejecuta consultas a pedido
Puede haber varios motivos por los que la facturación real sea inferior a los bytes procesados calculados:
- Cada proyecto recibe 1 TB de consultas de nivel gratuito por mes sin costo adicional.
- Los trabajos de tipo
SCRIPTno se excluyeron del cálculo, lo que podría provocar que algunos valores se cuenten dos veces. - Son los diferentes tipos de ahorros que se aplican a tu cuenta de Facturación de Cloud, como descuentos negociados, créditos promocionales y otros. Consulta la sección Ahorros del informe de Facturación de Cloud. Aquí también se incluye el nivel gratuito de 1 TB de consultas por mes.
La facturación es mayor que los bytes procesados calculados a través de INFORMATION_SCHEMA.JOBS para el proyecto que ejecuta consultas a pedido
Si el importe de facturación es mayor que el valor que calculaste con la consulta de la vista INFORMATION_SCHEMA.JOBS, es posible que se deba a ciertas condiciones:
Consultas en tablas con seguridad a nivel de fila
- Las consultas en tablas con seguridad a nivel de fila no producen un valor para
total_bytes_billeden la vistaINFORMATION_SCHEMA.JOBS. Por lo tanto, la facturación calculada contotal_bytes_billedde la vistaINFORMATION_SCHEMA.JOBSserá menor que el valor facturado. Consulta la página Prácticas recomendadas para la seguridad a nivel de fila para obtener más detalles sobre por qué no se puede ver esta información.
- Las consultas en tablas con seguridad a nivel de fila no producen un valor para
Realiza operaciones de AA en BigQuery
- Los precios de las consultas a pedido de BigQuery ML dependen del tipo de modelo que se crea. Algunas de estas operaciones de modelos se cobran con una tarifa más alta que las consultas que no son de AA. Por lo tanto, si solo sumas todos los
total_billed_bytesdel proyecto y usas la tarifa estándar de precios a pedido por TB, no será una agregación de precios correcta, ya que debes tener en cuenta la diferencia de precios por TB.
- Los precios de las consultas a pedido de BigQuery ML dependen del tipo de modelo que se crea. Algunas de estas operaciones de modelos se cobran con una tarifa más alta que las consultas que no son de AA. Por lo tanto, si solo sumas todos los
Importes de precios incorrectos
- Confirma que se usen los valores de precios por TB correctos en los cálculos. Asegúrate de elegir la región correcta, ya que los precios dependen de la ubicación. Consulta la documentación de precios.
El consejo general es seguir la forma recomendada de calcular el uso de trabajos a pedido para la facturación en nuestra documentación pública.
Se facturó el uso de la API de BigQuery Reservations, aunque la API está inhabilitada y no se usaron reservas ni compromisos
Inspecciona el SKU para comprender mejor qué servicios se cobran. Si el SKU facturado es BigQuery Governance SKU, estos son cargos que provienen de Knowledge Catalog.
Algunas funciones de Knowledge Catalog activan la ejecución de trabajos con BigQuery. Estos cargos ahora se procesan con el SKU correspondiente de la API de BigQuery Reservations. Consulta la documentación de Precios de Knowledge Catalog para obtener más detalles.
El proyecto está asignado a una reserva, pero aún se ven los costos a pedido de BigQuery Analysis
Lee la sección Soluciona problemas con las reservas para identificar de dónde podrían provenir los cargos de Analysis.
Cargos inesperados por ranuras de pago por uso (PAYG) para la edición Standard de BigQuery
En el informe de Facturación de Cloud, aplica un filtro con la etiqueta goog-bq-feature-type con el valor BQ_STUDIO_NOTEBOOK. El uso que verás se mide como ranuras de pago por uso en la edición BigQuery Standard. Estos son cargos por usar el notebook de BigQuery Studio. Obtén más información sobre los precios de los notebooks de BigQuery Studio.
Cargos inesperados por ranuras de pago por uso (PAYG) para la edición Enterprise de BigQuery
En el informe de Facturación de Cloud, aplica un filtro con la etiqueta goog-bq-feature-type con el valor SPARK_PROCEDURE. El uso que verás se mide como ranuras de pago por uso en la edición Enterprise de BigQuery. Estos son cargos por usar los procedimientos de Apache Spark de BigQuery, que se cobran de esta manera, independientemente del modelo de procesamiento que use el proyecto.
Los cargos de la API de BigQuery Reservations aparecen después de que se inhabilita la API de Reservations
Inhabilitar BigQuery no detendrá los cargos por compromiso. Para detener los cargos por compromiso, deberás borrar un compromiso. Establece el plan de renovación en NONE y el compromiso se borrará automáticamente cuando venza.
Consultar tablas muy pequeñas genera un costo desproporcionadamente alto para la facturación a pedido
El mínimo de "datos procesados por tabla a la que se hace referencia" que se factura por una consulta de BigQuery es de 10 MiB, independientemente del tamaño real de la tabla. Del mismo modo, el mínimo de "datos procesados por consulta" que se factura es de 10 MiB. Cuando consultas tablas pequeñas, incluso una tabla de tamaño de KB, se te cobra al menos 10 MiB por cada consulta. Esto puede generar cargos mucho más altos que tus estimaciones de facturación a pedido y es particularmente costoso para los precios de cómputo a pedido.
Cargos de almacenamiento inesperados
Situaciones que podrían generar un aumento en los cargos de almacenamiento:
- Aumentos en la cantidad de datos que se almacenan en tus tablas: usa la vista
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINEpara supervisar el cambio en bytes de tus tablas. - Cambia los modelos de facturación de conjuntos de datos
- Aumenta el período de viaje en el tiempo para los conjuntos de datos del modelo de facturación físico
- Modificación de tablas que tienen datos en el almacenamiento a largo plazo, lo que hace que se conviertan en almacenamiento activo
La eliminación de tablas o conjuntos de datos generó costos de almacenamiento de BigQuery más altos
La función de viaje en el tiempo de BigQuery conserva los datos borrados durante el período de viaje en el tiempo configurado y 7 días adicionales para la recuperación con seguridad ante fallas. Durante este período de retención, los datos borrados en los conjuntos de datos del modelo de facturación de almacenamiento físico contribuyen al costo de almacenamiento físico activo, aunque las tablas ya no aparecerán en INFORMATION_SCHEMA.TABLE_STORAGE ni en la consola. Si los datos de la tabla estaban en el almacenamiento a largo plazo, la eliminación hace que estos datos se muevan al almacenamiento físico activo. Esto hace que el costo correspondiente aumente, ya que los bytes físicos activos se cobran aproximadamente 2 veces más que los bytes físicos a largo plazo, según la página de precios de almacenamiento de BigQuery. El enfoque recomendado para minimizar los costos causados por la eliminación de datos en los conjuntos de datos del modelo de facturación de almacenamiento físico es reducir el período de viaje en el tiempo a 2 días.
Se reducen los costos de almacenamiento sin modificar los datos
En BigQuery, los usuarios pagan por el almacenamiento activo y a largo plazo. Los cargos de almacenamiento activo incluyen cualquier tabla o partición de tabla que no se haya modificado durante 90 días consecutivos, mientras que los cargos de almacenamiento a largo plazo incluyen tablas y particiones que no se hayan modificado durante 90 días consecutivos. La reducción general de los costos de almacenamiento se puede observar cuando los datos se transfieren al almacenamiento a largo plazo, que es alrededor de un 50% más económico que el almacenamiento activo. Consulta los precios de almacenamiento para obtener más detalles.
Aumentó el costo de almacenamiento sin un aumento significativo de los datos
Los costos de almacenamiento pueden aumentar si los datos en el almacenamiento a largo plazo se mueven al almacenamiento activo de BigQuery como resultado de ciertas acciones en los datos, los metadatos o las particiones de la tabla. Para obtener más detalles, consulta Usa el almacenamiento a largo plazo.
Los cálculos de almacenamiento de INFORMATION_SCHEMA no coinciden con la facturación
- Usa la vista
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINEen lugar deINFORMATION_SCHEMA.TABLE_STORAGE:TABLE_STORAGE_USAGE_TIMELINEproporciona datos más precisos y detallados para calcular correctamente los costos de almacenamiento - Las consultas que se ejecutan en las vistas de
INFORMATION_SCHEMAno incluyen impuestos, ajustes ni errores de redondeo. Ten en cuenta estos factores cuando compares los datos. Obtén más información sobre los informes en la Facturación de Cloud en esta página. - Los datos que se presentan en las vistas de
INFORMATION_SCHEMAestán en UTC, mientras que los datos del informe de facturación se informan en la hora del Pacífico de EE.UU. y Canadá (UTC-8).
¿Qué sigue?
- Obtén más información sobre los precios de BigQuery.
- Obtén información para optimizar las consultas.
- Obtén más información para optimizar el almacenamiento.
Para obtener información sobre facturación, alertas y visualización de datos, consulta los siguientes temas: