[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"article-data-curso-gcp-dataform-04":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\u003Cmeta name=\"description\" content=\"Domina la metaprogramación en Dataform. Aprende a usar JavaScript para automatizar la creación de tablas, evitar el copy-paste y escalar tu arquitectura de datos siguiendo el principio DRY.\">\r\n\u003Cmeta name=\"keywords\" content=\"Google Cloud, Dataform, JavaScript, Metaprogramación, DRY, Data Engineering, Automatización, SQL, Analytics Engineer\">\r\n\u003Cmeta name=\"author\" content=\"Eduardo Martínez Agrelo\">\r\n\u003Ctitle>Dataform: Metaprogramación con JavaScript | Curso Dataform GCP\u003C/title>\r\n\u003Cstyle>\r\nbody {\r\nfont-family: sans-serif;\r\nline-height: 1.6;\r\n}\r\nh1, h2, h3 {\r\ncolor: #333;\r\n}\r\nul {\r\nlist-style-type: disc;\r\nmargin-left: 20px;\r\n}\r\ncode {\r\nbackground-color: #f4f4f4;\r\npadding: 2px 5px;\r\nborder-radius: 3px;\r\nfont-family: monospace;\r\n}\r\n\u003C/style>\r\n\u003C/head>\r\n\u003Cbody>\r\n    \u003Ch1>Dataform: Metaprogramación con JavaScript (El Fin del Copy-Paste)\u003C/h1>\r\n\r\n    \u003Cp>\u003Cstrong>Autor:\u003C/strong> \u003Ca href=\"https://www.youtube.com/@EduardoMartinezAgrelo\" target=\"_blank\">Eduardo Martínez Agrelo\u003C/a>\u003C/p>\r\n\r\n    \u003Cp>¿Alguna vez has tenido que escribir 20 veces el mismo bloque de SQL cambiando solo un filtro? Si es así, conoces el dolor de mantener código duplicado. En este laboratorio, aprenderemos que \u003Cstrong>SQL es excelente para consultar, pero JavaScript es la herramienta definitiva para programar la estructura de tus datos.\u003C/strong>\u003C/p>\r\n\r\n    \u003Ch2>El Principio DRY (Don't Repeat Yourself)\u003C/h2>\r\n\r\n    \u003Cp>Un buen ingeniero de datos nunca escribe el mismo código dos veces. La metaprogramación en Dataform nos permite inyectar lógica de programación (bucles, condicionales, funciones) directamente en nuestro pipeline de datos:\u003C/p>\r\n    \u003Cul>\r\n        \u003Cli>\u003Cstrong>Includes/Constants:\u003C/strong> Definimos configuraciones globales (como una lista de países o tasas de impuestos) en archivos \u003Ccode>.js\u003C/code> centralizados.\u003C/li>\r\n        \u003Cli>\u003Cstrong>Generación dinámica:\u003C/strong> En lugar de crear archivos \u003Ccode>.sqlx\u003C/code> manuales para cada entidad, usamos un bucle \u003Ccode>forEach\u003C/code> de JavaScript que recorre nuestras constantes y genera dinámicamente los nodos en nuestro grafo.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>De la lógica manual al Grafo Dinámico\u003C/h2>\r\n\r\n    \u003Cp>Al utilizar archivos \u003Ccode>.js\u003C/code> de Dataform, nuestra arquitectura se vuelve \"viva\". Observa cómo cambia tu flujo de trabajo:\u003C/p>\r\n    \u003Cul>\r\n        \u003Cli>\u003Cstrong>Escalabilidad:\u003C/strong> Si mañana tu empresa abre mercado en 10 países nuevos, no creas 10 archivos nuevos. Solo añades los nombres al Array en tu archivo de constantes.\u003C/li>\r\n        \u003Cli>\u003Cstrong>Consistencia:\u003C/strong> Al usar la función \u003Ccode>publish()\u003C/code> de Dataform dentro de un bucle, garantizamos que todas las tablas generadas sigan exactamente el mismo estándar de calidad.\u003C/li>\r\n        \u003Cli>\u003Cstrong>Compilación:\u003C/strong> Con un solo clic en el botón \"Compile\", verás cómo aparecen mágicamente decenas de nodos en tu Grafo de Dependencias.\u003C/li>\r\n    \u003C/ul>\r\n\r\n    \u003Ch2>Implementación: Potencia sin esfuerzo\u003C/h2>\r\n\r\n    \u003Cp>En este laboratorio, crearemos un archivo maestro que recorre nuestra lista de mercados y genera automáticamente las tablas de ventas regionales. Veremos cómo esta técnica nos permite mantener un código limpio, manejable y extremadamente profesional.\u003C/p>\r\n\r\n    \u003Ch2>Conclusión: Ingeniería de alto nivel\u003C/h2>\r\n    \u003Cp>La metaprogramación es el superpoder que diferencia a un profesional del resto. Al dominar el uso de JavaScript para generar SQL, has aprendido a construir arquitecturas que se adaptan al crecimiento del negocio de forma automática. Estás listo para dejar atrás el trabajo manual y enfocarte en la estrategia de datos.\u003C/p>\r\n\u003C/body>\r\n\u003C/html>","March 12, 2026","https://storage.googleapis.com/mp-blog/images/curso-gcp-dataform-04.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",1779944585130]