Bigquery El particionamiento es una forma eficaz de optimizar el rendimiento de las consultas en BigQuery de Google Pero, ¿qué es exactamente BigQuery y cómo puede el particionamiento acelerar el análisis de datos?
BigQuery es un almacén de datos empresariales totalmente gestionado y sin servidor que se ofrece como parte de Google Cloud Platform. Permite ejecutar consultas SQL rápidas utilizando la potencia de procesamiento de la infraestructura de Google.
Sin embargo, a medida que los datos crecen, el rendimiento de las consultas puede disminuir. Aquí es donde entra en juego el particionamiento. Al dividir las tablas grandes en particiones más pequeñas, el particionamiento puede organizar los datos y acelerar las consultas.
Consulte esta guía paso a paso sobre la partición de BigQuery para comprender cómo funciona y cómo puede crear tablas particionadas para optimizar sus análisis de datos.
Cómo funciona la partición de BigQuery
En BigQuery, puede dividir tablas grandes en trozos de datos más pequeños y manejables, denominados particiones. El objetivo es almacenar los datos relacionados juntos en particiones, separados de los datos no relacionados en otras particiones. Cuando se consulta una tabla, BigQuery sólo explora las particiones relacionadas con esa consulta en lugar de toda la tabla.
Por ejemplo, supongamos que tiene una tabla de datos financieros que abarca 10 años, con 10 millones de filas en total. Con el particionamiento de BigQuery, podría dividir esta tabla por año en 10 particiones, una por cada año.
Cuando se consultan datos de un año concreto, BigQuery recupera datos de una sola partición, lo que reduce la cantidad de análisis necesarios para las consultas.
Como resultado, BigQuery devolverá los resultados más rápido de lo que se tardaría en escanear toda la tabla. Como se cobra por el número de bytes procesados por cada consulta, también se ahorraría dinero al no escanear datos irrelevantes.
Cómo crear tablas particionadas en BigQuery
Para demostrar cómo podemos crear tablas particionadas, utilizaremos un conjunto de datos que contiene información sobre los términos de búsqueda ascendentes en Google Trends.
Escribiré una consulta SQL para filtrar los datos de la tabla “rising_terms” y devolver columnas específicas en función de estos criterios: la puntuación es superior a 99 y la fecha está comprendida entre 2018-01-01 y 2019-01-01.
Nota: si quieres aprender a escribir consultas SQL básicas, consulta este artículo sobre Sintaxis de BigQuery.
Este es el aspecto que tendría la consulta:
SELECT término, puntuación, semana, rango, nombre_país
FROM `bigquery-dataset-396013.Google_trends.rising_terms`
WHERE semana ENTRE ‘2018-01-01’ y ‘2019-01-01’
Y puntuación > 99
LIMITE 1000;
Vamos a desglosarlo:
SELECT término, puntuación, semana, rango, nombre_país - estas son las columnas que quiero que BigQuery devuelva.
FROM `bigquery-dataset-396013.Google_trends.rising_terms` - esta es la tabla desde la que consultar los datos.
WHERE semana ENTRE ‘2018-01-01’ y ‘2019-01-01’ - esta cláusula filtra las filas a sólo aquellas donde la semana está entre estas dos fechas.
Y puntuación > 99 - se trata de un filtro adicional para incluir sólo las filas en las que la puntuación sea superior a 99.
LIMITE 1000; - esta cláusula limita los resultados a un máximo de 1000 filas.
Tras ejecutar esta consulta, BigQuery devuelve las columnas y filas que cumplen estos criterios. Cuando ejecuté la consulta, tuvo que escanear todas las filas para devolver los datos que caen bajo estos criterios.
Aquí es donde el particionamiento de BigQuery resulta útil. Al dividir la tabla en particiones más pequeñas, BigQuery puede escanear solo los segmentos que coinciden con los criterios que establecí al escribir la consulta.
Para particionar la tabla, utilizaré la siguiente sintaxis:
CREAR TABLA nombre_tabla
PARTITION BY expresión_partición
Escribiré una consulta para crear una tabla particionada utilizando una sentencia SELECT para rellenarla con datos de una tabla existente. Esta consulta crea una nueva tabla llamada rising_terms_by_year en el conjunto de datos especificado. Además, especifica que esta nueva tabla debe estar particionada por la columna semana. También selecciona las columnas especificadas de la tabla rising_terms existente para extraer los datos.
CREAR TABLA `bigquery-dataset-396013.Google_trends.rising_terms_by_year` (en inglés)
PARTITION BY semana AS
SELECT término, puntuación, semana, rango, nombre_país
FROM `bigquery-dataset-396013.Google_trends.rising_terms`
Como puede ver, BigQuery ha creado una tabla particionada llamada “rising_terms_by_year”.
Guía paso a paso de la partición de BigQuery
Así es como se crean tablas particionadas en BigQuery. Al crear tablas particionadas, puede dividir tablas grandes en trozos de datos más pequeños y manejables. Esto permite a BigQuery devolver resultados de forma más rápida y eficiente.
Si desea obtener más información sobre BigQuery, consulte este artículo en cómo utilizar las funciones agregadas de BigQuery.
