Categories
54cuatro

Comparativa entre herramientas de ETL

ETL es un acrónimo que significa Extracción, Transformación y Carga. Es un proceso utilizado en la gestión de datos para recopilar datos de diferentes fuentes, limpiarlo y transformarlo en un formato adecuado para su análisis y utilización en un sistema de información. Luego se carga en una base de datos o sistema de almacenamiento para su uso futuro. Es una técnica comúnmente utilizada en la integración de datos.

Existen herramientas open source, comerciales e incluso serverless provistas por cloud providers.
ETL (Extraction, Transformation & Load) – La Taberna del BI

¿Que herramienta de #ETL usar?

Talend es una plataforma de integración de datos que permite la conexión, la transformación y la integración de datos entre diferentes sistemas. Utiliza una interfaz gráfica de usuario para diseñar flujos de trabajo de integración de datos, lo que facilita la creación de tareas de integración de datos para usuarios sin experiencia en programación. Además, #Talend ofrece una amplia gama de componentes preconstruidos que se pueden utilizar para conectarse a diferentes fuentes de datos, como bases Talend Data Fabric - Opiniones, precios y características - Capterra Colombia 2023de datos, aplicaciones empresariales y servicios web. Estos componentes se pueden personalizar y combinar para adaptarse a las necesidades específicas de cada proyecto.

 

______________

Pentaho Data Integration (PDI) es una herramienta de integración de datos open-source que permite la conexión, la transformación y la integración de datos entre diferentes sistemas. Utiliza una interfaz gráfica de usuario para diseñar flujos de trabajo de integración de datos, conocida como Spoon, que facilita la creación de tareas de integración de datos para usuarios sin experiencia en programación.Qué es Pentaho Data Integration (PDI) y para qué sirve?

PDI tiene una amplia gama de componentes preconstruidos, llamados transformaciones y tareas, que se pueden utilizar para conectarse a diferentes fuentes de datos, como bases de datos, aplicaciones empresariales y servicios web. Estos componentes se pueden personalizar y combinar para adaptarse a las necesidades específicas de cada proyecto. También cuenta con herramientas para la limpieza y análisis de datos, así como para la generación de informes y la creación de dashboards.

PDI se utiliza en conjunto con el resto de herramientas de la suite Pentaho, como #Pentaho Report Designer y Pentaho Analyzer, para crear soluciones completas de Business Intelligence.

______________

Apache NiFi es una plataforma de flujo de datos open-source que permite la captura, flujo, transformación y distribución de datos a través de una interfaz gráfica de usuario fácil de usar. Es una herramienta altamente escalable y escalable que se puede utilizar para automatizar y optimizar los flujos de trabajo de datos en una variedad de entornos, desde pequeñas aplicaciones hasta implementaciones de gran escala.

Tus datos se cambian de casa? Apache NiFi te ayuda con la mudanza - Future Space S.A.

NiFi utiliza una arquitectura basada en flujos para organizar y controlar los datos, lo que permite a los usuarios crear flujos de trabajo de integración de datos mediante la arrastrado y soltado de componentes preconstruidos en una interfaz gráfica de usuario. Estos componentes, conocidos como procesadores, se pueden utilizar para realizar tareas como la captura de datos, la transformación de datos, la validación de datos y la distribución de datos a diferentes destinos.

#NiFi también cuenta con características avanzadas, como la capacidad de manejar y procesar datos en tiempo real, la seguridad y el control de acceso, y la monitorización y la gestión de flujos de trabajo. También tiene una integración con otras herramientas y tecnologías de big data, como Apache #Kafka, Apache #Storm y Apache #Hadoop.

Y que hay de los serverless, los que son ejecutados en las #cloud?

Azure Data Factory (ADF) es una plataforma de integración de datos en la nube de Microsoft que permite la conexión, la transformación y la integración de datos entre diferentes sistemas. Es un servicio en la nube que se ejecuta en Microsoft Azure y se utiliza para automatizar los flujos de trabajo de integración de datos.

