Optimiza el almacenamiento en BigQuery

En esta página, se proporcionan prácticas recomendadas para optimizar el almacenamiento de BigQuery. BigQuery almacena datos en formato de columnas. Las bases de datos orientadas a columnas están optimizadas para cargas de trabajo analíticas que agregan datos a una gran cantidad de registros. Como las columnas suelen tener más redundancia que las filas, esta característica permite una mayor compresión de datos usando técnicas como la codificación de longitud de la ejecución. Para obtener más información sobre cómo BigQuery almacena los datos, consulta Descripción general del almacenamiento de BigQuery. La optimización del almacenamiento de BigQuery mejora el rendimiento de las consultas y controla los costos.

BigQuery proporciona detalles sobre el consumo de almacenamiento de tus recursos. Para ver los metadatos de almacenamiento de la tabla, consulta las siguientes vistas INFORMATION_SCHEMA:

Datos de tabla del clúster

Práctica recomendada: crea tablas agrupadas en clústeres.

Para optimizar el almacenamiento de las consultas, comienza por agrupar en clústeres los datos de la tabla. Si agrupas en clústeres las columnas más usadas, puedes reducir el volumen total de datos que analiza la consulta. Para obtener información sobre cómo crear clústeres, consulta Crea y usa tablas agrupadas en clústeres.

Datos de tabla de particiones

Práctica recomendada: divide las tablas grandes con particiones.

Con las particiones, puedes agrupar y ordenar los datos por un conjunto de características de columnas definidas, como una columna de números enteros, una columna de unidad de tiempo o el tiempo de transferencia. La partición mejora el rendimiento de las consultas y controla los costos reduciendo la cantidad de bytes que lee una consulta.

Para obtener más información sobre las particiones, consulta Introducción a las tablas particionadas.

Usa la configuración de vencimiento de tablas y particiones

Práctica recomendada: para optimizar el almacenamiento, establece la configuración de caducidad predeterminada para los conjuntos de datos, las tablas y las tablas particionadas.

Puedes controlar los costos de almacenamiento y optimizar el uso del almacenamiento configurando la caducidad de la tabla predeterminada para las tablas recién creadas en un conjunto de datos. Cuando una tabla caduca, se borra junto con todos los datos que contiene la tabla. Si configuras la propiedad cuando se crea el conjunto de datos, cualquier tabla creada en el conjunto de datos se borrará después del período de vencimiento. Si configuras la propiedad después de crear el conjunto de datos, solo se borrarán las nuevas tablas después del período de vencimiento.

Por ejemplo, si estableces la caducidad de la tabla predeterminada dentro de siete días, los datos más antiguos se borran automáticamente después de una semana.

Esta opción es útil si necesitas acceder solo a los datos más recientes. También es útil si estás experimentando con datos y no necesitas conservarlos.

Si tus tablas están particionadas por fecha, la caducidad predeterminada de la tabla del conjunto de datos se aplica a las particiones individuales. También puedes controlar el vencimiento de la partición con la marca time_partitioning_expiration en la herramienta de línea de comandos de bq o el parámetro de configuración expirationMs en la API. Cuando una partición se vence, los datos en la partición se borran, pero la tabla particionada no se descarta, incluso si la tabla está vacía. Por ejemplo, el siguiente comando establece un vencimiento para las particiones después de tres días:

bq mk \
--time_partitioning_type=DAY \
--time_partitioning_expiration=259200 \
project_id:dataset.table

Almacena datos en BigQuery

Práctica recomendada: almacena tus datos en BigQuery.

Cuando cargas datos en BigQuery desde Cloud Storage, no se te cobra la operación, pero sí se generan cargos por el almacenamiento de los datos en Cloud Storage. Después de cargar los datos en BigQuery, estos están sujetos a los precios de almacenamiento de BigQuery. Se te cobrará por el almacenamiento físico o lógico que consume tu tabla, incluidos los bloques de almacenamiento de viaje en el tiempo.

En lugar de exportar tus datos más antiguos a otra opción de almacenamiento (como Cloud Storage), aprovecha 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.

Identifica datos a largo plazo o a corto plazo

Práctica recomendada: identifica si los datos a nivel de la fila deben almacenarse a largo plazo y solo almacena datos agregados a largo plazo.

En muchos casos, los detalles contenidos en los datos transaccionales o a nivel de fila son útiles a corto plazo, pero se hace referencia a ellos a largo plazo. En estas situaciones, puedes compilar consultas de agregación para calcular y almacenar las métricas asociadas con estos datos y, luego, usar el vencimiento de la tabla o de la partición para quitar sistemáticamente los datos a nivel de fila. Esto reduce los cargos de almacenamiento y mantiene las métricas disponibles para el consumo a largo plazo.

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 reducen los días de viaje en el tiempo del valor predeterminado de siete, se reduce la cantidad total de bloques de almacenamiento almacenados para un objeto. El período de viaje en el tiempo se establece a nivel del conjunto de datos.

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 a largo plazo de BigQuery antes de exportar datos fuera de BigQuery.

¿Qué sigue?