Introducción a las tablas agrupadas

En este documento se proporciona una descripción general sobre la capacidad de agrupamiento en clústeres de las tablas en BigQuery.

Descripción general

Cuando creas una tabla agrupada en clústeres en BigQuery, los datos de la tabla se organizan de forma automática en función del contenido de una o más columnas en el esquema de la tabla. Las columnas que especificas se usan para colocar datos relacionados. Cuando agrupas una tabla en clústeres a través de varias columnas, el orden de las columnas que especifiques es importante. El orden de las columnas especificadas determina la clasificación de los datos.

El agrupamiento en clústeres puede mejorar el rendimiento de ciertos tipos de consultas, como las consultas que usan cláusulas de filtro y las que agregan datos. Cuando los datos se escriben en una tabla agrupada en clústeres a través de un trabajo de consulta o de carga, BigQuery ordena los datos mediante los valores de las columnas de agrupamiento en clústeres. Estos valores se usan con el fin de organizar los datos en diferentes bloques en el almacenamiento de BigQuery. Cuando envías una consulta que contiene una cláusula que filtra los datos en función de las columnas de agrupamiento en clústeres, BigQuery usa los bloques ordenados para eliminar análisis de datos innecesarios.

De la misma manera, cuando envías una consulta que agrega datos en función de los valores de las columnas de agrupamiento en clústeres, el rendimiento mejora, ya que los bloques ordenados ubican filas con valores similares.

Cuándo usar el agrupamiento en clústeres

En la actualidad, BigQuery es compatible con el agrupamiento en clústeres en una tabla particionada. Usa el agrupamiento en clústeres en una tabla particionada en los siguientes casos:

  • Tus datos se encuentran particionados en una columna de fecha o de marca de tiempo.
  • Por lo general, usas filtros o la agregación en columnas particulares en tus consultas.

La agrupación en clústeres se puede realizar en tablas particionadas según los siguientes parámetros:

Por el momento, el agrupamiento en clústeres no se puede realizar en tablas que no estén particionadas.

Cuando usas el agrupamiento en clústeres y la partición al mismo tiempo, los datos se pueden particionar por columna de fecha o marca de tiempo y, luego, agruparse en un conjunto de columnas diferente. En este caso, los datos en cada partición se agrupan en clústeres en función de los valores de las columnas de agrupamiento en clústeres. La partición proporciona una forma de obtener estimaciones de costos precisas para las consultas (según las particiones que se analicen).

Agrupa tablas particionadas en clústeres

En una tabla particionada por una columna de fecha o marca de tiempo, cada partición contiene un solo día de datos. Cuando los datos se almacenan, BigQuery garantiza que todos los datos en un bloque pertenezcan a una sola partición. Una tabla particionada mantiene estas propiedades a través de todas las operaciones que la modifiquen: trabajos de consulta, de carga y de copia, declaraciones de lenguaje de manipulación de datos (DML) y declaraciones de lenguaje de definición de datos (DDL). Para ello, BigQuery debe mantener más metadatos que una tabla no particionada. A medida que se incrementa el número de particiones, aumenta la cantidad de sobrecarga de metadatos.

Si bien se deben mantener más metadatos, cuando se garantiza que los datos se particionan de forma global, BigQuery puede estimar con mayor precisión los bytes procesados por una consulta antes de que la ejecutes. Este cálculo de costos proporciona un límite superior en el costo final de la consulta.

En una tabla agrupada en clústeres, BigQuery ordena de forma automática los datos según los valores de las columnas de agrupamiento en clústeres y los organiza en bloques de almacenamiento de tamaño ideal. Puedes lograr una clasificación más detallada si creas una tabla agrupada en clústeres y particionada. Una tabla agrupada en clústeres mantiene las propiedades de clasificación en el contexto de cada operación que la modifica. Como resultado, es posible que BigQuery no pueda estimar con precisión los bytes que se procesaron en la consulta o los costos de la consulta. Cuando se borran bloques de datos durante una consulta, BigQuery proporciona una reducción de los costos de la consulta basada en el mejor esfuerzo.

Reagrupamiento en clústeres automático

A medida que se agregan datos a una tabla agrupada en clústeres, los datos recién insertados se pueden escribir en bloques que contengan rangos de claves que se superpongan con los de bloques anteriores. Estas claves superpuestas debilitan la propiedad de clasificación de la tabla.

A fin de mantener las características de rendimiento de una tabla agrupada en clústeres, BigQuery realiza un reagrupamiento en clústeres automático en segundo plano para restablecer la propiedad de clasificación de la tabla. En las tablas particionadas, el agrupamiento en clústeres se mantiene para los datos dentro del alcance de cada partición.

Cuotas y límites de tablas agrupadas

Cuando usas la función de tabla agrupada con una tabla particionada, estás sujeto a los límites de las tablas particionadas.

Las cuotas y los límites también se aplican a los diferentes tipos de trabajos que puedes ejecutar en las tablas agrupadas, incluidos los siguientes:

Para obtener más información sobre todas las cuotas y los límites, consulta Cuotas y límites.

Precios de las tablas agrupadas

Cuando creas y usas tablas agrupadas en BigQuery, se te cobra según la cantidad de datos almacenados en las tablas y las consultas que ejecutas en ellos.

Muchas operaciones en las tablas agrupadas en clústeres son gratuitas, como la carga de datos en tablas agrupadas en clústeres, la copia de tablas y particiones, y la exportación de datos. Estas operaciones están sujetas a las cuotas y límites de BigQuery. Para obtener información sobre todas las operaciones gratuitas, consulta Operaciones gratuitas en la página de precios.

Para obtener ejemplos detallados de precios de tablas agrupadas, consulta la página Precios de las tablas agrupadas.

Funciones en desarrollo

Las siguientes funciones están en desarrollo y no se encuentran disponibles:

  • Agrupamiento en clústeres de tablas no particionadas

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.