Ingeniería de datos moderna con MAGE Potenciando el procesamiento eficiente de datos.

Modern data engineering with MAGE powering efficient data processing.

Introducción

En el mundo de hoy, impulsado por los datos, las organizaciones de todas las industrias están lidiando con grandes volúmenes de datos, tuberías complejas y la necesidad de un procesamiento eficiente de los datos. Las soluciones tradicionales de ingeniería de datos, como Apache Airflow, han desempeñado un papel importante en la orquestación y el control de las operaciones de datos para abordar estas dificultades. Sin embargo, con la rápida evolución de la tecnología, ha surgido un nuevo contendiente en la escena, Mage, para remodelar el panorama de la ingeniería de datos.

Objetivos de aprendizaje

  • Integrar y sincronizar datos de terceros sin problemas
  • Construir tuberías en tiempo real y por lotes en Python, SQL y R para la transformación de datos
  • Un código modular que sea reutilizable y testeable con validaciones de datos
  • Ejecutar, monitorear y orquestar varias tuberías mientras duermes
  • Colaborar en la nube, control de versión con Git y probar tuberías sin esperar un entorno de preparación compartido disponible
  • Implementaciones rápidas en proveedores de la nube como AWS, GCP y Azure a través de plantillas de terraform
  • Transformar conjuntos de datos muy grandes directamente en su almacén de datos o mediante integración nativa con Spark
  • Con monitoreo incorporado, alertas y observabilidad a través de una interfaz intuitiva

¿No sería tan fácil como caerse de un tronco? ¡Entonces definitivamente deberías probar Mage!

En este artículo, hablaré sobre las características y funcionalidades de Mage, destacando lo que he aprendido hasta ahora y la primera tubería que he construido usando Mage.

Este artículo se publicó como parte del Data Science Blogathon.

¿Qué es Mage?

Mage es una herramienta moderna de orquestación de datos impulsada por IA y construida en modelos de aprendizaje automático que tiene como objetivo simplificar y optimizar los procesos de ingeniería de datos como nunca antes. Es una herramienta de tuberías de datos de código abierto sin esfuerzo pero efectiva para la transformación e integración de datos y puede ser una alternativa convincente a herramientas bien establecidas como Airflow. Al combinar el poder de la automatización e inteligencia, Mage revoluciona el flujo de trabajo de procesamiento de datos, transformando la forma en que se maneja y procesa la información. Mage se esfuerza por simplificar y optimizar el proceso de ingeniería de datos, a diferencia de cualquier cosa que haya venido antes, con sus capacidades incomparables y su interfaz fácil de usar.

Paso 1: Instalación rápida

Mage se puede instalar utilizando comandos Docker, pip y conda, o se puede alojar en servicios en la nube como una máquina virtual.

Usando Docker

#Línea de comando para instalar Mage usando Docker
>docker run -it -p 6789:6789 -v %cd%:/home/src mageai/mageai /app/run_app.sh mage start [project_name]

#Línea de comando para instalar Mage localmente en un puerto diferente
>docker run -it -p 6790:6789 -v %cd%:/home/src mageai/mageai /app/run_app.sh mage start [project_name]

Usando Pip

#instalación usando comando pip
>pip install mage-ai
>mage start [project_name]

#instalación usando conda
>conda install -c conda-forge mage-ai

También hay paquetes adicionales para instalar Mage usando Spark, Postgres y muchos más. En este ejemplo, he utilizado Google Cloud Compute Engine para acceder a Mage (como VM) a través de SSH. Después de instalar los paquetes de Python necesarios, ejecuté los siguientes comandos:

#Comando para instalar Mage
~$ mage sudo pip3 install mage-ai
#Comando para iniciar el proyecto
~$ mage start nyc_trides_project

Comprobando el puerto 6789...
Mage se está ejecutando en http://localhost:6789 y sirviendo el proyecto /home/srinikitha_sri789/nyc_trides_proj
INFO:mage_ai.server.scheduler_manager:Estado del planificador: en ejecución.

Paso 2: Construir

Mage proporciona varios bloques con código incorporado que tiene casos de prueba, que se pueden personalizar según los requisitos del proyecto.

Usé los bloques Cargador de datos, Transformador de datos y Exportador de datos (ETL) para cargar los datos desde la API, transformar los datos y exportarlos a Google Big Query para su posterior análisis.

Aprendamos cómo funciona cada bloque.

I) Cargador de datos

El bloque “Cargador de datos” sirve como puente entre la fuente de datos y las etapas siguientes del procesamiento de datos dentro del pipeline. El cargador de datos ingiere datos de las fuentes y los transforma en un formato adecuado para ponerlos a disposición del procesamiento posterior.

