Declarative Thinking – ¿Por qué los grandes bancos y seguros han elegido Irion?

Los clientes pueden centrarse en sus objetivos confiando en la funcionalidad de la plataforma para preparar, optimizar y ejecutar todos los pasos necesarios. El rol central de los datos y el paradigma declarativo son el núcleo de todas nuestras tecnologías.

Supuestos y Razones – ¡Nuestra vida cotidiana es «declarativa»!

Todos los días, en diversas actividades y necesidades cotidianas, nos comportamos e interactuamos con otras personas según un principio declarativo. Comunicamos lo que necesitamos y recibimos el resultado de lo que pedimos, encargamos u ordenamos. No especificamos, por tanto, cómo llevar a cabo la tarea encomendada, no enseñamos a los demás su trabajo, por así decirlo. Simplemente declaramos lo que debe hacerse y los objetivos que deben perseguirse y alcanzarse. Por último, evaluamos los resultados y, en consecuencia, medimos la eficacia de las acciones emprendidas.

¿Quién de nosotros, al pedir un postre, le diría al camarero que le dijera al cocinero que bata un poco de queso blando hasta que esté cremoso, añadiendo un poco de azúcar en polvo, tres huevos grandes, crema agria, un poco de ralladura de limón y una pizca de sal? y que, mientras tanto, encargara al ayudante de cocina que derritiera un poco de mantequilla y removiera en ella migas de galleta para formar una corteza? Es mucho mejor decir simplemente: «Quiero una tarta de queso» y dejar que el cocinero nos sorprenda con un postre muy bueno hoy (de media mucho mejor que mi receta) y excelente mañana cuando mejore aún más la receta probándola y volviéndola a probar como un verdadero experto. No necesitamos definir la tarea del chef paso a paso, pero tenemos la garantía de que la hará perfectamente. Mientras tanto, podemos centrarnos en la elección de la bebida para que combine perfectamente con el plato, ¡y con nuestros gustos!

Hay múltiples razones para este tipo de comportamiento en la vida cotidiana:

  • Es un hecho innegable que no somos expertos en todo. El resultado suele ser mejor si delegamos en otros al menos una parte del proyecto.
  • Hacer bien un trabajo requiere concentración. Cualquier dispersión resta tiempo y energía a otras tareas.
  • La forma más eficaz de resolver problemas complejos es dividirlos en partes más sencillas y delegar el trabajo necesario.
  • Sólo quien conoce bien un problema puede resolverlo adecuadamente. Sólo quien invierte continuamente en investigación y acumula experiencia puede, con el tiempo, dar los pasos adecuados para la mejora constante y necesaria.

Al final, todos actuamos según los principios efectivos de delegación, concentración y aislamiento.

Para ello, no necesitamos ser prescriptivos, ni entrar en todos los detalles de las normas y reglas a seguir en la realización de una tarea. Lo que necesitamos es ser descriptivos, limitándonos a articular correcta y exhaustivamente el resultado esperado.

Esta observación, aparentemente sencilla, también puede transponerse y practicarse eficazmente para las soluciones avanzadas de gestión de datos. Del mismo modo, su realización requiere un enfoque declarativo y una plataforma que lo soporte.

Gestión de datos: enfoque tradicional basado en ETL

En informática, nos quedamos con demasiada frecuencia en el nivel procedimental, prescriptivo hasta el detalle. Instruimos a las aplicaciones incluso en las funciones básicas en lugar de aprovechar el software optimizado especialmente diseñado.

El problema se debe a la formación de los especialistas de la industria. Los enfoques habituales en la formación tradicional no consiguen desmenuzar un problema. Sin embargo, es más eficaz aislar los aspectos delegables y reorganizarlo por componentes sustituibles.

La mayoría de los desarrolladores definen algoritmos detallados para resolver los problemas.

Los modelos y lenguajes declarativos tienen como objetivo describir el resultado esperado más que los pasos necesarios para su consecución. Sin embargo, pocos conocen su significado y su potencial implícito.

En informática, los lenguajes declarativos suelen infravalorarse o recibir una aplicación limitada en el uso procedimental. Quienes están familiarizados con el tema saben que muy pocos especialistas, aunque conozcan un lenguaje declarativo como SQL, han aprendido realmente su potencial en términos de gestión y transformación de datos.