ADF utiliza una interfaz gráfica de usuario para diseñar flujos de trabajo de integración de datos, llamados “pipelines”, que se componen de diferentes “actividades” que representan tareas específicas, como la copia de datos, la transformación y el procesamiento. Estas actividades se pueden utilizar para conectarse a diferentes fuentes de datos, como bases de datos, aplicaciones empresariales y servicios web, y para copiar y mover datos entre estos sistemas.

ADF también cuenta con herramientas para la automatización de tareas, como la planificación de trabajos y la generación de informes, y cuenta con integración con otras herramientas y tecnologías de Microsoft Azure, como #Azure Data Lake Storage, Azure SQL Data Warehouse y #PowerBI.

Ademas, ADF tiene la capacidad de escalar automáticamente para manejar grandes volúmenes de datos y también cuenta con una variedad de opciones de seguridad y cumplimiento.

______________

AWS Glue es una plataforma de integración de datos en la nube de Amazon Web Services (AWS) que permite la conexión, la transformación y la integración de datos entre diferentes sistemas. Es un servicio en la nube que se ejecuta en AWS y se utiliza para automatizar los flujos de trabajo de integración de datos.

AWS #Glue ofrece una interfaz gráfica de usuario para diseñar flujos de trabajo de integración de datos, llamados “jobs”, que se componen de diferentes “tareas” que representan tareas específicas, como la copia de datos, la transformación y el procesamiento. Estas tareas se pueden utilizar para conectarse a diferentes fuentes de datos, como bases de datos, aplicaciones empresariales y servicios web, y para copiar y mover datos entre estos sistemas.

AWS Glue también cuenta con herramientas para la automatización de tareas, como la planificación de trabajos y la generación de informes, y cuenta con integración con otras herramientas y tecnologías de AWS, como Amazon S3, Amazon Redshift y Amazon Athena.

Ademas, AWS Glue cuenta con un catálogo de metadatos, que permite a los usuarios registrar y gestionar información sobre sus datos, como estructura, relaciones y calidad de los datos. También tiene la capacidad de escalar automáticamente para manejar grandes volúmenes de datos y cuenta con opciones de seguridad y cumplimiento. Asimismo, AWS tiene otro servicio que se llama #DataPipeline.

AWS Data Pipeline es un servicio de #Amazon Web Services (#AWS) que permite automatizar la transferencia y la transformación de datos entre diferentes sistemas de almacenamiento y procesamiento de datos. Es un servicio en la nube que se ejecuta en AWS y se utiliza para crear flujos de trabajo de integración de datos y automatizar tareas relacionadas con la gestión de datos.

Con AWS Data Pipeline, los usuarios pueden crear flujos de trabajo de integración de datos mediante la definición de “tareas” y “relaciones” entre ellas. Cada tarea representa una actividad específica, como la copia de datos desde una fuente a un destino, la ejecución de una transformación o la ejecución de un script. Las relaciones entre las tareas definen el orden en que deben ejecutarse las tareas.

AWS Data Pipeline también cuenta con herramientas para la planificación automatizada de tareas, como la programación de trabajos y la generación de informes, y cuenta con integración con otras herramientas y tecnologías de AWS, como Amazon #S3, Amazon #RDS y Amazon EMR.

Ademas, AWS Data Pipeline tiene la capacidad de escalar automáticamente para manejar grandes volúmenes de datos y cuenta con opciones de seguridad y cumplimiento. También permite a los usuarios monitorear y supervisar el progreso de los flujos de trabajo y detectar y solucionar problemas de manera eficiente.

______________

Google Cloud Dataflow es una plataforma de procesamiento de datos en la nube de #Google Cloud Platform (#GCP) que permite la ejecución de tareas de procesamiento y transformación de datos a gran escala. Es un servicio en la nube que se ejecuta en GCP y se utiliza para crear flujos de trabajo de integración de datos y automatizar tareas relacionadas con la gestión de datos.

Con Cloud #Dataflow, los usuarios pueden crear flujos de trabajo de procesamiento de datos mediante la definición de “tareas” y “relaciones” entre ellas. Cada tarea representa una actividad específica, como la lectura de datos desde una fuente, la ejecución de una transformación, la escritura de datos en un destino. Las relaciones entre las tareas definen el orden en que deben ejecutarse las tareas.

