Introducción a las tablas agrupadas

En este documento, se proporciona una descripción general sobre la asistencia para el agrupamiento en clústeres de tablas en BigQuery.

Descripción general

Cuando creas una tabla agrupada en clústeres en BigQuery, los datos de la tabla se organizan automáticamente según el contenido de una o más columnas en el esquema de la tabla. Las columnas que especificas se utilizan para colocar datos relacionados. Cuando agrupas una tabla con el uso de varias columnas, el orden de las columnas que especificas es importante. El orden de las columnas especificadas determina el orden de clasificación de los datos.

El agrupamiento en clústeres puede mejorar el rendimiento de ciertos tipos de consultas, como consultas que utilizan cláusulas de filtro y las que agregan datos. Cuando los datos se escriben en una tabla agrupada a través de un trabajo de consulta o de carga, BigQuery ordena los datos mediante los valores en las columnas de agrupamiento en clústeres. Estos valores se utilizan 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 datos según las columnas de agrupamiento en clústeres, BigQuery utiliza los bloques ordenados a fin de 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

Actualmente, BigQuery es compatible con el agrupamiento en clústeres sobre una tabla particionada. Utiliza el agrupamiento en clústeres en una tabla particionada en los siguientes casos:

  • Tus datos se encuentran particionados en una columna de fecha o marca de tiempo.
  • Generalmente, utilizas filtros o agregación en columnas particulares en tus consultas.

El agrupamiento en clústeres es compatible con tablas particionadas por tiempo de transferencia y con tablas particionadas según una columna DATE o TIMESTAMP. Actualmente, el agrupamiento en clústeres no es compatible con tablas no particionadas.

Cuando utilizas agrupamiento en clústeres y 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 diferentes. En este caso, los datos en cada partición se agrupan en clústeres según 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 (en función de las particiones que se analizan).

Cómo agrupar 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 costo proporciona un límite superior en el costo final de la consulta.

En una tabla agrupada en clústeres, BigQuery ordena automáticamente 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 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 procesados en la consulta o el costo 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 podrían escribirse 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 en clústeres

Cuando utilizas 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 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 límites, consulta Cuotas y límites.

Precios de las tablas agrupadas

Cuando creas y usas tablas agrupadas en BigQuery, el cobro se basa en la cantidad de datos almacenados en las tablas y en las consultas que ejecutas en ellos.

Muchas operaciones en tablas agrupadas en clústeres no generan cargos, entre ellas se incluye cargar datos en estas tablas, copiar tablas y particiones y exportar datos. Estas operaciones están sujetas a las cuotas y límites de BigQuery. Para obtener información sobre todas las operaciones gratuitas, consulta las operaciones gratuitas en la página de precios.

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

Características en desarrollo

Las siguientes características se están desarrollando, pero no están disponibles actualmente:

  • Compatibilidad con tablas agrupadas en clústeres y no particionadas.

Próximos pasos

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

Enviar comentarios sobre...

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