{"id":2789228,"date":"2026-07-21T06:52:35","date_gmt":"2026-07-21T13:52:35","guid":{"rendered":"https:\/\/oportundev3.wpengine.com\/?post_type=engineering_blog&#038;p=2789228"},"modified":"2026-07-21T06:52:35","modified_gmt":"2026-07-21T13:52:35","slug":"caso-de-exito-de-databricks-como-oportun-simplifico-la-ingenieria-de-datos-y-el-aprendizaje-automatico","status":"publish","type":"engineering_blog","link":"https:\/\/oportun.com\/es\/careers\/engineering-blog\/caso-de-exito-de-databricks-como-oportun-simplifico-la-ingenieria-de-datos-y-el-aprendizaje-automatico\/","title":{"rendered":"Caso de \u00e9xito de Databricks: c\u00f3mo Oportun simplific\u00f3 la ingenier\u00eda de datos y el aprendizaje autom\u00e1tico"},"content":{"rendered":"<p>En Oportun, los datos no son algo sobre lo que \u201cgeneramos reportes\u201d una vez que todo ha sucedido. Son un elemento de misi\u00f3n cr\u00edtica y una parte fundamental de c\u00f3mo operamos el negocio. Impulsan la forma en que entendemos a nuestros clientes, medimos el desempe\u00f1o, gestionamos el riesgo, detectamos el fraude y llevamos el aprendizaje autom\u00e1tico a los flujos de trabajo cotidianos. A medida que nuestra huella de datos creci\u00f3 y m\u00e1s equipos comenzaron a depender de los datos para tomar decisiones, una realidad se hizo evidente: el desaf\u00edo a largo plazo no era si pod\u00edamos construir pipelines y modelos. Pod\u00edamos hacerlo. El verdadero desaf\u00edo era hacerlo de manera confiable, r\u00e1pida y segura a medida que la adopci\u00f3n aumentaba, sin multiplicar las herramientas, las transferencias entre equipos y la carga operativa.<\/p>\n<p>Esa es la historia detr\u00e1s de nuestra migraci\u00f3n a Databricks. Hemos realizado la transici\u00f3n hacia una plataforma con un enfoque **Databricks-first**, que consolida la ingesta, la transformaci\u00f3n, la anal\u00edtica y el aprendizaje autom\u00e1tico en un modelo operativo consistente. Igual de importante, fortalecimos nuestra estrategia de gobernanza al garantizar que todos nuestros datos est\u00e9n gobernados mediante Unity Catalog. En la pr\u00e1ctica, esto significa que los permisos, la auditor\u00eda, el linaje y las pol\u00edticas de protecci\u00f3n se aplican de forma centralizada y consistente, independientemente de si los datos se utilizan para anal\u00edtica, reportes o machine learning.<\/p>\n<p>Este recorrido representa un caso de \u00e9xito con Databricks porque simplific\u00f3 nuestra plataforma y aceler\u00f3 nuestra capacidad de entrega: los tiempos de ingesta de datos se redujeron de manera significativa, el desarrollo de modelos de ML se aceler\u00f3 y los despliegues en producci\u00f3n se volvieron m\u00e1s predecibles, mientras que la gobernanza pas\u00f3 de ser una consideraci\u00f3n posterior a convertirse en la opci\u00f3n predeterminada.<\/p>\n<h2 id=\"heres-what-were-going-to-cover\">Esto es lo que vamos a cubrir<\/h2>\n<ul>\n<li>D\u00f3nde comenzamos: Spark ETL que interactuaba con m\u00faltiples sistemas<\/li>\n<li>El cambio que realizamos: una sola plataforma y un \u00fanico modelo operativo<\/li>\n<li>Convertir los datos en productos: Bronze, Silver y Gold como un contrato compartido<\/li>\n<li>dbt como disciplina de modelado: haciendo que las transformaciones sean escalables y mantenibles<\/li>\n<li>Consumo alineado con conjuntos de datos curados y definiciones compartidas<\/li>\n<li>Gobernanza a escala: Unity Catalog, ABAC y enmascaramiento de PII<\/li>\n<li>Qu\u00e9 cambi\u00f3 de forma significativa: mejoras en los tiempos de ciclo para datos y ML<\/li>\n<li>Conclusi\u00f3n: lo que esto habilita para Oportun<\/li>\n<\/ul>\n<div class=\"pre-block\">\n<p><strong>Puntos clave<\/strong><\/p>\n<ul>\n<li>La transici\u00f3n a una plataforma con enfoque Databricks-first ayud\u00f3 a Oportun a simplificar la ingesta, la transformaci\u00f3n, la anal\u00edtica y el aprendizaje autom\u00e1tico dentro de un \u00fanico modelo operativo.<\/li>\n<li>Los productos de datos estandarizados y el modelado basado en dbt ayudaron a reducir la deriva l\u00f3gica y facilitaron el escalamiento de conjuntos de datos confiables.<\/li>\n<li>Unity Catalog, ABAC y el enmascaramiento de PII contribuyeron a que la gobernanza fuera m\u00e1s consistente a medida que el acceso a los datos se expand\u00eda en toda la organizaci\u00f3n.<\/li>\n<\/ul>\n<\/div>\n<h2 id=\"where-we-started\">D\u00f3nde comenzamos: Spark ETL que interactuaba con m\u00faltiples sistemas<\/h2>\n<p>Nuestro entorno anterior era s\u00f3lido y evolucion\u00f3 de manera org\u00e1nica con el tiempo. Los flujos de trabajo de ingenier\u00eda de datos crecieron hasta convertirse en c\u00f3digo Spark que interactuaba con m\u00faltiples servicios e interfaces de AWS, incluidos EMR sobre EC2, S3, DynamoDB, Glue, Athena, Redshift (incluido Redshift Spectrum), adem\u00e1s de herramientas de descubrimiento y cat\u00e1logo de datos.<\/p>\n<p>Ese ecosistema nos brind\u00f3 flexibilidad, pero tambi\u00e9n increment\u00f3 lo que solemos llamar el \u201cimpuesto de integraci\u00f3n\u201d. Cada producto incorporaba sus propias consideraciones operativas: c\u00f3mo se programaban los trabajos, c\u00f3mo se gestionaban las fallas, c\u00f3mo se administraban los cambios de esquema, c\u00f3mo se descubr\u00edan los datos y c\u00f3mo se aplicaban los controles de acceso. A medida que los pipelines se multiplicaron y m\u00e1s equipos comenzaron a contribuir, el sistema en su conjunto acumul\u00f3 variabilidad de forma natural. Dos pipelines que resolv\u00edan problemas similares pod\u00edan verse muy diferentes simplemente porque estaban implementados con herramientas, convenciones o patrones distintos.<\/p>\n<p>El impacto de esa fragmentaci\u00f3n no era abstracto. Se reflejaba en ciclos de incorporaci\u00f3n m\u00e1s largos, una mayor carga de resoluci\u00f3n de problemas y una iteraci\u00f3n m\u00e1s lenta cuando era necesario realizar cambios. Tambi\u00e9n incrementaba el riesgo de deriva l\u00f3gica: situaciones en las que un mismo concepto o m\u00e9trica se calcula de manera diferente seg\u00fan el lugar donde se utilice, lo que genera trabajo adicional de conciliaci\u00f3n y reduce la confianza en los datos.<\/p>\n<p>Al mismo tiempo, nuestro enfoque de machine learning centrado en notebooks facilitaba la experimentaci\u00f3n r\u00e1pida, pero el camino desde un \u201cnotebook exitoso\u201d hasta un modelo confiable en producci\u00f3n no siempre era consistente. La l\u00f3gica de las caracter\u00edsticas (features) sol\u00eda requerir estandarizaci\u00f3n, las dependencias deb\u00edan fortalecerse, los flujos de despliegue necesitaban formalizarse y los controles de acceso ten\u00edan que validarse repetidamente. Este es un punto de inflexi\u00f3n com\u00fan: la experimentaci\u00f3n escala con notebooks, pero el ML en producci\u00f3n escala con componentes de plataforma reutilizables y una gobernanza consistente.<\/p>\n<p>El impuesto de integraci\u00f3n se hace evidente cuando sistemas capaces se vuelven m\u00e1s dif\u00edciles de operar de forma consistente a medida que crece su adopci\u00f3n.<\/p>\n<h2 id=\"platform-shift\">El cambio que realizamos: una sola plataforma y un \u00fanico modelo operativo<\/h2>\n<p>Adoptamos un enfoque **Databricks-first** para simplificar la forma en que desarrollamos y operamos las cargas de trabajo de datos y machine learning. Databricks ahora proporciona un \u00fanico entorno donde la ingesta, las transformaciones, la anal\u00edtica y el aprendizaje autom\u00e1tico pueden desarrollarse y ejecutarse siguiendo patrones consistentes. Esta consolidaci\u00f3n redujo la variabilidad operativa y clarific\u00f3 la asignaci\u00f3n de responsabilidades, ya que el trabajo dej\u00f3 de estar distribuido entre m\u00faltiples plataformas con modelos operativos diferentes.<\/p>\n<p>Igualmente importante, incorporamos la gobernanza como parte de los cimientos de la plataforma. Unity Catalog gobierna todos nuestros datos, proporcionando una capa centralizada para permisos y controles de acceso, auditor\u00eda, linaje y aplicaci\u00f3n consistente de pol\u00edticas. Esto es fundamental a escala porque la gobernanza no puede depender de d\u00f3nde resida un conjunto de datos o de qu\u00e9 herramienta lo haya creado. Ya sea que el consumidor sea un analista, un dashboard o un pipeline de modelos, la gobernanza se aplica de manera uniforme en la capa de plataforma.<\/p>\n<p>Esta es la diferencia fundamental entre una colecci\u00f3n de herramientas y un modelo operativo: ya no estamos integrando manualmente el comportamiento de distintas plataformas. Lo estamos estandarizando.<\/p>\n<h2 id=\"data-products\">Convirtiendo los datos en productos: Bronze, Silver y Gold como un contrato compartido<\/h2>\n<p>Uno de los mayores beneficios de nuestro enfoque **Databricks-first** ha sido estandarizar la forma en que los datos sin procesar se convierten en productos de datos confiables y reutilizables. Organizamos los datos mediante una progresi\u00f3n expl\u00edcita que va desde la ingesta de datos brutos hasta conjuntos de datos validados y, finalmente, activos curados listos para el consumo.<\/p>\n<p>Los datos sin procesar se conservan para mantener la trazabilidad y permitir su reprocesamiento cuando sea necesario. Las capas validadas y conformadas aplican controles de calidad y reglas de negocio, generando conjuntos de datos estandarizados y reutilizables. Posteriormente, los conjuntos de datos Gold se organizan en torno a dominios y KPI para que los equipos puedan utilizarlos con confianza tanto para anal\u00edtica como para casos de uso posteriores.<\/p>\n<p>Esta estructura beneficia tanto a perfiles t\u00e9cnicos como no t\u00e9cnicos. Para los equipos t\u00e9cnicos, aclara d\u00f3nde deben realizarse las transformaciones y c\u00f3mo se garantiza la calidad. Para los usuarios de negocio, establece un contrato claro: los conjuntos de datos Gold representan informaci\u00f3n curada y lista para la toma de decisiones, no extracciones de datos en bruto con supuestos ocultos. Adem\u00e1s, ayuda a mantener la l\u00f3gica de negocio centralizada en la plataforma, en lugar de dispersarla entre pipelines ad hoc o capas de c\u00e1lculo posteriores.<\/p>\n<h2 id=\"dbt-discipline\">dbt como disciplina de modelado: haciendo que las transformaciones sean escalables y mantenibles<\/h2>\n<p>Para mantener la consistencia del modelado a medida que m\u00e1s equipos contribuyen, utilizamos dbt como nuestra capa de modelado de datos. dbt proporciona un flujo de trabajo repetible para desarrollar transformaciones como modelos modulares, con pruebas estandarizadas y documentaci\u00f3n integrada. Esto mejora la mantenibilidad y reduce la duplicaci\u00f3n, ya que los equipos pueden construir sobre modelos compartidos y patrones acordados en lugar de volver a implementar la l\u00f3gica de manera aislada.<\/p>\n<p>Desde una perspectiva operativa, dbt nos ayuda a escalar la colaboraci\u00f3n. La l\u00f3gica de transformaci\u00f3n pasa a estar versionada, puede revisarse f\u00e1cilmente y resulta m\u00e1s sencillo evolucionarla de manera segura. El resultado no es simplemente un c\u00f3digo m\u00e1s limpio, sino un sistema m\u00e1s predecible y escalable para producir conjuntos de datos confiables.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En Oportun, los datos no son algo sobre lo que \u201cgeneramos reportes\u201d una vez que todo ha sucedido. Son un elemento de misi\u00f3n cr\u00edtica y una parte fundamental de c\u00f3mo operamos el negocio. Impulsan la forma en que entendemos a nuestros clientes, medimos el desempe\u00f1o, gestionamos el riesgo, detectamos el fraude y llevamos el aprendizaje [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":2788843,"template":"","meta":{"_acf_changed":false,"footnotes":""},"engineering_category":[],"engineering_post_tag":[],"class_list":["post-2789228","engineering_blog","type-engineering_blog","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/oportun.com\/es\/wp-json\/wp\/v2\/engineering_blog\/2789228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oportun.com\/es\/wp-json\/wp\/v2\/engineering_blog"}],"about":[{"href":"https:\/\/oportun.com\/es\/wp-json\/wp\/v2\/types\/engineering_blog"}],"author":[{"embeddable":true,"href":"https:\/\/oportun.com\/es\/wp-json\/wp\/v2\/users\/18"}],"version-history":[{"count":1,"href":"https:\/\/oportun.com\/es\/wp-json\/wp\/v2\/engineering_blog\/2789228\/revisions"}],"predecessor-version":[{"id":2789229,"href":"https:\/\/oportun.com\/es\/wp-json\/wp\/v2\/engineering_blog\/2789228\/revisions\/2789229"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oportun.com\/es\/wp-json\/wp\/v2\/media\/2788843"}],"wp:attachment":[{"href":"https:\/\/oportun.com\/es\/wp-json\/wp\/v2\/media?parent=2789228"}],"wp:term":[{"taxonomy":"engineering_category","embeddable":true,"href":"https:\/\/oportun.com\/es\/wp-json\/wp\/v2\/engineering_category?post=2789228"},{"taxonomy":"engineering_post_tag","embeddable":true,"href":"https:\/\/oportun.com\/es\/wp-json\/wp\/v2\/engineering_post_tag?post=2789228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}