Background Image
ESTUDIOS DE CASO

Empresa de servicios sanitarios

Actualización del almacén de datos para permitir análisis escalables
Image - Healthcare Services Company

Visión general

Esta empresa de servicios sanitarios de la lista Fortune 500 contrató a Improving para actualizar su almacén de datos de bajo rendimiento y convertirlo en una plataforma de datos moderna que permitiera realizar análisis escalables. Su nueva arquitectura de datos, más valiosa, proporciona un entorno de datos de mayor calidad, lo que se traduce en consultas y actualizaciones de datos más rápidas.

Desafío

Nuestro cliente dependía de una instancia de SQL Server para respaldar sus operaciones empresariales, esencialmente mediante análisis de datos personalizados a través de un portal web.

Con decenas de millones de filas, miles de líneas de código ETL y docenas de patrones de búsqueda y agregación diferentes, SQL Server estaba sobrecargado, lo que provocaba latencia en las consultas en tiempo real y retrasos en las actualizaciones de datos. Esta complejidad también se hacía patente en la gestión de datos y código de todos los sistemas web y de generación de informes.

Además, la aprobación de nuevas normativas sanitarias para ofrecer mejores protecciones financieras a pacientes y proveedores aceleró la demanda de los servicios de nuestro cliente, y su equipo necesitaba apoyo adicional.

Solución

Nuestro cliente necesitaba escalar su solución de informes para dar cabida a más casos de negocio, más fuentes de datos y utilizar más fuentes en tiempo real. El equipo de ingeniería de datos de Improving trabajó para acelerar la escala empresarial y técnica, mejoró la estructura de informes y diseñó una solución moderna de almacén de datos en Snowflake.

Improving proporcionó múltiples recursos para modernizar su plataforma de datos en dos frentes:

  • Migrar a un almacén de datos moderno y escalable (Snowflake) para reducir la carga analítica en el SQL Server operativo

  • Acelerar el desarrollo de SQL Server ELT y el rendimiento del almacén para gestionar más casos de uso con mayor complejidad.

 

Solución Parte 1: Migración a Snowflake

Improving reconoció los problemas de escalabilidad y las complejidades de utilizar un RDBMS transaccional para informes tan complejos, especialmente porque gran parte de los informes debían optimizarse utilizando desnormalización y preagregaciones, lo que reducía la fidelidad de los datos utilizados en los informes. Improving recomendó Snowflake y negoció una conversación entre nuestro cliente, Snowflake y los arquitectos internos.

Improving está reconstruyendo el almacén de datos en Snowflake utilizando herramientas y prácticas modernas de ingeniería de datos, con los siguientes aspectos destacados:

  • Datos ingestados de múltiples fuentes (Salesforce, CDC, Kafka, BDPaaS, Hive, SQL Server).

  • Integración de múltiples tecnologías como parte de la pila (Snowflake, Kafka Connect, Talend, Airflow, Kubernetes).

  • Ampliación de la conectividad API para utilizar Snowflake, además de SQL Server.

  • Implementado el almacenamiento de patrones de datos (crudo → capas de consumo), informes históricos (viaje en el tiempo)

 

Parte 2 de la solución: ETL/almacén de SQL Server

Improving se incorporó rápidamente para poseer y desarrollar mejoras de SQL Server ETL, ampliar el almacén y organizar el proceso de desarrollo. Identificamos que con la velocidad de desarrollo, se dejaba atrás mucha deuda técnica. Al tiempo que se añadían funciones de negocio, Improving implantó un proceso de desarrollo moderno que incluía:

  • Ayudó a mejorar los procesos ágiles (escritura de historias, pruebas de aceptación y organización de historias) para adaptarse mejor a los casos de uso de análisis de datos.

  • Implementó el control de código fuente y la gestión de cambios para la base de datos, la lógica de procedimientos y ETL en Github.

  • Migración de los despliegues para utilizar el proceso automatizado CI/CD en Azure DevOps en lugar de los engorrosos despliegues manuales.

  • Desarrollo de un marco de pruebas automatizado basado en Python para el desarrollo basado en pruebas de nuevas funciones de bases de datos.

  • Refactorización de ETL y procesos de ejecución lenta utilizando principios de codificación limpia.

  • Implementación de un micrositio de catalogación de datos mediante markdown y páginas de Github para que los usuarios descubran, busquen y comprendan el diseño técnico de la base de datos.

  • Formación del equipo en las mejores prácticas de ingeniería de datos, como automatización de pruebas, CI/CD y documentación.

Beneficios empresariales

Improving sugirió varias soluciones, ayudó a analizar las mejores opciones, recomendó las mejores soluciones para esta situación específica y, a continuación, implantó dichas soluciones. El resultado para nuestro cliente es una arquitectura de datos más valiosa y un entorno de datos de mayor calidad.

Las ventajas de contar con ingenieros de datos cualificados con experiencia en el procesamiento moderno de datos distribuidos significó que nuestro cliente pudo pasar de mantener los datos SQL existentes a escalar los recursos humanos y del sistema de forma más eficaz. Las mejoras en el desarrollo permitieron escalar de 1-2 ingenieros de datos para permitir que múltiples recursos contribuyeran de una manera escalable y centrada en la calidad. En concreto:

  • El uso de Snowflake redujo las fusiones de datos de más de 6 horas a solo minutos. Otras consultas pasaron de 6-10 minutos a sólo segundos.

  • El uso de datos disponibles en Kafka en lugar de utilizar el lago de datos cargado por lotes redujo la latencia de los datos.

  • Los procesos ETL que tardaban más de 48 horas en completarse se refactorizaron (y probaron) para ejecutarse en 10 horas o menos.

  • Los ETL fallidos podían iniciarse desde la última etapa en lugar de tener que empezar desde el principio.

  • Los desarrolladores y usuarios han comprendido el sistema y respondido a las preguntas sobre datos con mayor rapidez gracias a la mejora de la estructura, las normas y la documentación.

  • La aplicación de normas de desarrollo de bases de datos mejoró la calidad, coherencia y capacidad de mantenimiento del código.

Por qué Improving

La mayoría de los equipos de ingeniería de datos tratan las pruebas, la documentación y el proceso ágil como cuestiones secundarias. Improving los considera primordiales porque son la base de un sistema de datos fiable. Una codificación limpia y unos estándares de ingeniería adecuados aumentan la velocidad del equipo a largo plazo, al tiempo que mejoran la fiabilidad y previsibilidad de los datos. Nuestros consultores construyen sistemas listos para la producción y no sólo código que se pone en producción.

Improving entiende que no debemos construir sistemas complejos que el cliente sea incapaz de entender o de hacer suyos. Trabajamos muy duro para demostrar que cumplen los criterios de aceptación, es decir, que hemos construido el sistema correcto. Hemos visto a demasiados tecnólogos en otros clientes construir soluciones novedosas pero muy complejas, y el cliente no podía evaluar eficazmente si obtenía lo que necesitaba. Realmente nos preocupamos por entregar lo que el cliente quería y necesitaba porque los consultores deben hacer algo más que "implementar los requisitos".

Cuando Improving construye un sistema de datos, resolvemos los problemas con una visión holística del producto en lugar de centrarnos en un problema de ingeniería específico.

¿Listo para empezar?

Llevamos modernizando sistemas y equipos de software para empresas de Fortune 500 desde 2006. Hable con nuestros expertos para comenzar su transformación digital hoy mismo.