Funcionalidades clave

  • Conectividad de la fuente de datos : El bloque de Cargador de datos permite la conectividad a una amplia gama de bases de datos, APIs, Sistemas de almacenamiento en la nube (Azure Blob Storage, GBQ, GCS, MySQL, S3, Redshift, Snowflake, Delta Lake, etc.), y otras plataformas de streaming.
  • Comprobación de calidad de datos y manejo de errores : Durante el proceso de carga de datos, realiza comprobaciones de calidad de datos para asegurarse de que los datos sean precisos, consistentes y cumplan con los estándares de validación establecidos. La lógica del pipeline de datos proporcionado se puede utilizar para registrar, señalar o abordar cualquier error o anomalía que se descubra.
  • Gestión de metadatos : El bloque de cargador de datos gestiona y captura los metadatos relacionados con los datos ingestados. La fuente de datos, la marca de tiempo de extracción, el esquema de datos y otros datos se incluyen en estos metadatos. La gestión efectiva de los metadatos facilita la línea de datos, la auditoría y el seguimiento de las transformaciones de datos en todo el pipeline.

La captura de pantalla a continuación muestra la carga de datos en bruto desde la API en Mage utilizando el cargador de datos. Después de ejecutar el código del cargador de datos y pasar con éxito las pruebas, la salida se presenta en una estructura de árbol dentro de la terminal.

Etapa de carga de datos
Bloque de cargador de datos ejecutado

II) Transformación de datos

El bloque “Transformación de datos” realiza manipulaciones en los datos entrantes y deriva conocimientos significativos y los prepara para procesos posteriores. Tiene una opción de código genérico y un archivo independiente que contiene código modular que es reutilizable y testeable con validaciones de datos en plantillas de Python para exploración de datos, reescalado y acciones de columna necesarias, SQL y R.

Funcionalidades clave

  • Combinación de datos : El bloque de transformador de datos facilita la combinación y unión de datos de diferentes fuentes o conjuntos de datos diferentes. Los ingenieros de datos pueden combinar datos basados en cualidades claves similares porque permite una variedad de uniones, incluyendo uniones internas, uniones externas y uniones cruzadas. Esta capacidad es realmente útil cuando se realiza enriquecimiento de datos o la unión de datos de varias fuentes.
  • Funciones personalizadas : Permite definir y aplicar funciones y expresiones personalizadas para manipular los datos. Puede aprovechar funciones incorporadas o escribir funciones definidas por el usuario para transformaciones avanzadas de datos.

Después de cargar los datos, el código de transformación realizará todas las manipulaciones necesarias (en este ejemplo – convirtiendo un archivo plano en tablas de hechos y dimensiones) y transforma el código al exportador de datos. Después de ejecutar el bloque de transformación de datos, se muestra el diagrama de árbol a continuación

Etapa de transformación de datos
Bloque de transformación de datos ejecutado

III) Exportador de datos

El bloque “Exportador de datos” exporta y entrega datos procesados a varios destinos o sistemas para su posterior consumo, análisis o almacenamiento. Asegura una transferencia de datos sin problemas e integración con sistemas externos. Podemos exportar los datos a cualquier almacenamiento utilizando plantillas predeterminadas proporcionadas para Python (API, Azure Blob Storage, GBQ, GCS, MySQL, S3, Redshift, Snowflake, Delta Lake, etc.), SQL y R.

Funcionalidades clave

  • Adaptación del esquema : Permite a los ingenieros adaptar el formato y el esquema de los datos exportados para cumplir con los requisitos del sistema de destino.
  • Procesamiento por lotes y transmisión : El bloque de exportador de datos funciona tanto en modo por lotes como en modo de transmisión. Facilita el procesamiento por lotes exportando datos en intervalos predefinidos o según disparadores específicos. Además, admite la transmisión de datos en tiempo real, lo que permite la transferencia continua y casi instantánea de datos a sistemas posteriores.
  • Cumplimiento : Tiene características como el cifrado, control de acceso y enmascaramiento de datos para proteger información confidencial mientras se exportan los datos.

Después de la transformación de datos, exportamos los datos transformados/procesados a Google BigQuery utilizando Data Exporter para el análisis avanzado. Una vez que se ejecuta el bloque exportador de datos, el diagrama de árbol a continuación ilustra los pasos siguientes.

Exportando Etapa de Datos
Pipeline Ejecutado

Paso 3: Vista previa/ Analítica

La fase de “Vista previa” permite a los ingenieros de datos inspeccionar y obtener una vista previa de los datos procesados o intermedios en un determinado punto del pipeline. Ofrece una oportunidad beneficiosa para verificar la precisión de las transformaciones de datos, juzgar la calidad de los datos y aprender más sobre los datos.

Durante esta fase, cada vez que se ejecuta el código, recibimos comentarios en forma de gráficos, tablas y gráficos. Esta retroalimentación nos permite obtener información valiosa e ideas. Podemos ver los resultados de la salida del código de forma inmediata con una interfaz de bloc de notas interactiva. En el pipeline, cada bloque de código genera datos que podemos versionar, particionar y catalogar para su uso futuro.

