Resumen del Curso: 12 Laboratorios de BigQuery
Bloque 1: Configuración, Ingesta y Optimización de Datos
Laboratorio 1: Inicialización de Entorno y Primeras Consultas
- Autenticación de la terminal local con Google Cloud utilizando el comando de
gcloud auth login. - Definición e inicialización del proveedor de Google en Terraform mediante un archivo
providers.tf. - Creación de un recurso de tipo
google_bigquery_datasetde forma declarativa con Terraform. - Ejecución de la primera consulta SQL estándar sobre datasets públicos guardando los resultados físicamente en el nuevo dataset.
Laboratorio 2: Ingesta de Datos en Batch (GCS a BigQuery)
- Despliegue automatizado de un bucket de Cloud Storage con Terraform configurando reglas de ciclo de vida para controlar costes.
- Transferencia de archivos locales CSV y NDJSON hacia Cloud Storage utilizando el comando
gcloud storage cp. - Estructuración de un esquema de datos explícito en formato JSON para garantizar la tipación correcta en el destino.
- Ejecución de trabajos de carga física hacia tablas nativas de BigQuery utilizando la herramienta de CLI
bq load.
Laboratorio 3: Tablas Externas y Federación de Datos
- Creación de un recurso
google_bigquery_tableconfigurando el bloque de definición externo en Terraform. - Mapeo dinámico de datos apuntando a rutas comodín de Cloud Storage con el patrón
*.csvsin duplicar almacenamiento. - Análisis de las ventajas e inconvenientes de rendimiento y coste al consultar datos directamente sobre el lago de datos.
Laboratorio 4: Optimización: Particionado y Clustering
- Configuración física del bloque
time_partitioningbasado en una columna de tipo fecha (transaction_date) en Terraform. - Definición de claves de ordenación interna dentro de cada partición mediante la directiva de
clusteringpara el campo de tiendas. - Demostración práctica de reducción del volumen de bytes escaneados mediante el descarte de particiones en las consultas.
Bloque 2: Análisis Avanzado, Modelado Predictivo y Seguridad
Laboratorio 5: SQL Avanzado y Funciones de Ventana (Window Functions)
- Modularización y estructuración de consultas lógicas complejas utilizando Expresiones de Tabla Comunes (CTEs) con
WITH. - Implementación de funciones analíticas de ventana como
ROW_NUMBER(),LAG()y sumas acumulativas. - Creación y consumo de funciones personalizadas reutilizables mediante sentencias de
CREATE TEMP FUNCTIONen SQL.
Laboratorio 6: BigQuery ML (Machine Learning)
- Entrenamiento de un modelo predictivo de regresión lineal directamente en la base de datos con la sentencia
CREATE OR REPLACE MODEL. - Evaluación de las métricas de calidad y precisión del modelo (R-cuadrado, error absoluto medio) mediante la función
ML.EVALUATE. - Inferencia de estimación de gasto en tiempo real sobre nuevos registros de usuarios utilizando la función
ML.PREDICT.
Laboratorio 7: Seguridad, Gobernanza y Control de Acceso (IAM, Filas y Columnas)
- Creación de taxonomías y etiquetas de políticas de Data Catalog para restringir columnas sensibles (CLS) como el número de seguro social.
- Configuración de exclusiones geográficas por roles utilizando el recurso
google_bigquery_row_access_policy(RLS). - Simulación y pruebas de acceso seguro en local alternando el contexto de autenticación mediante claves JSON de cuentas de servicio.
Laboratorio 8: Ingesta en Tiempo Real (Streaming con Pub/Sub)
- Despliegue automatizado de un tópico y una suscripción de tipo directo de Pub/Sub a BigQuery (
bigquery_config) con Terraform. - Configuración de accesos IAM concediendo roles de editor y visor de metadatos al agente de servicio de Pub/Sub del proyecto.
- Publicación de mensajes JSON a través de comandos de terminal y su inserción inmediata sin servidor en BigQuery en milisegundos.
Bloque 3: Integraciones, Ingeniería Analítica y CI/CD
Laboratorio 9: Consultas Federadas con Cloud SQL (PostgreSQL)
- Despliegue seguro de una instancia compartida de Cloud SQL con PostgreSQL mediante recursos de Terraform.
- Configuración de un recurso de conexión segura
google_bigquery_connectionpara almacenar credenciales encriptadas en GCP. - Ejecución de un cruce híbrido en tiempo real uniendo tablas de BigQuery con PostgreSQL mediante la función
EXTERNAL_QUERY.
Laboratorio 10: Transformación de Datos con dbt (Data Build Tool)
- Aislamiento de dependencias en un entorno virtual e instalación local del adaptador oficial
dbt-bigquery. - Estructuración de un pipeline por capas dividiendo el proyecto en modelos de
staging(vistas) ymarts(tablas físicas). - Definición de aserciones de reglas de negocio personalizadas y validaciones de esquema dentro de la suite de pruebas de dbt.
Laboratorio 11: Orquestación con Python y BigQuery API
- Instanciación del cliente oficial de Python heredando de manera transparente los permisos locales del protocolo ADC.
- Optimización de la velocidad de transferencia y conversión en memoria de resultados de consultas a DataFrames de Pandas vía
pyarrow. - Control estructurado de excepciones de la API de Google y exportación automatizada de información hacia archivos CSV planos.
Laboratorio 12: CI/CD Pipeline para BigQuery con GitHub Actions
- Centralización del archivo de estado de Terraform configurando un backend remoto en un bucket seguro de Cloud Storage.
- Almacenamiento de claves de cuentas de servicio encriptadas dentro de la plataforma de GitHub usando secretos de repositorio (
GCP_SA_KEY). - Diseño de un flujo de trabajo que ejecuta tareas automáticas de validación semántica en Pull Requests y de despliegue en la rama
main.