[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"article-data-curso-gcp-bigquery-03":3},{"content":4,"date":5,"image":6,"sideArticles":7},"\u003C!DOCTYPE html>\r\n\u003Chtml lang=\"es\">\r\n\u003Chead>\r\n    \u003Cmeta charset=\"UTF-8\">\r\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    \u003Ctitle>Laboratorio 3: Tablas Externas y Federación de Datos\u003C/title>\r\n    \u003Cstyle>\r\n        h1,\r\n        h2,\r\n        h3 {\r\n            color: #333;\r\n        }\r\n\r\n        ul {\r\n            list-style-type: disc;\r\n            margin-left: 20px;\r\n        }\r\n\r\n        code {\r\n            background-color: #f4f4f4;\r\n            padding: 2px 5px;\r\n            border-radius: 3px;\r\n            font-family: monospace;\r\n        }\r\n    \u003C/style>\r\n\u003C/head>\r\n\u003Cbody>\r\n\r\n    \u003Ch1>Laboratorio 3: Tablas Externas y Federación de Datos\u003C/h1>\r\n\r\n    \u003Ch2>Objetivos del Laboratorio\u003C/h2>\r\n    \u003Cul>\r\n        \u003Cli>Comprender la diferencia arquitectónica entre tablas nativas (almacenamiento en Colossus) y tablas externas.\u003C/li>\r\n        \u003Cli>Configurar la federación de consultas para interrogar archivos planos directamente desde el almacenamiento de objetos.\u003C/li>\r\n        \u003Cli>Optimizar costes de almacenamiento físico evitando procesos redundantes de extracción, transformación y carga (ETL).\u003C/li>\r\n        \u003Cli>Aprender a definir esquemas dinámicos basados en patrones comodín para la asimilación continua de nuevos archivos.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>Herramientas y APIs Utilizadas\u003C/h2>\r\n    \u003Cul>\r\n        \u003Cli>\u003Ccode>Terraform (>= 1.0.0)\u003C/code>: Utilizado para declarar la tabla externa de BigQuery y el bucket de origen de manera unificada.\u003C/li>\r\n        \u003Cli>\u003Ccode>gcloud storage\u003C/code>: CLI utilizado para simular la llegada de nuevos registros subiendo archivos de logs al bucket.\u003C/li>\r\n        \u003Cli>\u003Ccode>BigQuery API\u003C/code>: Motor encargado de mapear la metadata de los archivos planos y resolver las consultas en paralelo.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>Estructura del Código Desarrollado\u003C/h2>\r\n    \u003Cul>\r\n        \u003Cli>\u003Ccode>web_logs.csv\u003C/code>: Archivo de registro inicial de actividad de red con marcas de tiempo y volumen de bytes enviados.\u003C/li>\r\n        \u003Cli>\u003Ccode>main.tf\u003C/code>: Declaración de Terraform que asocia el dataset, el bucket de almacenamiento y la tabla lógica externa.\u003C/li>\r\n        \u003Cli>\u003Ccode>03_query_external_table.sql\u003C/code>: Consulta de análisis analítico que consolida estadísticas de red a través de la tabla externa.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>Paso a Paso del Despliegue\u003C/h2>\r\n\r\n    \u003Ch3>Fase 1: Preparación del Conjunto de Datos\u003C/h3>\r\n    \u003Cul>\r\n        \u003Cli>Creación de los datos iniciales de tráfico del servidor conteniendo direcciones IP, marcas de tiempo y códigos de respuesta HTTP.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch3>Fase 2: Infraestructura Declarativa en Terraform\u003C/h3>\r\n    \u003Cul>\r\n        \u003Cli>Declaración del recurso \u003Ccode>google_bigquery_table\u003C/code> asociando la directiva de configuración \u003Ccode>external_data_configuration\u003C/code>.\u003C/li>\r\n        \u003Cli>Establecimiento de las variables \u003Ccode>autodetect = true\u003C/code> y \u003Ccode>source_format = \"CSV\"\u003C/code> para deducir el esquema al vuelo.\u003C/li>\r\n        \u003Cli>Configuración del parámetro \u003Ccode>source_uris\u003C/code> apuntando al bucket mediante un patrón de comodín: \u003Ccode>raw/logs/*.csv\u003C/code>.\u003C/li>\r\n        \u003Cli>Aplicación del despliegue mediante \u003Ccode>terraform apply\u003C/code>. Se constata que la tabla se crea en BigQuery aun con el bucket vacío.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch3>Fase 3: Transferencia de Archivos y Consultas Dinámicas\u003C/h3>\r\n    \u003Cul>\r\n        \u003Cli>Envío del primer archivo CSV de logs hacia el bucket remitiéndolo con el comando \u003Ccode>gcloud storage cp\u003C/code>.\u003C/li>\r\n        \u003Cli>Ejecución de la consulta SQL agregada validando que BigQuery lee los datos directamente de Cloud Storage.\u003C/li>\r\n        \u003Cli>Simulación de ingesta en vivo subiendo un segundo archivo CSV a la misma ruta.\u003C/li>\r\n        \u003Cli>Verificación inmediata de la agregación de nuevos registros en la consulta SQL sin necesidad de alterar la definición de la tabla.\u003C/li>\r\n    \u003C/ul>\r\n\r\n\u003C/body>\r\n\u003C/html>","July 9, 2026","https://storage.googleapis.com/mp-blog/images/curso-gcp-bigquery-03.jpg",[8,14,19,24],{"id":9,"title":10,"description":11,"image":12,"date":13},"curso-gcp-ai-ops-01","Fundamentos de AIOps en Google Cloud | Curso AIOps con Vertex AI","Módulo 1: Fundamentos de AIOps en Google Cloud. Aprende la transición de ITOps a operaciones inteligentes y cómo preparar tu infraestructura base con Terraform.","https://storage.googleapis.com/mp-blog/images/curso-gcp-ai-ops-01.jpg","May 28, 2026",{"id":15,"title":16,"description":17,"image":18,"date":13},"curso-gcp-ai-ops-02","Vertex AI para AIOps: AutoML y Despliegue | Curso AIOps","Módulo 2: Gestión de modelos con Vertex AI para AIOps. Aprende a utilizar AutoML, gestionar datasets tabulares y desplegar endpoints de predicción.","https://storage.googleapis.com/mp-blog/images/curso-gcp-ai-ops-02.jpg",{"id":20,"title":21,"description":22,"image":23,"date":13},"curso-gcp-ai-ops-03","Observabilidad Inteligente en GCP | Curso AIOps","Módulo 3: Observabilidad Inteligente en GCP. Configuración de Cloud Monitoring, Cloud Logging y creación de dashboards predictivos correlacionados con BigQuery.","https://storage.googleapis.com/mp-blog/images/curso-gcp-ai-ops-03.jpg",{"id":25,"title":26,"description":27,"image":28,"date":13},"curso-gcp-ai-ops-04","Automatización Operativa y Remediación | Curso AIOps","Módulo 4: Automatización Operativa en AIOps. Aprende a crear arquitecturas dirigidas por eventos con Cloud Functions y Pub/Sub para la remediación automática.","https://storage.googleapis.com/mp-blog/images/curso-gcp-ai-ops-04.jpg",1783609807853]