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 en una columna de 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 ese bloque pertenezcan a una sola partición. Una tabla particionada mantiene estas propiedades en todas las operaciones que la modifiquen: trabajos de consulta, declaraciones de lenguaje de manipulación de datos (DML), declaraciones de lenguaje de definición de datos (DDL), trabajos de carga y de copiado. Para ello, BigQuery debe mantener más metadatos que una tabla no particionada. A medida que se incrementa la cantidad de particiones, aumenta la sobrecarga de metadatos.

Si bien se deben mantener más metadatos, cuando se garantiza que los datos se particionan globalmente, 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 particionada 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 eliminan bloques de datos durante la ejecución de la consulta, BigQuery proporciona una mejor reducción de los costos de la consulta.

Con el tiempo, a medida que cada vez más operaciones modifiquen la tabla, el grado en que se clasifican los datos comienza a debilitarse, y la tabla pasa a tener una clasificación parcial. En una tabla con clasificación parcial, es posible que las consultas que utilizan las columnas de agrupamiento en clústeres tengan que analizar más bloques en comparación con una tabla completamente ordenada. Puedes volver a agrupar los datos de toda la tabla; para ello, ejecuta la consulta SELECT *, que selecciona la tabla (o cualquier partición específica de ella) y la reemplaza. Además, cualquier parte arbitraria de la tabla se puede volver a agrupar en clústeres mediante la declaración DML MERGE.

Cuotas y límites de tablas agrupadas

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 son gratuitas, como cargar datos en tablas agrupadas, copiar tablas y particiones, y exportar datos. A pesar de esto, 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.

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.