[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"article-data-curso-gcp-bigquery-10":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 10: Transformación de Datos con dbt (Data Build Tool)\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 10: Transformación de Datos con dbt (Data Build Tool)\u003C/h1>\r\n\r\n    \u003Ch2>Objetivos del Laboratorio\u003C/h2>\r\n    \u003Cul>\r\n        \u003Cli>Implementar metodologías de ingeniería analítica (Analytics Engineering) estructurando pipelines lógicos dentro de BigQuery de forma controlada.\u003C/li>\r\n        \u003Cli>Organizar y modelar los datos analíticos dividiendo el flujo en capas de procesamiento: Staging (vistas limpias) y Marts (tablas físicas consolidadas).\u003C/li>\r\n        \u003Cli>Garantizar la integridad de la información mediante pruebas automatizadas de esquema y pruebas personalizadas de aserción de reglas de negocio.\u003C/li>\r\n        \u003Cli>Establecer accesos de desarrollo seguros utilizando el método de autenticación local con \u003Ccode>oauth\u003C/code> para heredar de forma transparente los permisos de GCP.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>Herramientas y APIs Utilizadas\u003C/h2>\r\n    \u003Cul>\r\n        \u003Cli>\u003Ccode>dbt-core\u003C/code>: Herramienta de código abierto empleada para estructurar, compilar y documentar pipelines lógicos de transformación SQL.\u003C/li>\r\n        \u003Cli>\u003Ccode>dbt-bigquery\u003C/code>: Adaptador oficial encargado de traducir las macros lógicas de dbt en ejecuciones y compilaciones físicas dentro de BigQuery.\u003C/li>\r\n        \u003Cli>\u003Ccode>BigQuery API\u003C/code>: API de Google Cloud encargada de orquestar la creación de esquemas y procesar las transformaciones en la nube.\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>profiles.yml\u003C/code>: Archivo de configuración de conexiones de dbt que utiliza autenticación local basada en herencia de token de GCP.\u003C/li>\r\n        \u003Cli>\u003Ccode>dbt_project.yml\u003C/code>: Especificaciones globales del proyecto de dbt que asocian el perfil de conexión y los tipos de materialización por capas.\u003C/li>\r\n        \u003Cli>\u003Ccode>models/schema.yml\u003C/code>: Archivo de configuración que describe las fuentes de datos crudos (sources), los modelos analíticos y sus respectivas pruebas asociadas.\u003C/li>\r\n        \u003Cli>\u003Ccode>models/staging/stg_raw_orders.sql\u003C/code>: Modelo de la capa staging encargado de limpiar campos y reformatear cadenas de texto a tipos físicos de fecha.\u003C/li>\r\n        \u003Cli>\u003Ccode>models/marts/fct_orders_summary.sql\u003C/code>: Modelo consolidado de negocio para ofrecer agregaciones históricas por cliente.\u003C/li>\r\n        \u003Cli>\u003Ccode>tests/assert_spent_non_negative.sql\u003C/code>: Prueba de aserción personalizada que comprueba que ningún registro completado posea importes negativos.\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: Datos de Entrada y Preparación\u003C/h3>\r\n    \u003Cul>\r\n        \u003Cli>Despliegue declarativo con Terraform del dataset de datos crudos \u003Ccode>lab10_raw\u003C/code> y su respectiva tabla nativa de órdenes.\u003C/li>\r\n        \u003Cli>Carga inicial de registros inconsistentes forzando que las fechas residan en formato de cadena de texto (\u003Ccode>STRING\u003C/code>).\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch3>Fase 2: Configuración del Proyecto dbt\u003C/h3>\r\n    \u003Cul>\r\n        \u003Cli>Instalación aislada de dependencias creando un entorno virtual de Python y ejecutando \u003Ccode>pip install dbt-bigquery\u003C/code>.\u003C/li>\r\n        \u003Cli>Estructuración de la conexión remota segura en el archivo \u003Ccode>profiles.yml\u003C/code> estableciendo el parámetro \u003Ccode>method: oauth\u003C/code>.\u003C/li>\r\n        \u003Cli>Asociación de los tipos de materialización en el archivo del proyecto (\u003Ccode>view\u003C/code> para la capa de staging y \u003Ccode>table\u003C/code> para la capa marts).\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch3>Fase 3: Desarrollo de Capas Lógicas y Pruebas\u003C/h3>\r\n    \u003Cul>\r\n        \u003Cli>Estructuración del modelo de staging aislando la fuente declarada con la macro \u003Ccode>{{ source() }}\u003C/code> y aplicando el formateo temporal con \u003Ccode>PARSE_DATE\u003C/code>.\u003C/li>\r\n        \u003Cli>Estructuración del modelo final de marts agregando la información de negocio y haciendo referencia a la capa limpia mediante la macro \u003Ccode>{{ ref() }}\u003C/code>.\u003C/li>\r\n        \u003Cli>Estructuración de pruebas personalizadas en el directorio de pruebas (tests) para identificar registros anómalos de negocio.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch3>Fase 4: Ejecución y Validación Analítica\u003C/h3>\r\n    \u003Cul>\r\n        \u003Cli>Lanzamiento y compilación del pipeline de transformaciones en la terminal ejecutando el comando \u003Ccode>dbt run\u003C/code>.\u003C/li>\r\n        \u003Cli>Validación de la calidad de los datos y de las aserciones de esquema del proyecto ejecutando el comando \u003Ccode>dbt test\u003C/code>.\u003C/li>\r\n        \u003Cli>Inspección de las tablas resultantes directamente en el dataset autogenerado de BigQuery \u003Ccode>lab10_analytics\u003C/code>.\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-10.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]