Archivo de la etiqueta: delt

El enfoque declarativo en el Data Management y la ventaja de Irion EDM

de Michele Iurillo* y ChatGPT

Este artículo se ha escrito a 4 manos.. (si se puede decir) de un lado he usado ChatGPT con preguntas muy concretas, del otro he añadido elementos para complementar la información. Imaginarlo como un experimento sobre el argumento del momento y una forma de concretar más el enfoque declarativo en Data Management que es uno de los puntos fuertes de la tecnología de Irion EDM.

El enfoque declarativo se refiere a una forma de expresar un problema o una solución en términos de lo que se desea lograr, en lugar de cómo se desea lograrlo. En lugar de especificar los pasos detallados para resolver un problema, se especifica el resultado deseado.

En programación, el enfoque declarativo se utiliza para escribir código que especifica qué se desea lograr, en lugar de cómo se desea lograrlo. Por ejemplo, en lugar de escribir código que especifica cómo recorrer una lista de elementos y realizar una determinada acción en cada uno de ellos, se escribe código que especifica que se desea realizar esa acción en cada elemento de la lista. El lenguaje de programación se encarga de resolver cómo realizar esa acción.

El enfoque declarativo se utiliza en varios campos, como en bases de datos, en donde los lenguajes declarativos son aquellos que se centran en describir los resultados deseados en una consulta, en lugar de describir cómo se obtienen esos resultados. SQL es un ejemplo de un lenguaje declarativo utilizado en las bases de datos relacionales.

En resumen, enfoque declarativo es una forma de abordar un problema o una solución enfatizando en lo que se quiere lograr en lugar de cómo se quiere lograrlo, permitiendo al sistema o lenguaje de programación encargarse de las tareas de implementación.

Algunos ejemplos de lenguajes de programación declarativos son:

  1. SQL (Structured Query Language): Es un lenguaje declarativo utilizado para acceder y manipular bases de datos relacionales. En lugar de especificar cómo recuperar los datos, se especifica qué datos se desean recuperar mediante consultas.
  2. Prolog: Es un lenguaje de programación lógico declarativo utilizado en inteligencia artificial y programación de sistemas expertos. Permite al programador especificar reglas y hechos, y luego utilizar un motor de inferencia para obtener conclusiones.
  3. Haskell: Es un lenguaje de programación funcional declarativo utilizado para construir sistemas concurrentes y distribuidos. En lugar de especificar cómo se deben realizar las operaciones, se especifican las operaciones que se desean realizar y el lenguaje se encarga de resolver cómo realizarlas.
  4. XSLT: (Extensible Stylesheet Language Transformations) es un lenguaje declarativo utilizado para transformar documentos XML en otro formato, como HTML o PDF. El programador especifica cómo se deben transformar los datos, en lugar de cómo se deben recuperar.
  5. RDF: (Resource Description Framework) es un lenguaje declarativo utilizado para describir recursos y relaciones entre ellos. Es ampliamente utilizado en la web semántica y el enriquecimiento de metadatos.

Enfoque Procedural

El enfoque procedural se refiere a una forma de expresar un problema o una solución en términos de los pasos específicos que deben seguirse para lograr un resultado. En lugar de especificar el resultado deseado, se especifican los pasos detallados para resolver el problema.

En programación, el enfoque procedural se utiliza para escribir código que especifica cómo se deben realizar las tareas, en lugar de qué tareas se deben realizar. Por ejemplo, en lugar de escribir código que especifica que se desea realizar una determinada acción en cada elemento de una lista, se escribe código que especifica cómo recorrer la lista y realizar la acción en cada elemento.

Los lenguajes de programación procedurales son aquellos que siguen un enfoque de programación estructurada, en donde se divide el código en bloques lógicos y se organizan en funciones y procedimientos

Algunos ejemplos de lenguajes de programación procedurales son:

C: Es un lenguaje de programación de alto rendimiento y de bajo nivel, que es ampliamente utilizado para desarrollar sistemas operativos, dispositivos embebidos y aplicaciones de bajo nivel. Es un lenguaje de programación estructurado, con un enfoque en la programación procedural.

Pascal: Es un lenguaje de programación estructurado, desarrollado para la enseñanza de la programación en las universidades. Es ampliamente utilizado para desarrollar aplicaciones de escritorio, juegos y aplicaciones científicas.

Fortran: es un lenguaje de programación procedural desarrollado para cálculo científico y numérico, es utilizado en aplicaciones como simulación de sistemas, modelado de fluidos y análisis estadísticos.

Basic: es un lenguaje de programación procedural muy fácil de aprender para principiantes. Fue diseñado para enseñar a los estudiantes de programación básica

