Crear tablas en AWS Redshift

Clase 14 de 25Curso de Fundamentos de ETL con Python y Pentaho

¡Hola nuevamente!

Ya que tienes tu clúster de Redshift y tu bucket de S3 en AWS, es momento de crear las tablas donde depositaremos los datos que transformamos en el ETL.

Por ahora lo que haremos será crear la estructura de las tablas para que en la siguiente clase podamos llevar los datos transformados a archivos CSV que subiremos a S3 y que automáticamente serán cargados como registros en nuestro Redshift.

1. Crea las tablas

Abre una nueva Query Console. Da clic derecho sobre la base de datos dev, luego presiona el botón New y por último el botón Query Console.

workspace – console 3_3_2023 9_44_29 AM.png
Esto abrirá el editor de queries para Redshift.
query_console.png
Descarga este script de SQL donde encontrarás los comandos CREATE para las seis tablas de nuestro target.

El script contiene lo siguiente:

create_1.png
create_2.png

💡Cada comando ha sido creado con base en las necesidades de datos que se insertarán en ellas. Aprenderás a diseñar este tipo de tablas con más detalle en cursos de Datawarehousing y modelamiento OLAP que tomarás más adelante en la ruta de Data Engineer.

Copia y pega el contenido del script de SQL en el Query Console.

query_script.png
Ejecuta el query. Al terminar su ejecución haz refresh a la base de datos, ve al schema public y verás las tablas agregadas.
tables_created.png

⚠️Es normal que veas otras tablas que no creaste. Son las que se crean por defecto para la prueba gratis de Redshift. No hace falta que las borres.

2. Configura las variables de entorno en tu OS

Antes de continuar es muy importante que guardes como variables de tu entorno de trabajo los datos de acceso a tu cuenta de AWS y clúster de Redshift.

⚠️Esto se hace por seguridad para que los datos de acceso no queden expuestos en el código y que puedan ser obtenidos por personas que no deberían tenerlas.

Para ello ve a la consola de AWS y selecciona en la parte superior derecha tu nombre de usuario. Esto despliega un menú. Da clic en el botón Credenciales de seguridad.

AWS Management Console — Mozilla Firefox 3_3_2023 10_15_44 AM.png
Baja hasta la sección Claves de acceso y da clic en el botón Crear clave de acceso.
clave_acceso_aws.png
Marca el check y da clic sobre el botón naranja Crear clave de acceso.
clave_iam.png
Esto generará una clave de acceso y una clave de acceso secreta con la que te podrás conectar a tu cuenta de AWS desde la notebook de Python. Cópialas y guárdalas en un lugar seguro. También puedes descargar el archivo CSV.

Una vez guardadas las claves da clic en el botón naranja Listo.

CLAVES.png
Ya que tienes estas claves de acceso IAM y las credenciales del clúster de Redshift, crea las siguientes variables de entorno dentro de tu entorno de desarrollo en tu sistema operativo, ya sea que uses WSL, Linux o macOS:
  • aws_access_key_id: es la clave de acceso IAM de AWS.
  • aws_secret_access_key: es la clave de acceso secreta IAM de AWS.
  • host: la dirección del clúster de Redshift. Es la url del punto de enlace que copiaste eliminando la parte final ":5439/dev". Tendrá una forma como server.redshift.amazonaws.com
  • database: dev
  • user: demoplatzi
  • password: la que le hayas puesto a tu clúster de AWS Redshift cuando lo creaste.

Si no recuerdas cómo crear variables de entorno, te sugiero vuelvas a ver esta clase del Curso de Introducción a la Terminal y Línea de Comandos.

¡Listo, ya tienes las variables de entorno creadas! Las usarás en la próxima clase para conectarte de Python a tu bucket de S3 y tu clúster de AWS.

⚠️Recuerda que la notebook que estés usando debe estar corriendo desde el entorno del sistema operativo donde configuraste las variables de entorno, de lo contrario no funcionará tu código porque no encontrará esas variables que se accederán con os.environ.get('nombre_variable_entorno).


¡Sigue avanzando con el curso! En la próxima clase comenzarás a cargar datos en tu clúster de Redshift. ⚙️🚀