Una BD relacional puede ejecutar procesamientos muy complejos minimizando la transferencia de datos, con algoritmos paralelos fuertemente optimizados a bajo nivel y adaptados automáticamente en tiempo de ejecución a la distribución estadística de los datos. Sin embargo, los desarrolladores rara vez aprovechan plenamente su funcionalidad.

En el plano aplicativo, podemos ver que casi todos los sistemas de gestión de datos ETL están engañosamente simplificados por esta escuela de pensamiento. Implementan un paradigma imperativo y procedimental para el que el programador debe «instruir» detalladamente al sistema para que siga ciegamente el algoritmo llamado «tiempo de diseño».

Los sistemas ETL antiguos y tradicionales procesan los datos en flujo, una fila cada vez. Su lógica no deja margen para futuras optimizaciones del algoritmo. Incluso las nuevas versiones del software estarán estrictamente limitadas a realizar todos los pasos detallados ya programados.

Y no sólo. Los modelos informáticos orientados al ETL que pretenden procesar un registro a la vez chocan inmediatamente con las necesidades funcionales ordinarias. En realidad, a menudo es necesario realizar transformaciones que afectan a múltiples registros, calcular agregados, analizar series temporales, reutilizar varias veces parciales preprocesados, etc.

Incluso los sistemas ETL más reputados tienden a degenerar en un batiburrillo incoherente de transformaciones y llamadas SQL improvisadas para colocar datos temporales en alguna zona de espera y recurrir a las BD para compensar sus escasas capacidades funcionales.

Todos los sistemas ETL disponibles en el mercado se basan en la arquitectura conceptual que

no sigue un modelo declarativo de delegación funcional
impone una descripción detallada del proceso, no permite optimizar el procesamiento, ni en lo que respecta a la distribución actual de los datos ni en respuesta a las mejoras del software
no es autónoma en términos de potencial funcional y a menudo tiene que recurrir a sistemas de apoyo externos
mueve masas de datos una y otra vez desde las áreas de preparación hasta los servidores de procesamiento y viceversa para realizar la lógica del procesamiento.

Estos escenarios, tan comunes como poco propicios, dan lugar a

  • una orquestación cada vez más compleja de las vías de transformación
  • la necesidad de definir tablas de vista y diversas infraestructuras de apoyo utilizando otros instrumentos y formas descoordinadas
  • sobrecarga de los costes y del tiempo de ejecución
    reducción del rendimiento informático
  • aumento de los costes de mantenimiento y gestión de cambios
  • la imposibilidad de realizar desarrollos y ciclos de prueba paralelos y coordinados
  • la imposibilidad casi total de documentar y rastrear los procesos. Con el debido respeto a los requisitos de linaje y repetibilidad.

Gestión de datos: Irion EDM – la plataforma declarativa integrada para los procesos de gestión de datos más complejos

La tecnología de gestión de datos empresariales de Irion es el resultado de años de experiencia en contextos de misión crítica y de uso intensivo de datos. Hemos desarrollado esta plataforma basándonos en cientos de proyectos: aquellos con muchos datos, con limitaciones de tiempo, con especificaciones que cambian en el transcurso del trabajo, con problemas complejos en contextos de arquitectura y organización muy articulados.

Nuestro enfoque es «disruptivo»: no proponemos otro sistema ETL procedimental con alguna función extra, algún conector específico, un editor más bonito y motores «mágicos» para una ejecución rápida.

Los procesos ETL son una variante de la Gestión de Datos, que también abarca muchas otras áreas (Sistemas Basados en Reglas, Calidad de Datos, Integración de Datos e Informes, Gobierno de Datos, etc.). Hemos redefinido el concepto de Gestión de Datos adoptando el paradigma declarativo y haciéndolo prevalecer en tecnología y metodología.

Una de nuestras principales tecnologías se llama en realidad DELT™, que significa Declarative Extraction Loading & Transformation. Este acrónimo también representa la inversión de las fases de carga y transformación (ELT frente a ETL). Con esta tecnología, todo el proceso se lleva a cabo de acuerdo con un modelo declarativo.