Dataflow permite a los usuarios crear flujos de trabajo utilizando un lenguaje de programación #Java o #Python, y utiliza un modelo de programación de tuberías y filtros para procesar los datos. Ademas, Dataflow es escalable y maneja de manera automática la distribución y el balanceo de carga para procesar grandes volúmenes de datos.

Dataflow también cuenta con herramientas para la planificación automatizada de tareas, como la programación de trabajos y la generación de informes, y cuenta con integración con otras herramientas y tecnologías de GCP, como #BigQuery, Cloud Storage, Cloud Pub/Sub.

Esperamos que esta nota haya sido de interés, y si tienes dudas puedes ponerte en contacto con nosotros.

[popup_anything id=”2076″]

 

 

Categories
54cuatro

Reseña de Azure Data Factory

Cómo conectar Azure Data Factory con un servidor SFTP, guardando las  credenciales en Azure Key Vault? | IfgeekthenEveris

Somos partners gold de Microsoft y quizás podría parecer que esta entrada es tendenciosa, pero la realidad es que siendo imparciales, #Azure Data Factory es una herramienta increíble, quizás, de lo mejor que hay un Azure junto con #DataBricks y #Synapse para la parte de datos.

¿Que es Data Factory?

Comencemos mencionando que es una herramienta totalmente administrada, basada en proveer servicios de integración de datos y #ETL que permite orquestar el transito de datos y las transformaciones.

Como característica adicional podemos mencionar que se adapta al pequeño cambio de #ETL a #ELT para modelos de #datalakes. Recordemos que ETL significa Extraer, Transformar y Cargar, mientras que ELT significa Extraer, Cargar y Transformar. En ETL, los datos fluyen desde la fuente de datos hasta la preparación y el destino de los datos. ELT permite que el destino de los datos realice la transformación, eliminando la necesidad de almacenar los datos. En esta nota hay mas informacion al respecto.

Por otro lado, y super importante de remarcar. ADF es la herramienta que “absorbe” los paquetes de SSIS cuando se lleva una base #MSSQL de on-premise a la nube.

Veamos a detalle. ¿Que puede hacer #ADF por nosotros?

Inteligencia empresarial automatizada - Azure Architecture Center |  Microsoft Docs

Estas son algunas características necesarias para correr ADF:

Pipelines:  un pipeline es una agrupación de actividades que es realizada como un proceso integrado. En un solo pipeline se pueden ejecutar todas las acciones referidas a la manipulación de datos necesaria por un proceso.

Activities: son justamente las actividades que se corren como parte de un pipeline. Son una acción explicita, como copiar datos a una tabla de almacenamiento o transformar datos.

Dataset: los conjuntos de datos son estructuras de datos dentro de los almacenes de datos, que apuntan a los datos que las actividades necesitan utilizar como entradas o salidas.

Triggers: estos triggers o en español desencadenantes son una forma de correr una ejecución de pipeline. Los desencadenadores determinan cuándo debe comenzar la ejecución de un pipeline, de acuerdo a 3 tipos de activadores:

  • Programado : este activador invoca una canalización a una hora programada.
  • Tumbling windows trigger : este desencadenador opera en un intervalo periódico.
  • Basado en evento: un activador que invoca una ejecución de pipeline cuando hay un determinado evento.

Tiempo de ejecución de integración: El tiempo de ejecución de integración (IR) es la infraestructura informática que se utiliza para proporcionar capacidades de integración de datos como flujo de datos, movimiento de datos, envío de actividades y ejecución de paquetes SSIS. Hay tres tipos de tiempos de ejecución de integración disponibles, que son:

  • Azure, para Flujo de datos, movimiento de datos, envío de actividades
  • Self hosted, para Movimiento de datos, envío de actividades
  • SSIS, para la ejecución de paquetes #SSIS (integration services de SQL)

¿Que alternativas existen a Data Factory?

Si vamos a un esquema cloud, AWS Glue y Data Pipelines, son productos de Amazon para competir con ADF. En el aspecto #OpenSource, Apache #Kafka junto a #NiFi podrían ser un competir muy digno.

Respecto a la parte de transformación, quizás pierde un poco respecto a sus competidores, por ejemplo contra #Pentaho.

