Saltar al contenido

Exporta datos desde MongoDB con Apache Hop

Exporta tus datos de MongoDB con Apache Hop. Simplifica tu proceso de exportación de datos y mejora la eficiencia. Aprende más en este post informativo.

Introducción

En este post, exploraremos cómo Apache Hop puede utilizarse para exportar datos de bases de datos MongoDB de manera eficiente. Ya sea que necesites migrar datos de MongoDB a otro sistema, realizar copias de seguridad de datos o integrar datos de MongoDB con otras fuentes de datos, Apache Hop ofrece una solución simplificada. Con su amplia gama de plugins y su intuitiva interfaz gráfica de usuario, Apache Hop permite a los profesionales de datos extraer sin esfuerzo datos de MongoDB y transformarlos en el formato deseado.

MongoDB and Apache Hop

 

¿Por qué exportar datos de MongoDB con Apache Hop?

  1. Extracción de datos simplificada: Apache Hop proporciona una interfaz de usuario amigable que permite a los usuarios definir y ejecutar procesos de extracción de colecciones MongoDB sin programación compleja. El plugin de entrada de MongoDB dentro de Apache Hop simplifica el proceso de extracción de datos, permitiendo a los usuarios recuperar datos de colecciones específicas, aplicar filtros y manejar eficientemente grandes conjuntos de datos.
  2. Transformación flexible de datos: Después de extraer datos de MongoDB, el rico conjunto de plugins de transformación de Apache Hop ofrece una multitud de opciones de manipulación de datos. Los usuarios pueden limpiar, filtrar, agregar o remodelar fácilmente los datos para cumplir con sus requisitos específicos. La interfaz gráfica de Apache Hop permite a los usuarios configurar visualmente las transformaciones y previsualizar la salida, garantizando la precisión e integridad de los datos.
  3. Integración con diversos destinos de datos: Apache Hop soporta una amplia gama de formatos y destinos de salida, lo que facilita exportar datos de MongoDB a otras bases de datos, formatos de archivo o sistemas de almacenamiento en la nube. Ya sea que necesites exportar los datos a una base de datos relacional, generar archivos CSV o Excel, o cargarlos en servicios en la nube como Amazon S3 o Google Cloud Storage, Apache Hop proporciona los plugins necesarios para facilitar el proceso de exportación de datos.
  4. Escalabilidad y rendimiento: Apache Hop está diseñado para manejar grandes conjuntos de datos de manera eficiente. Utiliza la ejecución paralela y técnicas optimizadas de procesamiento de datos, lo que permite una exportación rápida y escalable de datos de MongoDB. Esto asegura que incluso al tratar con vastas cantidades de datos, Apache Hop mantenga un rendimiento óptimo y minimice el tiempo de procesamiento.
  5. Automatización y reproducibilidad: Apache Hop permite a los usuarios diseñar canalizaciones de datos reutilizables, automatizando el proceso de exportación y garantizando la reproducibilidad. Una vez creada una canalización, puede programarse para que se ejecute en intervalos específicos o sea activada por eventos externos. Esta automatización ahorra tiempo, reduce el riesgo de errores y garantiza exportaciones de datos consistentes y actualizadas.

En las secciones siguientes, nos adentraremos en los aspectos prácticos de la exportación de datos desde MongoDB utilizando Apache Hop. Exploraremos el proceso de configuración, examinaremos el plugin de salida de MongoDB y te guiaremos a través de los pasos necesarios para extraer y exportar datos de colecciones MongoDB. Al final de esta guía, tendrás el conocimiento y las herramientas para exportar datos de MongoDB de manera efectiva, permitiendo una integración y análisis sin problemas en tu ecosistema de datos.

¡Así que empecemos en este viaje de exportación de datos desde MongoDB utilizando el poder de Apache Hop!


El Desafío: Exportar Datos de MongoDB a una Base de Datos Relacional

Exportar datos de MongoDB puede ser una tarea compleja, especialmente cuando se trata de conjuntos de datos diversos y la necesidad de garantizar la integridad de los datos. Uno de los principales desafíos en este proceso es extraer eficientemente datos de MongoDB y transformarlos en un formato adecuado para un análisis posterior o una migración a otra base de datos.

Con Apache Hop, puedes definir fácilmente los criterios de selección de datos deseados, aplicar transformaciones necesarias y exportar los datos en un formato estructurado de tu elección. Ya sea que estés migrando datos a otra base de datos, realizando análisis de datos o creando copias de seguridad, Apache Hop puede simplificar y automatizar el proceso, haciéndolo más rápido y confiable.

Comprendiendo MongoDB y Apache Hop

MongoDB y su modelo de datos

MongoDB es una popular base de datos NoSQL orientada a documentos que está diseñada para almacenar y gestionar datos no estructurados y semi-estructurados. El modelo de datos de MongoDB se basa en un formato de documento flexible llamado BSON (Binary JSON), que permite estructuras de esquema dinámicas y estructuras de datos anidadas.

En MongoDB, un documento es una unidad de datos que consiste en un conjunto de pares clave-valor. Cada documento se almacena en una colección, que es similar a una tabla en un sistema de base de datos relacional tradicional. A diferencia de las tablas, las colecciones de MongoDB no imponen un esquema fijo, lo que significa que los documentos dentro de una colección pueden tener estructuras y campos diferentes.

Plugins de Apache Hop para MongoDB

Apache Hop ofrece una amplia gama de plugins que facilitan la integración de datos. Entre estos plugins se encuentran los plugins de entrada y salida de MongoDB, que están diseñados para agilizar el proceso de lectura y escritura de datos en bases de datos MongoDB.

Con el plugin de entrada de MongoDB, los usuarios pueden extraer fácilmente datos de colecciones de MongoDB, mientras que el plugin de salida de MongoDB proporciona una forma sencilla de cargar datos en colecciones de MongoDB.

Configuración del entorno

Aquí están los pasos para configurar el entorno para usar Apache Hop con MongoDB:

  1. Instala Apache Hop:

    • Descarga la última versión estable de Apache Hop desde el sitio web oficial https://hop.apache.org/download.html

    • Extrae el archivo descargado en un directorio de tu elección.

    • Apache Hop no requiere instalación, simplemente ejecuta el script hop-ui ubicado en el directorio bin para iniciar la aplicación.

  2. Instala MongoDB:

    • Descarga la última versión estable de MongoDB desde el sitio web oficial Descargar MongoDB Community Server

    • Sigue la guía de instalación proporcionada para tu sistema operativo específico para instalar MongoDB en tu máquina.

  3. Instala un cliente de MongoDB:

    • Hay muchos clientes de MongoDB disponibles para elegir, como Compass, Studio 3T, Robo 3T y más.

    • Elige un cliente de MongoDB de tu elección y sigue la guía de instalación proporcionada para tu sistema operativo específico para instalarlo en tu máquina.

  4. Crear una conexión de MongoDB en Apache Hop:

    • Abre Apache Hop y navega hasta la perspectiva de Metadata -> New -> MongoDB Connection O selecciona New -> MongoDB Connection.

       
    • En la ventana Nueva conexión de MongoDB (New MongoDB Connection), especifica un nombre para la conexión y proporciona los detalles de conexión necesarios, como el nombre del servidor, el puerto, los detalles de autenticación y más, según la configuración específica de MongoDB. Usa un archivo de configuración para tu entorno con las variables de conexión.
       
      Apache Hop - MongoDB Connection
    • Prueba la conexión haciendo clic en el botón de Test para asegurarte de que Apache Hop pueda conectarse a tu instancia de MongoDB.

      Apache Hop - Test Connection
    • Una vez establecida la conexión, puedes usarla para leer o escribir en MongoDB dentro de Apache Hop.

Migración de Datos de MongoDB a una Base de Datos Relacional

La base de datos MongoDB

Vamos a utilizar una base de datos MongoDB creada en el post anterior basada en la base de datos dvdrental.

La base de datos MongoDB actual incluye las siguientes colecciones:

Apache Hop - MongoDB dvdrental schema

 

Mapea el modelo de MongoDB a PostgreSQL

Para mapear la base de datos dvdrental de MongoDB a un modelo PostgreSQL, puedes seguir estos pasos generales:

  1. Analiza las colecciones y relaciones de MongoDB para comprender las entidades, atributos y relaciones que necesitan ser modeladas en PostgreSQL.
  2. Diseña un esquema relacional para cada entidad basado en el análisis, considerando los tipos de datos, la cardinalidad y las relaciones entre colecciones.
  3. Utiliza una herramienta o escribe un script para migrar los datos de MongoDB a PostgreSQL, transformando los datos para que coincidan con el esquema relacional de PostgreSQL.
  4. Carga los datos en PostgreSQL.

Con Apache Hop, no necesitas crear manualmente las tablas de PostgreSQL. Con el transformador "Tabla de salida", el esquema se genera automáticamente a partir de los campos de entrada. Esto significa que puedes concentrarte en diseñar tus procesos ETL y mapear tus datos, en lugar de dedicar tiempo a configurar el esquema de la base de datos. Esta automatización hace que sea más fácil y rápido exportar tus datos de MongoDB a una base de datos relacional, lo que te permite realizar tus tareas de análisis y visualización de datos de manera más rápida y eficiente.

Para nuestro ejemplo, utilizaremos las tablas actor, film y film_actor. El mapeo sería el siguiente:


dvdrental databse schema fragment

En este ejemplo, cada colección en la base de datos MongoDB dvdrental se mapea a una tabla en PostgreSQL. La colección film contiene toda la información sobre una película.

Screenshot 2024-02-29 at 11.09.41

La colección actor contiene información sobre cada actor, y la colección film_actor es una colección de unión que conecta a los actores con las películas en las que participaron.

Paso a Paso

Nuestros objetivos son:

  1. Extraer datos de la base de datos MongoDB utilizando un transformador "MongoDB input".
  2. Cargar los datos en PostgreSQL utilizando un transformador "Tabla output".

Los datos pueden ser importados ahora en la base de datos PostgreSQL. Utilizando un "MongoDB input" y un transformador "Tabla output", empleamos una canalización de Apache Hop:

Usando una conexión de MongoDB y el transformador "MongoDB input", recupera los datos de la base de datos MongoDB. El transformador "MongoDB input" se configura de la siguiente manera:


Pestaña Input options

Apache Hop - MongoDB input

Selecciona la conexión y la colección.

Pestaña Query

Apache Hop - MongoDB input

 

Añade tu consulta

Pestaña Fields

Apache Hop - MongoDB input

 

Desmarca la opción "Salida de un solo campo JSON" para habilitar el botón "Obtener campos", de modo que puedas utilizarlo para obtener todos los campos por separado.

Elimina el campo "_id" porque no lo usaremos. Utilizaremos "film_id" como la clave primaria.

Apache Hop - MongoDB input

Utiliza la opción "Vista previa" para ver los datos que se exportarán:

Apache Hop - Preview data

 

¿Siguiente paso? Cargar los datos en PostgreSQL utilizando el transformador "Tabla output".

¿Cómo? Añade y conecta un transformador "Tabla output".

Apache Hop - Table output
  • Selecciona la conexión.

  • Especifica el esquema y añade el nombre de la tabla. Ten en cuenta que en este caso, estamos utilizando una base de datos vacía. Añadiremos las tablas y columnas desde Apache Hop.

  • Utiliza la opción SQL para ejecutar la instrucción SQL para crear la tabla de películas. Puedes añadir la restricción de clave primaria para la columna film_id.

    Apache Hop - Table output

     

  • Ejecuta la instrucción SQL y comprueba la creación de la tabla:

    Apache Hop - film table
  • Haz clic en Aceptar y guarda la configuración.

    Apache Hop - Table output