Funcionalidades Clave

  • Visualización de Datos
  • Muestreo de Datos
  • Evaluación de Calidad de Datos
  • Validación de Resultados Intermedios
  • Desarrollo Iterativo
  • Depuración y Solución de Problemas
Gráfico 1
Gráfico 2

Paso 4: Lanzamiento

En el pipeline de datos, la fase de “Lanzamiento” representa el último paso en el que desplegamos los datos procesados en producción o en sistemas aguas abajo para un análisis adicional. Esta fase asegura que los datos se dirijan al destino apropiado y se hagan accesibles para los casos de uso previstos.

Funcionalidades Clave

  • Despliegue de Datos
  • Automatización y Programación
  • Monitoreo y Alerta
  • Versionamiento y Reversión
  • Optimización de Rendimiento
  • Manejo de Errores

Puede implementar Mage en AWS, GCP o Azure con solo 2 comandos utilizando plantillas de Terraform mantenidas y puede transformar conjuntos de datos muy grandes directamente en su almacén de datos o mediante integración nativa con Spark y operacionalizar sus pipelines con monitoreo integrado, alertas y observabilidad.

Las capturas de pantalla a continuación muestran las ejecuciones totales de los pipelines y sus estados, como exitoso o fallido, registros de cada bloque y su nivel.

Monitoreo de ejecuciones totales de pipelines
Verificación de ejecuciones exitosas/fallidas
Registros y nivel de cada registro

Además, Mage prioriza la gobernanza y la seguridad de los datos. Proporciona un entorno seguro para las operaciones de ingeniería de datos. Gracias a sofisticados mecanismos de seguridad integrados como cifrado de extremo a extremo, límites de acceso y capacidades de auditoría. La arquitectura de Mage se basa en reglas y mejores prácticas estrictas de protección de datos, protegiendo la integridad y confidencialidad de los datos. Además, puede aplicar casos de uso del mundo real e historias de éxito que destacan el potencial de Mage en una variedad de industrias, incluidas finanzas, comercio electrónico, atención médica y otras.

Diferencias Variadas

MAGE OTROS SOFTWARES
Mage es un motor para ejecutar tuberías de datos que pueden mover y transformar datos. Ese dato puede almacenarse en cualquier lugar (por ejemplo, S3) y usarse para entrenar modelos en Sagemaker. Sagemaker: Sagemaker es un servicio de ML completamente administrado utilizado para entrenar modelos de aprendizaje automático.
Mage es una herramienta de tuberías de datos de código abierto para la integración y transformación de datos (ETL). Fivetran: Fivetran es una empresa de Saas (software como servicio) de código cerrado que ofrece un servicio ETL administrado.
Mage es una herramienta de tuberías de datos de código abierto para la integración y transformación de datos. El enfoque de Mage es proporcionar una experiencia de desarrollador fácil. AirByte: AirByte es una de las principales plataformas de ELT de código abierto que replica los datos de las API, aplicaciones y bases de datos en los lagos de datos, almacenes de datos y otros destinos.

Conclusión

En conclusión, los ingenieros de datos y los expertos analíticos pueden cargar, transformar, exportar, previsualizar e implementar datos de manera eficiente utilizando las características y funcionalidades de cada fase en la herramienta Mage y su eficiente marco para gestionar y procesar datos. Esta capacidad permite la facilitación de la toma de decisiones basadas en datos, la extracción de información valiosa y garantiza la preparación con sistemas de producción o downstream. Se reconoce ampliamente por sus capacidades de vanguardia, escalabilidad y un fuerte enfoque en la gobernanza de datos, lo que lo convierte en un cambio de juego para la ingeniería de datos.

Puntos Clave

  • Mage proporciona una tubería completa para la ingeniería de datos, que incluye la ingestión, transformación, previsualización e implementación de datos. Esta plataforma de extremo a extremo garantiza un procesamiento de datos rápido, una difusión de datos eficaz y una conectividad sin problemas.
  • Los ingenieros de datos de Mage tienen la capacidad de aplicar varias operaciones durante la fase de transformación de datos, lo que garantiza que los datos estén limpios, enriquecidos y preparados para el procesamiento posterior. La etapa de vista previa permite la validación y evaluación de la calidad de los datos procesados, lo que garantiza su precisión y confiabilidad.
  • A lo largo de la tubería de ingeniería de datos, Mage da prioridad a la eficiencia y escalabilidad. Para mejorar el rendimiento, utiliza técnicas de optimización como el procesamiento paralelo, la partición de datos y el almacenamiento en caché.
  • La etapa de lanzamiento de Mage permite la transferencia sin esfuerzo de datos procesados a sistemas downstream o de producción. Tiene herramientas para la automatización, la versión, la resolución de errores y la optimización del rendimiento, lo que proporciona una transmisión de datos confiable y oportuna.

Preguntas Frecuentes

Los medios mostrados en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.