[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"article-data-curso-gcp-dbt-05":3},{"content":4,"date":5,"image":6,"sideArticles":7},"\u003C!DOCTYPE html>\r\n\r\n\u003Chead>\r\n    \u003Cmeta charset=\"UTF-8\">\r\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    \u003Cmeta name=\"description\"\r\n        content=\"Aprende a usar paquetes externos en dbt como dbt-utils para acelerar tu desarrollo y generar surrogate keys de forma profesional.\">\r\n    \u003Cmeta name=\"keywords\" content=\"dbt packages, dbt-utils, Surrogate Keys, Data Engineering, BigQuery, dbt hub\">\r\n    \u003Cmeta name=\"author\" content=\"Eduardo Martínez Agrelo\">\r\n    \u003Ctitle>dbt: Paquetes y dbt-utils | Curso dbt GCP\u003C/title>\r\n    \u003Cstyle>\r\n        body {\r\n            font-family: sans-serif;\r\n            line-height: 1.6;\r\n        }\r\n\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\r\n\u003Cbody>\r\n    \u003Ch1>dbt: Paquetes y dbt-utils (A hombros de gigantes)\u003C/h1>\r\n\r\n    \u003Cp>\u003Cstrong>Autor:\u003C/strong> \u003Ca href=\"https://www.youtube.com/@EduardoMartinezAgrelo\" target=\"_blank\">Eduardo Martínez\r\n            Agrelo\u003C/a>\u003C/p>\r\n\r\n    \u003Cp>No todo el código de tu proyecto debe ser escrito por ti. El ecosistema de dbt cuenta con el \u003Cstrong>dbt\r\n            Hub\u003C/strong>, un repositorio de paquetes creados por la comunidad que añaden funcionalidades increíbles a tu\r\n        proyecto con solo un comando.\u003C/p>\r\n\r\n    \u003Ch2>Instalación de Paquetes\u003C/h2>\r\n\r\n    \u003Cp>Mediante el archivo \u003Ccode>packages.yml\u003C/code>, podemos importar librerías como \u003Ccode>dbt-utils\u003C/code>. Es el\r\n        equivalente a usar \u003Cem>pip\u003C/em> en Python o \u003Cem>npm\u003C/em> en Node.js, pero para transformaciones de datos.\u003C/p>\r\n\r\n    \u003Ch2>Generación de Surrogate Keys\u003C/h2>\r\n\r\n    \u003Cp>En este laboratorio, utilizaremos \u003Ccode>dbt_utils.generate_surrogate_key\u003C/code> para crear claves primarias\r\n        únicas basadas en múltiples columnas. Esto es fundamental para el modelado dimensional cuando no tenemos un ID\r\n        claro desde el origen.\u003C/p>\r\n\r\n    \u003Ch2>Conclusión: Desarrollo acelerado\u003C/h2>\r\n    \u003Cp>Has aprendido a extender las capacidades de dbt. Con los paquetes, puedes resolver problemas complejos de\r\n        modelado en minutos. El siguiente reto es gestionar el histórico de cambios usando Snapshots.\u003C/p>\r\n\u003C/body>\r\n\r\n\u003C/html>","April 15, 2026","https://storage.googleapis.com/mp-blog/images/curso-gcp-dbt-05.jpg",[8,14,19,24],{"id":9,"title":10,"description":11,"image":12,"date":13},"curso-gcp-apache-spark-01","Spark: Infraestructura como Código con Terraform | Curso Spark, Scala y Terraform","Aprende a desplegar clústeres de Big Data profesionalmente. Domina Terraform para crear infraestructura como código (IaC) en Google Cloud y automatiza tu entorno de Dataproc para Spark.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-01.jpg","March 12, 2026",{"id":15,"title":16,"description":17,"image":18,"date":13},"curso-gcp-apache-spark-02","Spark: Ingesta (Raw to Bronze) y Formatos Columnares | Curso Spark, Scala y Terraform","Domina la ingesta de datos con Spark. Aprende a convertir JSONs pesados en formato Parquet, optimiza tu almacenamiento en un 85% y domina los esquemas estrictos con Scala.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-02.jpg",{"id":20,"title":21,"description":22,"image":23,"date":13},"curso-gcp-apache-spark-03","Spark: Limpieza y Calidad (Bronze to Silver) | Curso Spark, Scala y Terraform","Domina la limpieza de datos en Spark. Aprende a usar Scala para implementar la capa Silver (Plata) de tu arquitectura Medallón, utilizando Case Classes para mayor seguridad.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-03.jpg",{"id":25,"title":26,"description":27,"image":28,"date":13},"curso-gcp-apache-spark-04","Spark: Analítica Avanzada (Silver to Gold) | Curso Spark, Scala y Terraform","Domina el Análisis Avanzado con Spark. Aprende a calcular métricas de negocio con Window Functions y a extraer el Top 3 de canciones por país y día para tu capa Gold.","https://storage.googleapis.com/mp-blog/images/curso-gcp-apache-spark-04.jpg",1776363703978]