Laboratorio 9: Consultas Federadas con Cloud SQL (PostgreSQL)
Objetivos del Laboratorio
- Diferenciar conceptualmente entre sistemas operativos y transaccionales (OLTP) frente a sistemas de análisis masivo (OLAP).
- Habilitar la BigQuery Connections API para almacenar credenciales de forma encriptada y segura en la nube de Google Cloud.
- Ejecutar consultas cruzadas en tiempo real combinando el data warehouse analítico con registros operacionales dinámicos de producción.
- Comprender el concepto de "query pushdown" y los límites recomendados al interrogar bases de datos relacionales externas.
Herramientas y APIs Utilizadas
Cloud SQL API: Servicio de bases de datos relacionales totalmente gestionado en la nube para PostgreSQL, MySQL y SQL Server.BigQuery Connections API: Interfaz lógica utilizada para encapsular credenciales de sistemas externos de manera aislada y auditable.psql: Cliente interactivo de terminal empleado para conectarse remotamente a PostgreSQL y estructurar las tablas transaccionales.
Estructura del Código Desarrollado
main.tf: Declaración de Terraform que despliega una base de datos PostgreSQL, un usuario seguro, la conexión lógica de BigQuery, la cuenta de servicio de IAM y la tabla de resumen de ventas de BigQuery.09_01_seed_postgresql.sql: Script SQL estructurado para crear la tabla de perfiles de clientes e insertar datos iniciales en PostgreSQL.09_02_federated_join.sql: Consulta analítica estructurada que hace uso de la función federadaEXTERNAL_QUERYpara realizar la unión híbrida.
Paso a Paso del Despliegue
Fase 1: Infraestructura Transaccional y Conexión
- Declaración del recurso de base de datos relacional PostgreSQL con una configuración compartida de bajo coste para laboratorio.
- Definición del recurso
google_bigquery_connectionestableciendo las credenciales del usuario de la base de datos de producción de forma segura. - Asignación del rol de acceso cliente
roles/cloudsql.clienta la cuenta de servicio autogenerada por la conexión mediante Terraform. - Despliegue e inicialización física de la base de datos operativa y los servicios asociados en Google Cloud mediante el comando
terraform apply.
Fase 2: Poblamiento de Datos (Seeding)
- Extracción de la dirección IP de Cloud SQL e inicio de sesión interactivo utilizando la herramienta de línea de comandos cliente
psql. - Creación de la tabla operativa de perfiles de clientes y carga inicial de registros directamente en PostgreSQL.
- Inserción manual de registros analíticos históricos de volumen de compra dentro de la tabla nativa de BigQuery
order_summaries.
Fase 3: Ejecución de la Consulta Federada
- Construcción del script SQL en BigQuery llamando a la función
EXTERNAL_QUERYcon la ruta física de la conexión en formato deubicacion.conexion_id. - Ejecución del join lógico cruzando los datos operacionales en tiempo real extraídos de PostgreSQL con los datos analíticos de BigQuery.
- Verificación del resultado obtenido desde la consola comprobando la correcta delegación e integración asíncrona de las consultas entre motores de base de datos.