Skip to content

Repositorio para cargar avances y pre entregas del proyecto final

Notifications You must be signed in to change notification settings

Aligehri/Final-Project-Data-Engineer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Consigna

Script que extraiga datos de una API pública y crear la tabla en Redshift para posterior carga de sus datos en una base de datos de Amazon Redshift. Corre en un container de Docker y esta embebido en un DAG de Airflow dentro del container. Airflow está configurado para mandar alertas por correo.

Descripción

Este script de Python se conecta a la API de Spotify para extraer datos de la playlist Epic & Melodic y cargarlos en Amazon Redshift mediante un contenedor de docker que ejecuta el programa en un Dag de Airflow.

Requisitos

  • Credenciales en Spotify Developers

  • Credenciales de Amazon Redshift

  • Cuenta de correo electrónico

Instrucciones

  1. Clona el repositorio o abre un codespace
git clone https://github.com/Aligehri/Final-Proyect-Data-Engineer.git
  1. Crea las carpetas necesarias
   sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d
  1. Crea y agrega credenciales para usar la api de Spotify

Abre tu cuenta de spotify en el siguiente link:

https://developer.spotify.com/

Ve al dashboard y crea una app. Llena los campos necesarios, debería verse así:

Ejemplo

Después ve a los ajustes de tu app y copia el Client Id y el Client Secret que aprece en información básica.

Copialos y pegalos en el archivo Taskfile.yml con los siguientes nombres:

SPOTIPY_CLIENT_ID = ' '
SPOTIPY_CLIENT_SECRET = ' '
  1. Llena tus datos en el archivo Taskfile.yml
        #Redshift Credentials:

        user_rs = ''
        pass_rs =  ''
        host_rs = ''
        port_rs = 5439
        database_rs = ''
        schema = ''
        
        #Email Info:
        EMAIL=
        EMAIL_PASSWORD=
        SMTP_HOST=smtp.gmail.com
        SMTP_STARTTLS=True
        SMTP_SSL=False
        SMTP_USER=
        SMTP_PASSWORD=
        SMTP_PORT=587
        SMTP_MAIL_FROM=

        #Spotify Credentials:
        SPOTIPY_CLIENT_ID = ''
        SPOTIPY_CLIENT_SECRET = ''

En el archivo ya está la plantilla con los datos que necesita.

  1. Ejecuta el siguiente código y espera a que finalice
./bin/task start_project
  1. Abre la interfaz Airflow en el purto 8080

  2. Agrega la conexión a Redshift en la interfaz de Airflowcon los mismos datos que agregaste en el archivo .env

  3. Ejecuta el Dag en la interfaz de Airflow

Opcional

Puedes ejecutar el programa sin Docker y Airflow usando el archivo main.py en la carpeta dags, pero primero tienes que crear el entorno virtual e instalar los requeriments.

cd dags
python main.py

About

Repositorio para cargar avances y pre entregas del proyecto final

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published