La gran ventaja de los productos 100% cloud se da por la rápida integración hacia otros productos. Por ejemplo, en el caso de una plataforma de #IoT, ADF en pocos clics se integra a Azure Event Hub. O poder trabajar integrado a Azure DevOps para poder trabajar el desarrollo de las integraciones como si fuera un software normal.

Device To Cloud Connectivity with Azure IoT Hub | by Prosenjit Chakraborty  | Medium

Conclusión

Este es una simple entrada para mencionar y que conozcan Azure Data Factory. Es realmente muy poderosa y su capacidad para integrarse a otras herramientas la transforma en lo que solemos llamar ‘una navaja suiza’, donde podemos tomar la informacion, procesarla, limpiarla, darle formato y enviarla a un almacenamiento destino para su uso final, ya sean tableros de BI o modelos de Machine Learning, todo como un proceso end to end.


    Please prove you are human by selecting the flag.

    Categories
    54cuatro

    Usar Bases Relacionales para Analítica

    Desafío planteado

    El cliente nos indica que tiene 2 bases de datos, una Oracle 11g y otra MSSQL2016 donde se guarda informacion de dos sistemas corporativos de tipo BSS, y ademas junto con esa data necesitaban enriquecer la info con algunos archivos que reciben en formato CSV de algunos proveedores, y que para poder analizarlos ejecuta algunos procesos manuales, suben todo a una base de datos intermedia y desde ahí hacían tableros de BI.

    Este proceso corría una vez por dia, involucraba la participación de una persona y no cumplía con los tiempos requeridos por el negocio.

    Nuestro cliente quería evaluar cuidadosamente si nuestra propuesta de inteligencia empresarial hacia sentido para ellos, motivo por el cual propusimos hacer este desarrollo como PoC (prueba de concepto), sin involucrar el armado de un datawarehouse ya que contaban con uno on-premise y tampoco quería instalar servidores ni adquirir nuevas licencias, de manera que teníamos que desarrollar una solución consumiendo de servicios de Nube.

    Solución Propuesta

    Durante la charla propusimos hacer uso de servicios serverless en la nube, Funciones en #AWS o #Azure, donde un script se ejecute para extraer la info, procesarla y dejarla disponible para analizar. Una especie de #ETL #serverless.

    Otra alternativa era armar una infraestructura de eventos con #Kafka o #NiFi. Pero como la solución tenia que ser bajo la premisa de no instalar equipamiento finalmente desistimos de esta opción.

    El boceto cuando armamos la call de Preventa

    Implementación

    Lo primero que hicimos fue eliminar los procesos de ETL que corrían hoy con SSIS, y la base intermedia desde donde conectaban la herramienta de BI.

    Posterior a eso, realizamos el desarrollo de código Python que se ejecuta sobre Azure Functions para tomar los CVS y Parquet de proveedores, extraer la información y llevarla a Data Lake Storage.

    Otra parte corre en Azure Data Factory, un integrador de datos con conectores pre-compilados que nos servían para tomar la info desde las bases relacionales y llevar los datos de manera automatizada, simplificando mucho la extracción de la info y el movimiento hacia Azure Data Lake Storage donde almacenamos lo que llegaba. A eso le sumamos Azure #DataBricks donde corremos la preparación de los datos.

    Databricks es una herramienta de Azure basada en #Apache #Spark que permite configurar de manera simple flujos de trabajo optimizados, dejando la data lista para que DBA, Data Scientist o incluso Analistas de Negocios, dispongan de la información para sus labores.

    Finalmente toda la capa de visualización fue armada en PowerBI, desde donde concentrábamos reportes según el perfil del usuario visualizador.

    Toda la solución lógicamente tiene componentes de seguridad, como Active Directory para la autenticación.

    Entre el assessment, la planificación, y ejecución del proyecto fueron 5 semanas de trabajo donde obtuvimos como resultado un producto de analítica casi en tiempo real, con un costo de menos de 500 USD mensuales pero que generaba insights claros de negocios donde antes no existían.

    Los resultados fueron excelentes porque dieron visibilidad de operaciones comerciales desconocidas. Esta buena recolección de resultados mostraron un ROI muy interesante que motivó avanzar en el proyecto a una Fase 2, que consistió en generar experimentos de Machine Learning organizados desde Databricks y que nos permitieron identificar los modelos con mejor rendimiento respecto al esquema de precios de la compañía.

    La combinación de Azure Databricks y Azure Machine Learning nos permitieron generar un ciclo de vida de ML orientado a predecir compras, comportamientos de clientes, y generar una adaptación del esquema de pricing que significó un aumento en las ventas de la empresa.


    [popup_anything id=”2076″]
    Categories
    54cuatro

    Patrones de Arquitectura para Microservicios

    Acerca de los microservicios

    Los #microservicios, son un estilo arquitectónico que estructura una aplicación como una colección de servicios. La arquitectura de microservicios permite la entrega rápida, frecuente y confiable de aplicaciones grandes y complejas.

    Al trabajar con microservicios es común que las transacciones tarden mucho en ejecutarse debido a una gran distribución de aplicaciones como bases de datos y servicios que hacen más complejo mantener la consistencia de los datos (ACID). Recordemos que en un entorno de base de datos, ACID es un estándar de las base relacionales, que cumple estos requisitos: Atomicity — Atomicidad: Se ejecutan todas las instrucciones o ninguna, Consistency — Consistencia: Asegura que el estado final sea un estado válido y consistente. Isolation — Aislamiento: Sólo se puede acceder por un agente a la vez, a la información a ser modificada. Durability — Durabilidad: La información modificada tiene que quedar persistida en el repositorio.

    Las transacciones locales de ACID tampoco ayudarán si la comunicación ocurre entre servicios separados con múltiples bases de datos.

    Patrón de diseño SAGA

    SAGA es un modelo de arquitectura publicado originalmente por el departamento de informática de la universidad de Princeton en 1987. Pueden descargar el paper original aquí.

    De acuerdo a la descripción del modelo, SAGA es una secuencia de transacciones locales donde cada transacción actualiza los datos dentro de un solo servicio.

    Hay un par de formas diferentes de implementar una transacción de saga, pero las dos más populares son:

    • Eventos / coreografía: cuando no hay coordinación central, cada servicio produce y escucha los eventos de otro servicio y decide si se debe tomar una acción o no.
    • Comando / Orquestación: cuando un servicio coordinador es responsable de centralizar la toma de decisiones y la secuencia de la lógica de negocios de la saga.

    Vamos a usar estas imágenes de https://microservices.io para graficar cada modelo y que se entienda como funcionan:

    Modelo EVENTOS
    Modelo ORQUESTRADO

    Ejemplo de una plataforma de stream de datos con Apache #Nifi

    Beneficios de usar SAGA como patrón de arquitectura

    Los eventos / coreografía es una forma natural de implementar el patrón de Saga, es simple, no requiere mucho esfuerzo para construir. Es un patrón muy atractivo para casos donde la transacción de su aplicación implica de 2 a 4 pasos. Este enfoque puede volverse confuso rápidamente si sigue agregando pasos adicionales en su transacción, ya que es difícil rastrear qué servicios escuchan qué eventos. Ademas las pruebas serían difíciles de implementar usando este diseño, para simular el comportamiento de la transacción, debe tener todos los servicios corriendo.

    SAGA es un modelo muy util que permite que una aplicación mantenga la consistencia de datos en múltiples servicios sin usar transacciones distribuidas.

    Prueba de Concepto

    En #github, #Microsoft tiene una solución que simula un escenario de transferencia de dinero, donde se transfiere una cantidad entre cuentas bancarias a través de operaciones de crédito / débito y se genera un recibo de operación para el solicitante. Es una referencia de implementación del patrón #Saga a través de un enfoque de orquestación en una arquitectura sin servidor en #Azure. La solución aprovecha Azure #Functions para la implementación de los participantes de Saga, Azure Durable Functions para la implementación del Saga orchestrator, Azure Event Hubs como plataforma de transmisión de datos y Azure Cosmos DB como servicio de base de datos.

    Repo disponible en: https://github.com/Azure-Samples/saga-orchestration-serverless

    Architecture Overview

    [popup_anything id=”2076″]