Amazon RDS – Guía paso a paso
Cree, conecte e interactúe con una base de datos remota de PostgreSQL utilizando Amazon RDS y Python
Este artículo aquí le guiará sobre cómo crear una instancia de base de datos utilizando Servicio de base de datos relacional de Amazon y cómo interactuar con un servidor de base de datos remoto usando solo Python.
Paso 1: Lanzamiento Su instancia de la base de datos de AWS
Primero, necesitamos una cuenta en AWS. Vamos a un AWS portal para crear una nueva cuenta, o puede usar una cuenta de AWS existente.
¿Qué es Amazon RDS?
El Servicio de base de datos relacional (RDS) de Amazon forma parte central para configurar una base de datos relacional en la nube. Cada base de datos en la nube que proveemos se llama instancia de base de datos. Entonces, primero, haga clic en Servicios y seleccione Base de datos para navegar al Panel de RDS:
A continuación, para crear una nueva base de datos, haga clic en “ Crear databas e”. Las instancias de la base de datos son flexibles y las configura para satisfacer sus necesidades. Puede configurar su base de datos con una variedad de tipos de motores, incluidos Amazon Aurora, MySQL, PostgreSQL y otros. Más allá de los tipos de motores, también puede configurar el tipo y el tamaño de la instancia de la base de datos, asignar almacenamiento y configurar diferentes configuraciones como monitoreo, copias de seguridad y muchos otros.
Ahora, estamos seleccionando un motor PostgreSQL en el que ejecutar la db. En este post, usamos una plantilla de nivel libre . Con un trier gratuito, obtenemos una pequeña instancia db.t2.micro con 1 CPU y 1GiB de memoria.
A continuación, en la sección Configuración, especifique la información de la instancia de la base de datos: nombre de la instancia y las credenciales del usuario principal para iniciar sesión en su instancia. También puede especificar un puerto que desee utilizar para acceder a la base de datos. Para las instalaciones de PostgreSQL, el puerto predeterminado es 5432.
Si desea dar a su instancia de base de datos una dirección IP pública (para que los dispositivos que se encuentran fuera de la VPC puedan conectarse a su base de datos) elija Sí para Público accesible dentro de la sección Conectividad . Elijo Sí para que mi base de datos esté disponible en mi máquina local.
Debe pasar a la sección Configuración adicional y especificar el nombre de la base de datos que crea Amazon RDS cuando crea el instancia de base de datos Para este tutorial, voy a crear una base de datos con un nombre titanic .
Recuerde: un nombre de base de datos y un nombre de instancia de base de datos son dos nombres diferentes. Si NO especifica un nombre de base de datos, Amazon RDS NO crea una base de datos cuando crea la instancia de la base de datos.
Finalmente, haga clic en Crear base de datos . Puede tardar unos minutos para iniciar la base de datos. La nueva instancia de la base de datos aparece en la consola de Amazon RDS. Puede conectarse a la instancia una vez que su estado cambie a disponible.
Paso 2: conectarse a la base de datos PostgreSQL
Una vez que se crea la base de datos, podemos interactuar con eso. Aquí, nos conectamos a nuestra base de datos desde el cuaderno Jupyter usando el paquete Python psycopg2 :
https://medium.com/media/430c12cab1b9beb4ed2380c1c55acbc3/href
Nota, no es necesario que instale Postgres en nuestra máquina local. Solo necesita instalar un paquete psycopg2, escribiendo dentro de su terminal: pip install psycopg2
En la segunda línea, abrimos una conexión a Postgres usando el método connect (). Pasamos cinco parámetros en el psycopg2.
Primero está el host que especifica dónde se ejecuta su base de datos. En nuestro caso, se trata de un RDB remoto, y la url del host es el Valor de punto final de la consola de Amazon RDS (consulte la captura de pantalla a continuación).
A continuación, pasamos el nombre de usuario y la contraseña (líneas 5,6). Puede comenzar usando las credenciales de usuario maestro que creó anteriormente. Más adelante, agregaremos un nuevo usuario como una forma de mejorar la seguridad y la división de datos.
Finalmente, pasamos el nombre de la base de datos ( que es diferente con el nombre de la instancia de la base de datos! ). Nombre de la base de datos Le pedí que ingresara en Configuración adicional y en mi caso era titanic.
Por último, pero no menos importante, necesitamos para crear un objeto cursor (línea 9) para interactuar y ejecutar los comandos en la base de datos de Postgres.
Paso 3: interactuar con la base de datos de Python
3.1. Conjunto de datos
Una vez que nos conectamos a nuestra base de datos, es hora de agregar algunos datos. Para este tutorial, tomé el conjunto de datos titánico de Kaggle (train.csv). Después de un poco de preprocesamiento, dividí el archivo en tres archivos CSV: pasajeros.csv tripInfo.csv y survival.csv. El enlace a mi repositorio con el conjunto de datos procesado y el cuaderno se encuentra al final del artículo.
3.2. Creación de tablas
Bueno, ahora voy a copiar datos de los archivos CSV en la base de datos, pero primero, necesito crear tres tablas que se ajusten a mi conjunto de datos. Para este propósito, podemos usar el comando CREAR TABLA, pero preste atención, las columnas deben estar en el mismo orden que en los archivos CSV con sus respectivos tipos.
https://medium.com/media/59e1870e794b9025862fbea869dabace/href
3.3. Cargando datos en una tabla de Postgres desde CSV
Una vez que tengamos nuestras tablas, queremos copiar datos de archivos CSV. Afortunadamente, es muy simple con psycopg2 usando el método copy_from () :
https://medium.com/media/5f3f98ab67b214d34fd29e93480768ec/href
Podemos nosotros un nuevo usuario y otorgue privilegios para administrar nuestra base de datos:
https://medium.com/media/506d6c05d6b294b49f5078b46212e408/href
3.4. Ejecutar consultas
Ahora, nuestra base de datos remota está lista y podemos comenzar a buscar algunos datos de las tablas de nuestra base de datos usando Python pandas.read_sql (). Digamos que estamos interesados en obtener la tasa de supervivencia para cada clase de pasajero. A continuación se muestra una consulta SQL simple con INNER JOIN para hacer eso:
https://medium.com/media/4ad73b872d6ec540135a63663cf9e12b/href
Es muy conveniente usar pandas para ejecutar SQL SQL Server, porque lee la consulta SQL en una Marco de datos:
Eliminar la instancia de la base de datos
Últimas notas. Es una buena práctica eliminar las instancias de la base de datos de AWS que ya no está utilizando. De lo contrario, se le cobrará por ellos. Por lo tanto, debe volver a la consola de AWS RDS, seleccionar su instancia y hacer clic en Eliminar.
Mi repo con el conjunto de datos procesado y el cuaderno esta aquí .