Estima y controla los costos
En esta página, se describe cómo estimar el costo y se enumeran las prácticas recomendadas para controlar los costos en BigQuery. BigQuery ofrece dos tipos de modelos de precios: según demanda y basados en la capacidad. Para obtener más información sobre los precios, consulta Precios de BigQuery.
Con BigQuery, puedes estimar el costo de ejecutar una consulta, calcular el byte que procesan varias consultas y obtener una estimación del costo mensual en función del uso previsto. Para controlar el costo, también debes seguir las prácticas recomendadas para optimizar el procesamiento de las consultas y el almacenamiento de BigQuery. Para conocer las prácticas recomendadas específicas de los costos, consulta Controla los costos de consulta.
Para supervisar los costos de consulta y el uso de BigQuery, analiza los registros de auditoría de BigQuery.
Estima los costos de las consultas
BigQuery proporciona varios métodos para estimar los costos:
- Usa la opción de ejecución de prueba de consulta para estimar los costos antes de ejecutar una consulta con el modelo de precios según demanda.
- Calcula la cantidad de bytes procesados por varios tipos de consultas.
- Obtén el costo mensual según el uso previsto con la calculadora de precios de Google Cloud.
Cálculo del tamaño de la consulta según demanda
Para calcular la cantidad de bytes que procesan los diversos tipos de consultas mediante el modelo de facturación según demanda, consulta las siguientes secciones:
Consulta formatos de columna en Cloud Storage
Si tus datos externos se almacenan en ORC o Parquet, la cantidad de bytes que se cobran está limitada por las columnas que BigQuery lee. Debido a que la consulta convierte los tipos de datos de una fuente externa en tipos de datos de BigQuery, la cantidad de bytes leídos se calcula según el tamaño de los tipos de datos de BigQuery. Para obtener más información sobre las conversiones de tipos de datos, consulta las siguientes páginas:
Usa la calculadora de precios de Google Cloud.
La calculadora de precios de Google Cloud puede ayudarte a crear una estimación del costo mensual general para BigQuery en función del uso proyectado.
A pedido
Para estimar los costos en la calculadora de precios de Google Cloud con el modelo de precios según demanda, sigue estos pasos:
- Abre la calculadora de precios de Google Cloud.
- Haz clic en BigQuery.
- Haz clic en la pestaña On-Demand (A pedido).
- En Precios de almacenamiento, ingresa el tamaño estimado de la tabla en los campos de almacenamiento. 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.
- En Query Pricing (Precios de las consultas), ingresa los bytes leídos estimados de tu ejecución de prueba o el validador de consultas.
- Haz clic en Add To Estimate (Agregar a la estimación).
- La estimación aparece a la derecha. Ten en cuenta que puedes guardar o enviar la estimación por correo electrónico.
Para obtener más información, consulta los precios según demanda.
Ediciones
Para estimar los costos en la calculadora de precios de Google Cloud con el modelo de precios basado en la capacidad con las ediciones de BigQuery, sigue estos pasos:
- Abre la calculadora de precios de Google Cloud.
- Haz clic en BigQuery.
- Haz clic en la pestaña Ediciones.
- 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.
- Haz clic en Agregar a la estimación.
Para obtener más información, consulta Precios por capacidad.
Controla los costos de las consultas
Para optimizar los costos de las consultas, asegúrate de tener almacenamiento optimizado y cálculo de consulta. Para conocer métodos adicionales a fin de controlar el costo de las consultas, visita las siguientes secciones:
Comprueba el costo de las consultas antes de ejecutarlas
Recomendación: Antes de ejecutar consultas, obtén una vista previa para estimar los costos.
Las consultas se facturan según el número 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.
- Usa la calculadora de precios de Google Cloud.
- Realiza una ejecución de prueba para las consultas.
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 del número 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 US
Si 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.
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.
Si exploras tus datos o experimentas con ellos, puedes usar las opciones de vista previa de tablas de forma gratuita sin afectar las cuotas.
BigQuery es compatible con las siguientes opciones de vista previa de datos:
- En la consola de Google Cloud, en la página de detalles de la tabla, haz clic en la pestaña Vista previa para hacer un muestreo de los datos.
- En la herramienta de línea de comandos de bq, usa el comando
bq head
y especifica la cantidad de filas para la vista previa. - En la API, usa
tabledata.list
para recuperar los datos de tabla de un conjunto específico de filas. - Evita usar
LIMIT
en tablas no agrupadas en clústeres. En el caso de las tablas no agrupadas en clústeres, una cláusulaLIMIT
no reducirá los costos de procesamiento.
Restringe la cantidad de bytes facturados
Recomendación: Usa la configuración de máximo de bytes facturados para limitar los costos de consulta.
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 Más > 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 en clústeres
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 en clústeres, 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.
Visualiza los costos con un panel y consulta tus registros de auditoría
Recomendación: Crea un panel a fin de ver tus datos de facturación para poder realizar ajustes en tu uso de BigQuery. También considera transmitir tus registros de auditoría a BigQuery para poder analizar los patrones de uso.
Puedes exportar tus datos de facturación a BigQuery y visualizarlos en una herramienta como Looker Studio. Para ver un instructivo sobre cómo crear un panel de facturación, consulta Visualiza la Facturación de Google Cloud mediante BigQuery y Looker Studio.
También puedes transmitir tus registros de auditoría a BigQuery y analizarlos en busca de patrones de uso, como los costos de consulta por usuario.
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 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.
Para obtener más información, consulta los precios de almacenamiento.
¿Qué sigue?
- Obtén más información sobre los precios de BigQuery.
- Obtén información para optimizar la consulta.
- 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: