Está en la página 1de 4

Carga de datos en MySQL con csv

Importación de datos de cualquier origen a una instancia de base de datos MySQL o MariaDB
Información recuperada de:

https://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.AnySource.html

https://dev.mysql.com/doc/refman/8.0/en/mysqlimport.html

En el presente informe se documenta la forma recomendada de importar datos a AWS por medio de MySQL
Para importar datos a una instancia de la nube en AWS-RDS, se puede realizar por PyTHON o MySQL. Al realizar la
investigación de qué plataforma es la más optima para realizar este proceso, se encontró en los diferentes foros, y en
la misma plataforma de AWS, las recomendaciones de usar MySQL directamente para poblar la base de datos,
siguiendo 6 pasos importantes como recomendación de AWS.

PASO 1: Crear archivos sin formato con los datos que se


van a cargar.
Utilizar un formato CSV para los datos que se van a importar a la base de datos, para cada tabla es necesario tener
un propio archivo, pues estos no se pueden combinar en un mismo archivo, IMPORTANTE: El nombre del archivo
debe ser igual al nombre de la tabla. Ej: Si la tabla tiene el nombre de “AURA”, el archivo debe llamarse “AURA.csv”
Siempre que sea posible, ordenar los datos según la clave primaria de la tabla que se va a cargar. Esto optimiza los
tiempos que se demore MySQL en cargar los datos a la DB.
La velocidad y la eficiencia de este procedimiento dependen de que el tamaño de los archivos sea pequeño. Si el
tamaño sin comprimir de algún archivo es mayor de 1 GiB, divídalo en varios archivos y cárguelos por separado.

PASO 2: Detener las aplicaciones con acceso a la instancia


de base de datos de destino.
“Antes de iniciar una carga grande, detenga toda la actividad de aplicaciones que acceden a la instancia de base de
datos de destino que prevé cargar. Recomendamos esto en particular si otras sesiones modificarán las tablas que se
cargan o las tablas a las que hacen referencia. Hacer esto reduce el riesgo de violaciones de restricciones que se
producen durante la carga y mejoran el desempeño de carga. También permite restaurar la instancia de base de
datos al estado inmediatamente anterior a la carga sin perder los cambios efectuados por los procesos no implicados
en la carga.”
https://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.AnySource.html

PASO 3: Crear una instancia de base de datos.


Si tiene previsto cargar los datos en una nueva instancia de base de datos que aún está vacía, puede omitir este
paso.

PASO 4: Considerar la desactivación de las copias de


seguridad automatizadas de Amazon RDS.
“La desactivación de las copias de seguridad automatizadas elimina todas las copias de seguridad existentes, por lo
que una vez efectuada no es posible la recuperación a un momento dado. La desactivación de las copias de
seguridad automatizadas supone una optimización del desempeño, pero no es un requisito para las cargas de datos.
Las instantáneas de base de datos manuales no se ven afectadas por la desactivación de las copias de seguridad

Carga de datos en MySQL con csv 1


automatizadas. Todas las instantáneas de base de datos existentes seguirán estando disponibles para su
restauración.”
“La desactivación de las copias de seguridad automatizadas acorta el tiempo de carga aproximadamente en un 25%
y reducirá el espacio de almacenamiento requerido durante la carga. Si prevé cargar los datos en una instancia de
base de datos nueva y aún vacía, desactivar las copias de seguridad es una forma sencilla de acelerar la carga y
evitar usar el espacio adicional que las copias de seguridad requieren. Sin embargo, si prevé cargar es en una
instancia que ya contiene datos, pondere los beneficios de desactivar las copias de seguridad frente al impacto de
perder la capacidad de recuperación a un momento dado.”

Puede usar el comando AWS CLI de la modify-db-instance


para establecer el valor cero como periodo de retención de copia de seguridad y aplicar el cambio inmediatamente.
Al configurar cero como periodo de retención es necesario reiniciar la instancia de base de datos, por lo que debe
esperar a que la operación se complete para poder continuar.

Para comprobar el estado de las instancias de base de datos con el comando AWS CLI de la describe-db-instances .
El ejemplo muestra el estado de instancia de base de datos de la instancia de base de datos AcmeRDS.

aws rds describe-db-instances --db-instance-identifierAcmeRDS --query "*[].{DBInstanceStatus:DBInstanceStatus}"

Cuando el estado de la instancia de base de datos es available , está listo para continuar.

PASO 5: Cargar los datos con mysqlimport.


Use la utilidad mysqlimport para cargar los archivos sin formato en Amazon RDS. En el ejemplo se indica a
mysqlimport que cargue todos los archivos con el nombre "sales" y una extensión que comience por "part_". Se trata
de una forma práctica de cargar todos los archivos creados con "split" en el ejemplo anterior. Utilice la opción --
compress para minimizar el tráfico en la red. La opción --fields-terminated-by=',' se usa para los archivos CSV,
mientras que la opción --local especifica que los datos entrantes se encuentran en el cliente. Sin la opción --local, la
instancia de base de datos de Amazon RDS busca los datos en el host de la base de datos, por lo que debe
especificar siempre --local. Para la opción --host, especifique el punto de conexión de la instancia de base de datos
de la instancia de base de datos de RDS for MySQL.

Carga de datos en MySQL con csv 2


Para la carga de volúmenes de datos muy grandes, obtenga instantáneas de base de datos adicionales entre las
cargas de archivos y anote los archivos que ya se han cargado. Así, si surge un problema, podrá continuar
fácilmente desde el momento de la última instantánea, evitando repetir cargas prolongadas.

MySQL: En la página de MySQL se encuentra los diferentes comandos que se pueden utilizar a la hora del
cargue de Datos.

https://dev.mysql.com/doc/refman/8.0/en/mysqlimport.html

PASO 6: Volver a activar las copias de seguridad


automatizadas.
Una vez terminada la carga, vuelva a activar las copias de seguridad automatizadas de Amazon RDS estableciendo
el periodo de retención de copia de seguridad que había antes de la carga. Como se ha indicado anteriormente,
Amazon RDS reinicia la instancia de base de datos, por lo que debe estar preparado para una breve interrupción del
servicio.

En el ejemplo utilizamos el comando modify-db-instance de la AWS CLI para activar las copias de seguridad
automatizadas de la instancia de base de datos Acme RDS y establecemos como periodo de retención 1 día.

Carga de datos en MySQL con csv 3


Carga de datos en MySQL con csv 4

También podría gustarte