Adicionalmente, puedes establecer el tamaño de confirmación, seleccionar la opción "Truncar tabla" para eliminar los datos actuales, etc.

La canalización resultante debería lucir como la siguiente imagen:

Apache Hop - MongoDB read pipeline

Ahora la canalización está lista para ser ejecutada. Ejecuta la canalización, verifica las métricas y registros, y asegúrate de que los datos se hayan importado en tu base de datos PostgreSQL.

Si tu canalización se ejecuta con éxito, obtendrás las tres tablas que contienen los datos extraídos de la base de datos PostgreSQL.

Apache Hop - Logs

📔 Puedes configurar otras 2 canalizaciones: una para los datos de los actores y otra para los datos de film_actor. Estas canalizaciones pueden ser incorporadas en un único flujo de trabajo, lo que te permite ejecutar las tres canalizaciones simultáneamente.

El pipeline actor

Apache Hop - MongoDB read pipeline

El pipeline film_actor

Apache Hop - MongoDB read pipeline

El pipeline main-read

Apache Hop - MongoDB read workflow

 

La base de datos PostgreSQL dvdrental

Exploremos la base de datos PostgreSQL que acabas de cargar.

La base de datos contiene 200 filas actor, 1000 filas film y 5462 filas film_actor.

Tabla film

film table

 

Tabla actor
 
actor table

Tablafilm_actor table

film_actor table

 

Observaciones
  1. En nuestro post anterior, demostramos el uso del transformador "MongoDB output" en Apache Hop para extraer datos de una base de datos PostgreSQL e insertarlos en una base de datos MongoDB. En este post, aprovecharemos la colección poblada en MongoDB para extraer datos e insertarlos en la base de datos PostgreSQL.
  2. El ejemplo proporcionado es un ejemplo simple que utiliza tres colecciones de la base de datos dvdrental para demostrar los pasos básicos involucrados. Estos pasos pueden ser utilizados para migrar datos de MongoDB a cualquier implementación de base de datos relacional. Sin embargo, dependiendo de la complejidad o tamaño de los modelos de datos, los usuarios pueden requerir una implementación diferente utilizando Inyección de Metadatos y/o Ejecución de Canal/Pipeline.
  3. La implementación de la migración de datos desde una base de datos MongoDB a una base de datos relacional depende del mapeo entre el modelo de MongoDB y el modelo relacional. Este mapeo define cómo las colecciones, documentos y documentos incrustados en MongoDB se traducen en tablas, columnas y relaciones en la base de datos relacional.

Conclusión

Algunos de los beneficios de usar Apache Hop para la migración de datos desde MongoDB son:

  1. Facilidad de uso: Apache Hop ofrece una interfaz gráfica de usuario intuitiva que simplifica el proceso de migración y elimina la necesidad de programación compleja.
  2. Soporte para múltiples fuentes de datos: Apache Hop soporta una amplia gama de bases de datos relacionales, lo que permite migrar datos desde MongoDB a diversas fuentes.
  3. Robustez: Apache Hop puede manejar grandes conjuntos de datos y transformaciones de datos complejas.
  4. Reusabilidad: Los flujos de trabajo y canalizaciones creados en Apache Hop pueden ser fácilmente reutilizados para futuras migraciones de datos o proyectos de integración de datos.

Desde Datavin3, te animamos a probar Apache Hop para sus propias necesidades de migración de datos. Con su interfaz de usuario amigable, y soporte para una amplia gama de fuentes y destinos de datos, Apache Hop facilita la migración de datos desde MongoDB y otras plataformas.

Apache Hop puede ayudar a agilizar tu proceso de migración de datos y garantizar la precisión y la integridad de tus datos. Entonces, ¿por qué no probarlo y ver cómo puede beneficiar a tu organización?