En el siguiente codigo se encontrará:
- Cómo conectarse a Airflow por medio de Docker.
- Generación de ETL (extracción, transformación y cargue) de datos de un problema de accidentes de la ciudad de Seattle mediante PythonOperators
Para ello es requerido realizar los siguientes pasos:
- Descargar Docker en tu sistema operativo
- Descargar el repositorio en cuestión mediante el siguiente comando en la terminal:
git clone https://github.com/candemas97/airflow_docker_para_ETL.git
- Revisar que se encuentren las tres carpetas necesarias para docker, caso contrario ejecutar en terminal las siguientes sentencias:
Nota:
- Solo ejecutar si no encuentra dichas carpetas
- Codigo que se puede ejecutar en UNIX o WINDOWS
Carpeta | Comando en terminal |
---|---|
dags | mkdir -p ./dags |
logs | mkdir -p ./logs |
plugins | mkdir -p ./plugins |
- Para poder ejecutar el programa se debe correr las siguientes líneas en el terminal de la carpeta asociada:
Nota: Se debe ejecutar en el orden especificado
docker-compose up airflow-init
docker-compose up
- Para ingresar a la aplicación de Airflow donde se encuentra la solución al proyecto se debe colocar la siguiente ruta en el navegador:
localhost:8080
- Posterior a ello nos solicitará un usuario y contraseña:
Usuario: airflow
Contraseña: airflow
- Una vez allí se debe buscar el proyecto titulado ETL
- Activar el ETL
- Presionar en un botón de
Play
y seleccionando la opciónTrigger DAG
- Se ejecutará el proceso e iniciará ejecución el día siguiente en la hora destinada (en este caso diariamente).
Para saber si ha corrido satisfactoriamente su DAG debe observar todo en color verde: >
- Dentro de la carpeta dags se encuentra el archivo my_dag.py, dentro de este archivo se puede encontrar:
- Funciones para generar cada tarea solicitada
- DAG para automatización del proceso y secuencia de ejecución.
- El contenedor de airflow puede ser encontrado ejecutando la sigiente línea en la terminal (en caso dado de querer realizar otro proyecto):
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.6.0/docker-compose.yaml'
En Linux es necesario establecer la siguiente variable para la ejecución, adicionalmente crear carpeta para establecer volúmenes del contenedor.
echo -e "AIRFLOW_UID=$(id -u)" > .env
- Por defecto la línea de terminal mencionada en el paso 2 trae unos ejemplos, si no desea verlos se debe buscar dentro del
docker-compose
la soguiente variable y ponerla comofalse
.
AIRFLOW__CORE__LOAD_EXAMPLES: 'true'