Una Ejecución DELT™ se basa en los siguientes conceptos clave:

  • Cada conjunto de datos utilizado en el procesamiento se reposiciona virtualmente como si fuera una tabla o un conjunto de tablas cuyo contenido no puede modificarse después de su creación. Esto garantiza la coherencia, la eficacia y la controlabilidad del sistema. La tarea de la plataforma es realizar implícitamente todas las transformaciones necesarias para mapear adecuadamente un conjunto de datos, disponible en cualquier formato.
  • Todo el procesamiento se desglosa en un conjunto de «motores de datos». Se trata de funciones que reciben como entrada una o n tablas virtuales, realizan las transformaciones oportunas y producen como salida una o varias tablas virtuales según el modelo mostrado.
  • Las funciones pueden ser de muchos tipos (Query, Script, Rule, R, Python, Masking, Profiling, etc.). Realizan cálculos según lo configurado por quien establece la solución, encapsulando varios modelos y tipos de lógica.
  • La configuración de los motores de datos implica la definición implícita de un gráfico orientado de dependencias de ejecución. Permite que el sistema organice de forma autónoma la secuencia de pasos necesarios para producir cada salida, por lo que el diseñador no tiene que describir el algoritmo.
  • Cada objeto del sistema puede ejecutarse individualmente y/o en combinación con otros. Esto facilita su comprobación y mantenimiento, así como la refactorización y el desarrollo incremental.
  • El procesamiento de DELT™ sigue un esquema declarativo que especifica los conjuntos de datos esperados en la salida. Es tarea del sistema detectar automáticamente el «Gráfico DELT™» verificando que es acíclico, e iniciar la ejecución optimizada y paralela de todos los pasos necesarios para producir el resultado requerido.
  • En casos muy complejos, el motor es capaz de modificar el gráfico durante la ejecución en función de las propiedades dinámicas que lo determinan (también pueden estar influenciadas por los pasos anteriores); o incluso de generar y ejecutar en tiempo de ejecución los Motores de Datos necesarios para cálculos específicos.
  • Si es necesario, una Ejecución DELT™ puede involucrar a otras Ejecuciones DELT™ a efectos de encapsulación y reutilización de la lógica de negocio.
  • IsolData™ es la tecnología propietaria utilizada para hacer que los datos involucrados en un espacio aislado y gestionado estén disponibles para DELT™ Execution. Es un espacio de trabajo virtualmente ilimitado, asignado y liberado dinámicamente por el sistema, segregado en términos de permisos de acceso y espacio de nombres, volátil o persistente.
  • IsolData™ permite la ejecución en paralelo de n DELT™ sobre los mismos datos o sobre datos completamente diferentes y/o utilizando diferentes parámetros, reglas y lógica, sin necesidad de predefinir o gestionar ninguna estructura en particular. El marco coordina y gestiona todas las operaciones de apoyo a la gestión infraestructural de forma optimizada y transparente.
  • Durante una ejecución de DELT™, todas las operaciones de procesamiento de datos se realizan a bajo nivel en el servidor y en el modo orientado a conjuntos, es decir, considerando un conjunto arbitrariamente complejo de conjuntos de datos al mismo tiempo y no «una línea a la vez».
  • El servidor minimiza las costosas operaciones de movimiento de datos al ejecutar una sola vez los posibles cálculos complejos para producir datos intermedios para múltiples usos, sin necesidad de guardarlos explícitamente en archivos o tablas de respaldo.
  • El hecho de conocer un conjunto de estadísticas sobre los datos permite al motor realizar optimizaciones específicas a medida que se ejecutan los motores.
  • Cada Ejecución DELT™ permite desarrollar un proceso complejo de forma interactiva e incremental, haciendo visibles todos los resultados intermedios. También permite realizar un seguimiento completo e inteligible de los datos y las reglas que intervienen en cada cómputo, por ejemplo para fines de Auditoría (ver Documentación Automática y OneClick Audit™®).

Un enfoque declarativo de la gestión de datos empresariales parece mucho más acorde con una forma de pensar común. Responde al principio de delegación de funciones, garantiza unos niveles de rendimiento inigualables, permite la optimización automática y la mejora continua, posibilita la implantación ágil e incremental de las soluciones. Por último, no es una caja negra, sino que puede dar cuenta de su trabajo.