Importa datos relacionales en Neo4j utilizando Apache Hop con nuestra guía dedicada de Salida a...
Migra datos a MongoDB con Apache Hop
Descubre cómo transferir tus datos a MongoDB utilizando Apache Hop. Explora un proceso de migración fluido en esta publicación informativa.
Introducción
Para aquellos que no lo conocen, Apache Hop es un proyecto de software de código abierto que te ayuda a preparar y mover datos entre diferentes sistemas de manera fácil y eficiente. Piensa en él como un superhéroe que puede transformar datos desordenados y caóticos en datos ordenados y organizados que pueden ser fácilmente comprendidos y utilizados por otros programas.
Ahora, para aquellos que están familiarizados con Apache Hop, ya saben que es una herramienta versátil que se puede utilizar para realizar una amplia gama de tareas de procesamiento de datos. Con Apache Hop, puedes crear canalizaciones de datos que automatizan el movimiento y la transformación de datos, ahorrándote tiempo y esfuerzo mientras garantizas que tus datos sean precisos y consistentes.
El Desafío: Migrar Datos Relacionales a una Base de Datos MongoDB
Migrar datos a MongoDB puede ser una tarea desafiante, especialmente cuando se trata de grandes cantidades de datos de diferentes fuentes. Uno de los principales desafíos es mapear los datos desde la fuente hacia la base de datos de destino. Esto puede implicar la conversión de tipos de datos, la reestructuración de datos y el manejo de inconsistencias entre los esquemas de origen y destino.
Otro desafío es asegurar que los datos se migren de manera precisa y sin pérdidas. Cualquier error u omisión durante el proceso de migración puede resultar en inconsistencias de datos, lo que lleva a análisis y toma de decisiones incorrectos.
Tener un proceso simplificado para la migración de datos es importante porque puede ahorrar tiempo y reducir el riesgo de errores. También puede garantizar la consistencia y precisión de los datos, lo que lleva a un mejor análisis de datos y toma de decisiones. Un proceso simplificado puede automatizar muchas de las tareas de migración, reduciendo la necesidad de intervención manual y minimizando el riesgo de error humano. Además, un proceso simplificado se puede repetir fácilmente para futuras migraciones, ahorrando tiempo y esfuerzo.
Sí, definitivamente es posible simplificar el proceso de migración de datos a MongoDB utilizando Apache Hop.
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:
-
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.
-
-
Instala MongoDB:
-
Descarga la última versión estable de MongoDB desde el sitio web oficial Descargar MongoDB Community Server Download MongoDB Community Server
-
Sigue la guía de instalación proporcionada para tu sistema operativo específico para instalar MongoDB en tu máquina.
-
-
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.
-
-
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.
-
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.
-
Una vez establecida la conexión, puedes usarla para leer o escribir en MongoDB dentro de Apache Hop.
-
Migración de datos de una base de datos relacional a MongoDB
El modelo de base de datos relacional
Vamos a utilizar una base de datos de ejemplo de PostgreSQL. La base de datos dvdrental representa los procesos comerciales de una tienda de alquiler de DVD, incluidos los datos sobre las películas, los actores y los datos demográficos del personal.
Para mapear la base de datos dvdrental de PostgreSQL a un modelo de MongoDB, puedes seguir estos pasos generales:
-
Analiza el esquema y las relaciones de la base de datos dvdrental para entender las entidades, atributos y relaciones que deben ser modeladas en MongoDB.
-
Diseña un esquema de documento para cada entidad basado en el análisis, considerando los tipos de datos, cardinalidad y relaciones entre entidades.
-
Utiliza una herramienta o escribe un script para migrar los datos de PostgreSQL a MongoDB, transformando los datos para que coincidan con el esquema de documentos de MongoDB.
-
Carga los datos en MongoDB.
Con Apache Hop no necesitas crear manualmente el esquema de MongoDB. Con el transformador "MongoDB output", el esquema se genera automáticamente a partir de los campos de entrada. Esto significa que puedes enfocarte 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 facilita y agiliza la exportación de tus datos desde Apache Hop a MongoDB, permitiéndote 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á el siguiente:
Ejemplo de documento film
Ejemplo de documento film
En este ejemplo, cada tabla en la base de datos dvdrental se mapea a una colección en MongoDB.
La colección film contiene toda la información sobre una película.
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 actuaron.
📓 Ten en cuenta que este es solo un ejemplo de cómo puedes mapear la base de datos dvdrental a un modelo de MongoDB. La estructura específica y los tipos de datos utilizados pueden depender de tus requisitos específicos y caso de uso.
Pero, ¿necesito una colección para la relación entre actor y película?
En MongoDB, existen dos enfoques principales para modelar relaciones entre documentos: documentos incrustados y referencias.
En el caso de la relación entre actores y películas, hay diferentes factores a considerar para decidir qué enfoque tomar:
- Tamaño de las colecciones: Si se espera que las colecciones sean relativamente pequeñas, entonces incrustar los datos de relación dentro de las colecciones de actores y películas podría ser una buena opción. Sin embargo, si se espera que las colecciones sean muy grandes, podría ser mejor tener una colección separada para los datos de relación para evitar un tamaño excesivo de documento y mejorar el rendimiento de las consultas.
- Consistencia de los datos: Si optas por incrustar los datos de relación dentro de las colecciones de actores y películas, debes asegurarte de que los datos sean consistentes y estén actualizados. Por ejemplo, si se actualiza el nombre de un actor, debes asegurarte de que el cambio se refleje en todas las películas en las que apareció. En cambio, si optas por utilizar referencias, los datos de relación se almacenan en una colección separada, y los cambios en las colecciones de actores y películas no afectarán a estos.
- Complejidad de la consulta: Si incrustas los datos de relación dentro de las colecciones de actores y películas, algunas consultas pueden ser más simples y rápidas, ya que puedes recuperar toda la información que necesitas en una sola consulta. Por otro lado, si utilizas referencias, es posible que necesites realizar múltiples consultas y unir los datos para recuperar la información que necesitas.
Paso a paso
Nuestros objetivos son:
- Extraer datos de la base de datos relacional utilizando un transformador "Table input".
- Transformar los datos con los plugins de transformación necesarios.
Por ejemplo, queremos eliminar todos los caracteres de comillas (") del campo special_features {"Deleted Scenes", "Behind the Scenes"}. El transformador "Replace in String" se puede utilizar para lograr esto. - Cargar los datos transformados en MongoDB utilizando el plugin "MongoDB output".
Los datos ahora pueden importarse en la base de datos MongoDB. Utilizando un transformador "Table input", un "Replace in String" y un "MongoDB output", empleamos una canalización de Apache Hop para cargar los datos de películas:
Usando una conexión PostgreSQL y el transformador "Table input", recuperamos los datos de la base de datos dvdrental:
SELECT
f.film_id,
f.title,
f.description,
f.release_year,
f.language_id,
f.rental_duration,
f.rental_rate,
f.length,
f.replacement_cost,
f.rating,
f.last_update AS film_last_update,
f.special_features,
f.fulltext
FROM
public.film f;
La transformación Entrada de tabla (Table input) se configura como sigue:
Utiliza la opción Vista previa (Preview) para ver los datos que se van a exportar. La imagen muestra un fragmento de la vista previa:
¿Próximo paso? Eliminar las comillas del campo special_features.
Ahora podemos proceder con la configuración de la importación de la base de datos MongoDB. Con el transformador "MongoDB output", podemos ingresar fácilmente datos en la base de datos dvdrental.
Agrega y conecta un transformador "MongoDB output". En la primera pestaña, establece un nombre único y descriptivo para tu canalización, y selecciona la conexión MongoDB y la colección. Además, puedes configurar el tamaño de inserción por lotes, seleccionar la opción "Truncate collection" para eliminar los datos actuales, etc.
Agrega y configura un nuevo transformador "MongoDB output" para las otras dos colecciones: film y film_actor. Configúralos eligiendo el nombre de la colección y seleccionando los campos de la colección.
La canalización resultante debería verse como la siguiente imagen:
Ahora la canalización está lista para ser ejecutada. Ejecuta la canalización, verifica las métricas y los registros, y verifica que los datos se hayan importado en tu base de datos MongoDB.
Si tu canalización se ejecuta correctamente, obtendrás la colección de películas que contiene los datos extraídos de la base de datos PostgreSQL.

Puedes configurar otras 2 canalizaciones: una para los datos de actores y otra para los datos de film_actor. Estas canalizaciones pueden incorporarse en un único flujo de trabajo, lo que te permite ejecutar las tres canalizaciones simultáneamente.
El pipeline actor
El pipeline film_actor
El flujo de trabajo main-read
Vamos a explorar la base de datos dvdrental de MongoDB que acabas de cargar.
La base de datos contiene 200 documentos de actores, 1000 documentos de películas y 5462 documentos de actores de películas.
Colección actor
Colección film
Observaciones
- El ejemplo proporcionado es un ejemplo simple que utiliza tres tablas de la base de datos dvdrental para demostrar los pasos básicos involucrados en la migración de datos de una base de datos relacional a MongoDB. Estos pasos pueden ser utilizados para migrar datos desde cualquier base de datos relacional a una implementación de MongoDB. 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 Canalizaciones/Flujos de trabajo.
- La implementación de la migración de datos de una base de datos relacional a MongoDB depende del mapeo entre el modelo relacional y el modelo de MongoDB. Este mapeo define cómo se traducen las tablas, columnas y relaciones de la base de datos relacional en colecciones, documentos y documentos incrustados en MongoDB.
- En el próximo post, cubriremos un ejemplo de cómo utilizar el transformador "MongoDB input" en Apache Hop para extraer datos de una base de datos MongoDB y cargarlos en una base de datos relacional. ¡Así que mantente atento para eso!
Migración de datos desde otras fuentes a MongoDB
¿Tu datos están en otro formato o fuente? ¡No te preocupes, Apache Hop te tiene cubierto! Además de las entradas de bases de datos relacionales, Apache Hop incluye varios plugins de transformación para diferentes formatos de entrada como Excel, CSV, JSON, XML, y muchos otros. También puedes leer datos de diversas fuentes, como FTP, HTTP y servicios REST. Para obtener más información sobre los plugins de entrada/salida de Apache Hop, consulta la Documentación Oficial.
Conclusión
Algunos de los beneficios de usar Apache Hop para la migración de datos a MongoDB son:
- 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.
- Soporte para múltiples fuentes de datos: Apache Hop admite una amplia gama de bases de datos relacionales, lo que permite migrar datos desde varias fuentes a MongoDB.
- Robustez: Apache Hop puede manejar conjuntos de datos grandes y transformaciones de datos complejas.
- Reutilización: 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 a 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?