Implementación de integración en Synapse
Problemática actual
La integración de datos en uPlanner ha sido históricamente uno de los factores que más influye en los tiempos de implementación de un producto para un cliente. Ciertamente el trabajo con los datos puede ser muy complejo, se calcula en 1.229 las validaciones de datos que se hacen sobre 752 columnas organizadas en 95 layouts, de los que algunos pueden superar largamente el millón de registros.
En el caso de las validaciones han logrado separarse en cuatro grandes grupos que recopilan el 98% de las validaciones: validación de duplicidad, obligatoriedad, formato y consistencia. En donde los tres primeros grupos ya están completamente automatizado. Las 452 validaciones restantes actualmente se hacen uno a uno y deben estar explícitas en los distintos etls.
En el caso de los layouts con una gran cantidad de registros se nos ha hecho muy difícil manejarlo, llegando a costarnos unas integraciones de más de cuatro horas o inclusive integraciones que no logran finalizar. Estos tiempos de integración hacen que necesariamente en algunos casos solo se pueda realizar solo una integración al día, lo que implica iteraciones muy largas con el cliente y sus datos.
Se busca entonces mejorar el proceso de integración de tal modo que se respeten el total de validaciones que actualmente están implementadas y que además mejoren los tiempos de integración, permitiéndonos también escalar los servidores en momentos que sea necesario.
Métricas de integración
Para medir el rendimiento de una integración se proponen las siguentes unidades de medida:
- Rendimiento: Tiempo requerido para realizar una integración completa por cada millón de registros.
- Iteraciones: Cantidad de integraciones necesarias hasta la primera simulación.
- Costo: Costo para empresa según servidores destinados a la integración de datos.
Tareas imprescindibles a llevar a cabo
Step | Acción necesaria | Conocimiento en synapse |
Setup | Setear parámetros según BD | En progreso |
StepA: Zona de acopio | Leer sftp y obtener listado de archivos con criterios de búsqueda | Ok |
Copiar archivos desde sftp a datalake | Ok | |
Actualizar registros en BD | Ok | |
StepB: Zona de confianza | Iterar sobre un listado cambiando ciertos parámetros | Backlog |
Leer csv y escribir en BD en donde las relaciones de columnas sean parametrizables | Backlog | |
Construir UPDATE según parámetros | Backlog | |
Ejecutar UPDATE en BD | Ok | |
StepC: Zona de consumo | Iterar sobre un listado cambiando ciertos parámetros | Backlog |
Realizar UPDATE en BD | Ok | |
Realizar 29 validaciones y asociarles UPDATE en BD | Backlog | |
Reporte de integración | Crear archivos csv | Backlog |
Ejecutar script python | Backlog | |
Enviar correo | Backlog |
Acerca de Azure Synapse Analytics
Azure Synapse Analytics es un servicio de análisis ilimitado que reúne la integración de datos, el almacenamiento de datos empresariales y el análisis de macrodatos. Le da la libertad de consultar los datos como quiera, usando recursos sin servidor o dedicados, a gran escala. Azure Synapse combina estos mundos y ofrece una experiencia unificada para ingerir, explorar, preparar, administrar y servir datos con el fin de satisfacer las necesidades inmediatas de inteligencia empresarial y aprendizaje automático.
Características de Talento
Principales conocimientos técnicos requeridos:
– Gestión de bd, consultas a la bd. Manejo de lenguajes de consulta a BD Mysql, sql server, oracle sql (heidi, navicat)
– Modelamiento de datos relacionales y no relacionales (dbschema)
– Herramientas de integración, etl (pentaho, synapse)
– Diseño de datawarehouse, datalake (synapse)
– Conocimiento de tecnologías bigdata (synapse) (HDFS, Hive, Spark, Yarn)
Buenas práacticas en el manejo de datos:
Consistencia: asegura que los datos de todos los sistemas de una organización estén sincronizados y reflejen la misma información.
Precisión: esto implica que los datos recopilados representan exactamente lo que deberían ser.
Puntualidad: significa que los datos están siempre disponibles para facilitar la toma de decisiones.
Validez: indica si los datos cumplen con los estándares o criterios definidos por el equipo encargado de la gestión de datos.
Integridad: indica si los datos recogidos son suficientes para sacar conclusiones.