Migración Información MySql a MongoDB (NoSQL Anexo 1)

in #spanish5 years ago

En la actualidad MySQL es una base de datos muy común en el diseño de plataformas web, por lo cual si estamos pensando en migrar un sistema existente a uno nuevo realizado con MongoDB es posible que necesitemos traernos toda la información de una fuente existente o una parte de esta.

MongoDb Cuenta para esto con mongoimport una herramienta que nos ayuda, a traernos información desde fuentes JSON,CSV o TSV, si la migración se desea hacer desde una base de datos MongoDB a otra contamos con el comando mongoexport.

Estos comandos son ejecutados directamente desde la consola de comandos (terminal) así que no necesitaremos estar dentro de la mongoshell para realizar este.

La documentación de MongoDB habla extensamente de la importación desde JSON donde traeremos mediante una cadena de importación el contenido:

En esta cadena la información a utilizar es:

--host : Servidor MongoDb al que se trae la información
--port : MongoDB puede trabajar desde varios puerto si no se especifica el utilizara el 27017. Sin embargo, en algunas instalaciones puede cambiar, por lo cual mongoimprt tiene una función para verificar los puertos utilizables en un servidor MongoDB.
--db : La Base de datos donde importaremos la información.
--username, --passwrod : La información para autenticarse en el servidor.
--authenticationDatabase : Especifica en que base de datos se crea el usuario.
--authenticationMechanism :Indica bajo que tipo de mecanismo se realiza la conexión, por defecto mongo utiliza SCRAM-SHA-1

Este método permite realizar gran cantidad de funciones, importaciones remotas y trabajar con múltiples servidores de MongoDB desde una misma consola sin estar trabajando desde el equipo.

Por otro lado existe la importación simple, en este método funciona cuando estamos en trabajando en una consola del servidor y sirve para traer los archivo de forma directa, combinando la información o reemplazándola. Una sintaxis de ejemplo es:

mongoimport -c people -d ejemplo --mode merge --file people-20160927.json.

En nuestro caso usaremos una Importación desde CSV, con una sintaxis como está mongoimport -c people -d ejemplo --mode merge --file people-20160927.json donde -c indica la colección y -d la base de datos a utilizar. En mode merge se coloca el tipo de archivo (type csv en nuestro caso). Finalmente --file antecede a la dirección física del archivo.

Al final se utilizara --fields con el fin asignarle un nombre a cada campo de las colecciones.

Práctica

Estructura y comandos usados en el laboratorio

use condominios
SHOW VARIABLES LIKE "secure_file_priv";
select *  into outfile '/var/lib/mysql-files/ vrecibos001.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' from vrecibodetalle;
 sudo thunar
mongoimport -d laboratorio -c recibos --type csv --file vrecibos001.csv --fields "id,documento,monto,comun,tipoinmueble,inmueble,tipogasto,descripcion,refbase,montocalculado"

Indice del Curso

PostLink
Bases de Datos NoSQL de Código abierto Mongo DB 001Post 001
MongoDB Ingreso de Documentos y Colecciones (NoSQL 002)Post 002
MongoDB actualización y eliminación de documentos (NoSQL 003)Post 003
Búsquedas en MongoDb Parte 01 (NoSQL 004)Post 004

Referencia

Manual MongoDB Link

Miniatura

La imagen de la miniatura fue compuesta con Gimp 2.10 utilizando la siguiente Fuente

Sort:  

Buena.. ! :)





This post has been voted on by the SteemSTEM curation team and voting trail in collaboration with @curie.

If you appreciate the work we are doing then consider voting both projects for witness by selecting stem.witness and curie!

For additional information please join us on the SteemSTEM discord and to get to know the rest of the community!

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.034
BTC 63475.77
ETH 3117.23
USDT 1.00
SBD 3.94