Introducción

BigQuery es un servicio de almacenamiento de datos y análisis de grandes volúmenes de datos desarrollado por Google. Es parte de la suite de Google Cloud Platform (GCP) y está diseñado para manejar consultas SQL a gran escala de manera rápida y eficiente. BigQuery permite a los usuarios analizar terabytes y petabytes de datos en cuestión de segundos, sin necesidad de gestionar la infraestructura subyacente.

Características Clave de BigQuery

  1. Escalabilidad: BigQuery puede manejar desde pequeños conjuntos de datos hasta petabytes de información sin necesidad de ajustes manuales.
  2. Velocidad: Utiliza una arquitectura de procesamiento en paralelo masivo (MPP) que permite ejecutar consultas SQL complejas en grandes volúmenes de datos rápidamente.
  3. Sin Servidor: No requiere la gestión de servidores o infraestructura. Google se encarga de la administración y escalado automático.
  4. SQL Estándar: Soporta SQL estándar, lo que facilita la transición para aquellos que ya están familiarizados con SQL.
  5. Integración con GCP: Se integra fácilmente con otros servicios de Google Cloud, como Google Data Studio, Google Sheets, y Google Cloud Storage.
  6. Seguridad: Ofrece control de acceso detallado, encriptación de datos en reposo y en tránsito, y auditoría de acceso.

¿Cómo Funciona BigQuery?

BigQuery utiliza una arquitectura de almacenamiento y procesamiento distribuido. Los datos se almacenan en tablas dentro de conjuntos de datos, y las consultas se ejecutan utilizando SQL estándar. A continuación, se presenta un flujo básico de cómo funciona BigQuery:

  1. Carga de Datos: Los datos se cargan en BigQuery desde diversas fuentes, como Google Cloud Storage, bases de datos locales, o mediante streaming en tiempo real.
  2. Almacenamiento: Los datos se almacenan en tablas dentro de conjuntos de datos. BigQuery utiliza un formato de almacenamiento columnar optimizado para consultas analíticas.
  3. Consulta: Los usuarios escriben consultas SQL para analizar los datos. BigQuery distribuye la carga de trabajo entre múltiples nodos para ejecutar las consultas de manera eficiente.
  4. Resultados: Los resultados de las consultas se devuelven rápidamente y pueden ser exportados a otros servicios o herramientas para su análisis adicional.

Ejemplo Práctico

A continuación, se muestra un ejemplo básico de una consulta SQL en BigQuery:

SELECT
  name,
  SUM(number_of_views) AS total_views
FROM
  `my_dataset.my_table`
WHERE
  date BETWEEN '2023-01-01' AND '2023-12-31'
GROUP BY
  name
ORDER BY
  total_views DESC
LIMIT 10;

Explicación del Código

  • SELECT name, SUM(number_of_views) AS total_views: Selecciona el nombre y la suma de las vistas, renombrando la suma como total_views.
  • FROM my_dataset.my_table: Especifica la tabla my_table dentro del conjunto de datos my_dataset.
  • WHERE date BETWEEN '2023-01-01' AND '2023-12-31': Filtra los datos para incluir solo aquellos entre el 1 de enero de 2023 y el 31 de diciembre de 2023.
  • GROUP BY name: Agrupa los resultados por el campo name.
  • ORDER BY total_views DESC: Ordena los resultados por total_views en orden descendente.
  • LIMIT 10: Limita los resultados a los 10 primeros registros.

Ejercicio Práctico

Ejercicio 1: Consulta Básica en BigQuery

Objetivo: Escribir una consulta SQL para obtener los 5 productos más vendidos en el último mes.

Instrucciones:

  1. Crea una tabla llamada sales con las siguientes columnas: product_id, product_name, quantity_sold, sale_date.
  2. Inserta algunos datos de ejemplo en la tabla.
  3. Escribe una consulta SQL para obtener los 5 productos más vendidos en el último mes.

Solución:

-- Crear la tabla sales
CREATE TABLE my_dataset.sales (
  product_id STRING,
  product_name STRING,
  quantity_sold INT64,
  sale_date DATE
);

-- Insertar datos de ejemplo
INSERT INTO my_dataset.sales (product_id, product_name, quantity_sold, sale_date)
VALUES
  ('P001', 'Product A', 100, '2023-09-01'),
  ('P002', 'Product B', 150, '2023-09-02'),
  ('P003', 'Product C', 200, '2023-09-03'),
  ('P004', 'Product D', 250, '2023-09-04'),
  ('P005', 'Product E', 300, '2023-09-05');

-- Consulta para obtener los 5 productos más vendidos en el último mes
SELECT
  product_name,
  SUM(quantity_sold) AS total_sold
FROM
  my_dataset.sales
WHERE
  sale_date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) AND CURRENT_DATE()
GROUP BY
  product_name
ORDER BY
  total_sold DESC
LIMIT 5;

Explicación del Código

  • CREATE TABLE my_dataset.sales: Crea una tabla llamada sales en el conjunto de datos my_dataset.
  • INSERT INTO my_dataset.sales: Inserta datos de ejemplo en la tabla sales.
  • SELECT product_name, SUM(quantity_sold) AS total_sold: Selecciona el nombre del producto y la suma de la cantidad vendida, renombrando la suma como total_sold.
  • WHERE sale_date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) AND CURRENT_DATE(): Filtra los datos para incluir solo aquellos del último mes.
  • GROUP BY product_name: Agrupa los resultados por el nombre del producto.
  • ORDER BY total_sold DESC: Ordena los resultados por total_sold en orden descendente.
  • LIMIT 5: Limita los resultados a los 5 primeros registros.

Conclusión

En esta lección, hemos aprendido qué es BigQuery, sus características clave y cómo funciona. También hemos visto un ejemplo práctico de una consulta SQL en BigQuery y hemos realizado un ejercicio para reforzar los conceptos aprendidos. En la próxima lección, configuraremos nuestro entorno de BigQuery para comenzar a trabajar con datos reales.

Curso de BigQuery

Módulo 1: Introducción a BigQuery

Módulo 2: SQL Básico en BigQuery

Módulo 3: SQL Intermedio en BigQuery

Módulo 4: SQL Avanzado en BigQuery

Módulo 5: Gestión de Datos en BigQuery

Módulo 6: Optimización del Rendimiento de BigQuery

Módulo 7: Seguridad y Cumplimiento en BigQuery

Módulo 8: Integración y Automatización de BigQuery

Módulo 9: Machine Learning en BigQuery (BQML)

Módulo 10: Casos de Uso de BigQuery en el Mundo Real

© Copyright 2024. Todos los derechos reservados