Este repositorio contiene el material oficial del curso Py321, dedicado a la orquestacion de flujos de trabajo con Apache Airflow. El curso introduce los conceptos esenciales de DAGs, arquitectura, configuracion y ejecucion, asi como las herramientas base para operar Airflow localmente. Es un curso autocontenido, pero integra un par de notebooks introductorios para alinear conceptos clave.
| Curso | Descripcion | Repo |
|---|---|---|
| Py101 | Introduccion a la Programacion con Python | PythonistaMX/py101 |
| Py111 | Programacion Orientada a Objetos con Python | PythonistaMX/py111 |
| Py311 | Fundamentos para Ingenieria de Datos | PythonistaMX/py311 |
Adicionalmente, conocimientos basicos de Docker y Linux son recomendados para aprovechar mejor el curso, aunque no estrictamente necesarios gracias al uso de Dev Containers.
| Curso | Descripcion | Estado |
|---|---|---|
| Py311 | Fundamentos para Ingenieria de Datos | ✅ Curso previo |
| Py321 | Orquestacion con Apache Airflow | 📍 Este curso |
| Py331 | Ciclo de vida de datos con Spark y PySpark | 🔜 Proximamente |
| Py341 | Pipelines batch y streaming con Apache Beam | 🔜 Proximamente |
| Py351 | Data Stream: Mensajeria con RabbitMQ y Kafka (Python) | 🔜 Proximamente |
| Py361 | Data Apps Interactivas (Streamlit/Dash) | 🔜 Proximamente |
| Py371 | Buenas practicas de Ingenieria de Datos | 🔜 Proximamente |
Al completar este curso seras capaz de:
- Comprender el rol de Airflow en el ciclo de vida de los datos.
- Modelar flujos de trabajo con DAGs y tareas.
- Ejecutar Airflow en modo standalone para pruebas locales.
- Entender la arquitectura, componentes y configuracion base.
| # | Notebook |
|---|---|
| 01 | Introduccion: contexto de datos |
| 02 | Introduccion: orquestacion y Airflow |
| 03 | Ciclo de vida de datos |
| 04 | Apache Airflow |
| 05 | Configuraciones de Airflow |
| 06 | Componentes de Airflow |
Este repositorio incluye configuracion para Dev Containers. Solo abre el proyecto en VS Code y selecciona "Reopen in Container".
El contenedor incluye:
- Python 3.11
- Apache Airflow 3.1.7
- Provider de SQLite
Si quieres iniciar Airflow al abrir el contenedor, define la variable de entorno:
START_AIRFLOW=true
# Clonar el repositorio
git clone https://github.com/PythonistaMX/py321.git
cd py321
# Crear entorno virtual
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
# Instalar dependencias con constraints
pip install -r requirements.txt --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.1.7/constraints-3.11.txt"
# Iniciar Jupyter
jupyter labPara ejecutar Airflow localmente:
airflow standaloneLa UI estara disponible en http://localhost:8080 y la contrasena del usuario
admin se guarda en ~/airflow/standalone_admin_password.txt.
Este proyecto esta bajo la licencia Creative Commons Atribucion 4.0 Internacional (CC-BY 4.0). Vease el archivo LICENSE para los terminos completos.