¿Por qué es mejor el enfoque declarativo en Data Management?

El enfoque declarativo en Data Management tiene varias ventajas sobre el enfoque procedural. Algunas de estas ventajas son:

  1. Mayor claridad: El enfoque declarativo permite especificar los resultados deseados de manera clara y concisa, lo que ayuda a reducir el riesgo de errores y aumenta la eficiencia en el manejo de datos.
  2. Mayor flexibilidad: Al especificar los resultados deseados en lugar de los pasos para lograrlos, el enfoque declarativo permite adaptarse fácilmente a cambios en los datos o en los requisitos del sistema.
  3. Mayor escalabilidad: Al permitir la separación entre la especificación de los resultados y su implementación, el enfoque declarativo permite escalar el sistema de manejo de datos sin tener que modificar el código.
  4. Mayor portabilidad: Al separar la especificación de los resultados de su implementación, el enfoque declarativo permite el uso de diferentes sistemas o tecnologías para implementar la especificación.
  5. Mayor eficiencia: Al permitir que el sistema se encargue de implementar la especificación, el enfoque declarativo permite obtener resultados más rápidamente y con menos recursos.

En resumen, el enfoque declarativo en Data Management ofrece una mayor claridad, flexibilidad, escalabilidad, portabilidad y eficiencia en la gestión de datos. Al permitir especificar los resultados deseados en lugar de los pasos para lograrlos, permite una mayor escalabilidad, flexibilidad y portabilidad.

DELT(™) ELT Declarativo

DELT es una de las tecnologías propietarias de Irion. El motor orquesta y sincroniza el plan de procesamiento y control de datos con algoritmos inteligentes, lo que permite a los profesionales de la gestión de datos -que utilizan la plataforma Irion EDM®- trabajar en un entorno autoadaptativo y basado en metadatos.

Las ventajas principales son:

  • El enfoque declarativo permite al motor DELT™ alcanzar altos niveles de rendimiento al maximizar el paralelismo de las fases de procesamiento.
  • La arquitectura DELT™ está diseñada para trabajar eficazmente con grandes volúmenes de datos mediante motores orientados a conjuntos.
  • El ingeniero de datos se encarga de los aspectos semánticos de las soluciones delegando en la plataforma la gestión automática de las estructuras de datos.
  • La integración de motores con tecnologías heterogéneas, como Query, Script, Rule, R, Python, Masking, Profiling, permite utilizar la herramienta más adecuada para cada situación.

Para info: http://irion-edm.com/es

ETL, CDC, ELT y DELT(TM)

Una de las cosas más fascinante que he encontrado dentro de IRION es sin duda el enfoque Declarativo. Es algo tan sencillo y tan potente. En años de Data Management siempre me he topado con problemáticas de gestión de datos. De procesos de extracción, de manos en la masa de datos, proyectos interminables, lentos, procesos de cargas sin fin, etc. 

 

Este artículo es fruto de mi afán de entender las cosas bien. Quería aclararme bien mi storytelling para la introducción de Irion en el mercado Español. Lo más bonito de mi trabajo es el aprendizaje que cada día los diferentes clientes y proyectos me aportan. Pero vamos con orden ¿que es un enfoque declarativo? Volviendo a mis antiguos apuntes de programación “Los programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos. Los principales paradigmas son: imperativos, declarativos y orientación a objetos.” Sin ir mucho más lejos, SQL es declarativo, lanzar una query quiere decir quiero obtener un resultado concreto no me interesa saber de qué forma lo haces a nivel interno ya que los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifican cualquier detalle de implementación. El ejemplo más típico es el de la Paella, si voy a comer una a un restaurante simplemente pido “una paella”, no comunicó al camarero que quiero que se vayan sofriendo pollo y conejo con algo de ajo, aceite y romero, para luego poner las verduras, para luego poner el tomate el pimienton, todo ello con el caldo para luego verter el arroz… No somos expertos de cualquier cosa (aunque mi paella debido a los años de vida en Valencia no está nada mal por ser italiano) y cuando no llegamos a algo o no sabemos hacer algo delegamos en trabajo en alguien que sepa hacerlo mejor, más rápido y más bueno (sobre todo si de paella se trata).

 

Pero nosotros nos ocupamos de datos, muchos datos, estructurados, no estructurados en una gran cantidad de fuentes externas, de proveniencia histórica o reciente. Datos que tenemos que Gobernar y tener bien aseados a nivel de calidad. Datos que tenemos que rectificar, reconciliar, mantener historicizados. Datos que tenemos que “documentar” porque es el regulador que nos lo impone y de ellos tenemos que tener una trazabilidad total y el proceso tiene que ser repetible. Hasta ayer, hoy todo esto se nos hacía muy complejo, estos datos tenían que limpiarse, adaptarse, extraerse, copiarse, y por ello existen diferentes enfoques el más histórico y utilizado ha sido el ETL.

 

ETL Extract Transform Load

 

Ya hemos hablado largo y tendido de todas las problemáticas de los procesos ETL en otro artículo. Justo para introducir el tema, ETL son las siglas de Extract-Transform-Load. El término ETL describe el proceso de mover datos y hacer manipulaciones con ellos. Las herramientas ETL suelen tener funciones de conexión a múltiples plataformas de datos y aplican transformaciones a los datos en la memoria. Después, presumiblemente, el resultado se registra en algún lugar. Los algoritmos ETL también pueden escribirse en la mayoría de los lenguajes de programación modernos, pero muchas organizaciones consideran que esta opción es menos preferible debido a la sobrecarga que supone escribir el código desde cero y a la complejidad desconocida del soporte posterior. 

 

Llegó un momento en que nos dimos cuenta de era inutil repetir estos procesos de cargas, y las nuevas tecnologías y los nuevos enfoques nos han brindando el CDC (Change Data Capture)

 

CDC Change Data Capture

 

CDC es uno de los patrones ETL para copiar datos. Se utiliza para auditar cada cambio en un registro: ya sea que cambie alguno de los valores o que se elimine un registro. Antiguamente, este patrón se implementa con herramientas ETL comparando la última copia de los datos con el origen o comprobando la marca de tiempo de actualización del registro de origen. El rendimiento era pésimo y había una enorme posibilidad de perder algunas de las actualizaciones. Las herramientas de CDC han cambiado las cosas drásticamente, utilizan registros de transacciones para rastrear los cambios, por lo que ningún cambio pasa desapercibido, y ni siquiera afecta al rendimiento de la base de datos de origen. Hay dos métodos diferentes para detectar y recoger los cambios: el data el versionado, que evalúa las columnas que identifican las filas que han cambiado (por ejemplo, las columnas last-update- columnas de fecha y hora, columnas de número de versión, columnas de indicador de estado), o mediante lectura de registros que documentan los cambios y permiten replicarlos en sistemas secundarios. El CDC nos brindó muchas mejoras sobre todo en términos prestacionales, herramienta como Qlik ha hecho de CDC un mantra sobre todo cuando su producto ha querido salir del mundo OLAP. Pero… Llegó la nube y lo cambió todo, almacenamiento y cómputo de alta disponibilidad han creado un nuevo escenario. 

 

ELT Cargamos primero…

 

El enfoque ETL fue una vez necesario debido a los altos costos de la computación y el almacenamiento en las instalaciones. Con el rápido crecimiento de los almacenes de datos basados en la nube y la caída en picado de los costos de la computación y el almacenamiento basados en la nube, hay pocas razones para seguir haciendo la transformación antes de la carga en el destino final. De hecho, dar la vuelta a los dos permite a los analistas hacer un mejor trabajo de forma autónoma.

En pocas palabras ahora los analistas pueden cargar los datos antes de transformarlos, no tienen que determinar de antemano exactamente qué conocimientos quieren generar antes de decidir el esquema exacto que necesitan obtener y esta es una gran ventaja.

En su lugar, los datos de la fuente subyacente se replican directamente en un almacén de datos, que comprende una «única fuente de verdad». Los analistas pueden entonces realizar transformaciones en los datos según sea necesario. Los analistas siempre podrán volver a los datos originales y no sufrirán transformaciones que puedan haber comprometido la integridad de los datos. Esto hace que el proceso de inteligencia de negocio sea incomparablemente más flexible y seguro.

 

DELT(™)

 

Delt es una de las tecnologías propietarias de IRION. El motor orquesta y sincroniza el plan de procesamiento y control de datos con algoritmos inteligentes, lo que permite a los profesionales de la gestión de datos -que utilizan la plataforma Irion EDM®- trabajar en un entorno autoadaptativo y basado en metadatos.

Las ventajas principales son:

  • El enfoque declarativo permite al motor DELT™ alcanzar altos niveles de rendimiento al maximizar el paralelismo de las fases de procesamiento.
  • la arquitectura DELT™ está diseñada para trabajar eficazmente con grandes volúmenes de datos mediante motores orientados a conjuntos.
  • El ingeniero de datos se encarga de los aspectos semánticos de las soluciones delegando en la plataforma la gestión automática de las estructuras de datos.
  • la integración de motores con tecnologías heterogéneas, como Query, Script, Rule, R, Python, Masking, Profiling, permite utilizar la herramienta más adecuada para cada situación.

 

Un enfoque declarativo permite concentrarse en lo que se quiere obtener. Esto es lo que importa.