Saltar al contenido
Introducción a Apache Airflow

Instalación y configuración de Apache Airflow.

Introducción

Apache Airflow es una plataforma de código abierto que se utiliza para programar, programar y monitorear flujos de trabajo. Es una herramienta muy útil para gestionar tareas complejas de procesamiento de datos y automatización de procesos.

Antes de empezar a usar Airflow, es importante que realices la instalación y configuración de algunos elementos clave:

  1. Instalación de Python:

    • Primero, debes instalar Python en tu sistema y asegurarte de que todas las dependencias necesarias estén instaladas.
  2. Instalación de Airflow:

    • Luego, debes instalar Airflow utilizando el administrador de paquetes pip.
  3. Configuración de variables de entorno:

    • A continuación, debes configurar variables de entorno como la ruta a la base de datos y la ubicación del archivo de configuración.
  4. Configuración del backend de Airflow:

    • Una vez completado esto, debes configurar el backend de Airflow para que funcione correctamente. Puedes elegir entre varios backends de base de datos, como SQLite, Postgres y MySQL.
  5. Configuración de componentes de Airflow:

    • Finalmente, debes configurar los componentes de Airflow como los sensores, los operadores y las conexiones a la base de datos, para que se ajusten a tus necesidades.

Configurar Apache Airflow puede ser un proceso complejo, pero es extremadamente útil una vez que está configurado correctamente. Con la configuración correcta, puedes automatizar flujos de trabajo y tareas de manera efectiva, lo que puede ser una gran ventaja para mejorar la eficiencia en el procesamiento de datos y la automatización de procesos.

Resumen

Para instalar y configurar Apache Airflow, sigue estos pasos:

  1. Verifica que tengas Python y pip instalados en tu computadora:
    • En Windows, abre el símbolo del sistema y escribe python --version y pip --version para verificar que estén instalados.
    • En Mac o Linux, abre la terminal y escribe which python y which pip para verificar que estén instalados.
  2. Instala Apache Airflow con pip:
    • Abre tu terminal y escribe pip install apache-airflow.
  3. Inicializa la base de datos de Airflow:
    • Escribe airflow initdb en la terminal para crear la base de datos de Airflow.
  4. Configura tus variables de entorno:
    • Crea un archivo llamado .bash_profile en tu directorio de inicio (ej: /Users/tu-usuario) y escribe export AIRFLOW_HOME=~/airflow en él.
    • Guarda el archivo y cierra la terminal (o escribe source ~/.bash_profile en la terminal para refrescar las variables).
  5. Configura tus conexiones y variables en Airflow:
    • Abre el archivo airflow.cfg en la carpeta ~/airflow.
    • Configura las conexiones de tu base de datos (ej: sql_alchemy_conn = mysql://user:password@localhost:3306/airflow).
    • Configura tus variables (ej: var1=valor1).
  6. Corre el servidor web de Airflow:
    • Escribe airflow webserver -p 8080 para iniciar el servidor web de Airflow en el puerto 8080.
  7. Corre el scheduler de Airflow:
    • En una nueva terminal, escribe airflow scheduler para hacer que el scheduler de Airflow corra en segundo plano.
  8. Accede a la interfaz web de Airflow:
    • Abre tu navegador y escribe localhost:8080.
    • Accede con tus credenciales (por defecto, usuario es admin y contraseña admin).

¡Listo! Ahora puedes comenzar a crear tus DAGs (grafos acíclicos dirigidos) y tareas en Airflow.

Aplicación teórica

Los pasos básicos para la instalación y configuración de Apache Airflow:

  1. Instalar Python:

    Antes que nada, debes asegurarte de tener Python instalado en tu computadora. Puedes verificar si ya lo tienes instalado abriendo la terminal (en Unix/Linux/Mac) o el Símbolo del sistema (en Windows) y escribiendo el siguiente comando:

    python --version

    Si obtenemos una respuesta con la versión de Python, podemos pasar al siguiente paso. Si no lo tenemos instalado, podemos descargar la última versión de Python para nuestro sistema operativo en la página oficial: https://www.python.org/downloads/

  2. Instalar Apache Airflow:

    Para instalar Apache Airflow, podemos hacerlo a través del paquete pip, que es el gestor de paquetes para Python. Para ello, abrimos la terminal o Símbolo del sistema y escribimos el siguiente comando:

    pip install apache-airflow
  3. Configurar Airflow Home:

    Antes de continuar, es necesario definir la ubicación de la carpeta raíz de nuestra instancia de Apache Airflow. Este directorio se conoce como $AIRFLOW_HOME. La forma de hacer esto es mediante una variable de entorno. Esto puede variar según el sistema operativo, pero en Unix/Linux/Mac podemos hacer lo siguiente:

    • Si queremos definir una ruta personalizada, podemos hacerlo mediante el siguiente comando:
      export AIRFLOW_HOME=/ruta/personalizada
      Ejemplo:
      export AIRFLOW_HOME=/Users/miusuario/airflow
    • Si deseamos tener la carpeta en el directorio raíz del usuario, escribimos este comando:
      export AIRFLOW_HOME=~/airflow
  4. Iniciar base de datos:

    Apache Airflow utiliza una base de datos para almacenar los metadatos de nuestros DAGs (Direct Acyclic Graphs) y otras configuraciones. En esta ocasión, vamos a utilizar SQLite por su simplicidad, pero si deseamos usar otras bases de datos, hay que modificar nuestra configuración. Para inicializar la base de datos, escribimos el siguiente comando en la terminal ubicados en el directorio de la instancia de Airflow:

    airflow db init

    Para actualizar la base de datos con nuevas tablas, podemos utilizar el siguiente comando:

    airflow db upgrade
  5. Configurar conexiones:

    Apache Airflow permite conectar con diferentes sistemas externos para importar o exportar datos. Debemos configurar las conexiones en Airflow antes de poder usarlas. Para hacerlo, navegamos a la pestaña de "Connections" en la interfaz de usuario y hacemos clic en "Create". Allí, definimos los detalles de la conexión.

  6. Configurar variables:

    Las variables son pares clave-valor que se pueden utilizar para almacenar información dinámica en Airflow, como contraseñas, rutas de archivos, etc. Para hacerlo, navegamos a la pestaña de "Variables" en la interfaz de usuario y hacemos clic en "Create". Allí, definimos los detalles de la variable.

Con esto, deberíamos tener nuestro entorno de Apache Airflow configurado y listo para crear y manejar DAGs.

Aplicación práctica

Un ejemplo práctico de instalación y configuración de Apache Airflow en Python:

  1. Instala Apache Airflow: lo primero que debes hacer es instalar Apache Airflow en tu sistema. Puedes hacerlo utilizando pip, el instalador de paquetes de Python, así:
    pip install apache-airflow
  2. Configura el entorno: después de instalar Apache Airflow, es necesario configurar el entorno en el que se ejecutará. Para ello, debes crear un archivo airflow.cfg en el directorio de configuración de Airflow (/usr/local/airflow o ~/.config/airflow). Este archivo debe tener las siguientes opciones:
    [core]
    # Fijar la carpeta de Airflow
    airflow_home = /usr/local/airflow
    
    [dag]
    # Fijar la carpeta de almacenamiento de DAG
    dag_dir_list = /usr/local/airflow/dags
    
    [webserver]
    # Fijar la carpeta de almacenamiento de logs
    access_logfile = /usr/local/airflow/logs/access.log
    error_logfile = /usr/local/airflow/logs/error.log
    
    [email]
    # Configurar la dirección de email del remitente
    email_backend = airflow.utils.email.send_email_smtp
    
    [smtp]
    # Configurar el servidor SMTP
    smtp_host = localhost
    smtp_starttls = True
    smtp_ssl = False
                
  3. Inicializa la base de datos: Airflow utiliza una base de datos para almacenar información sobre tareas, DAGs y ejecuciones. Para inicializar la base de datos, utiliza el siguiente comando:
    airflow db init
  4. Inicia el scheduler y el webserver: una vez que has configurado Airflow y has inicializado la base de datos, estás listo para comenzar a utilizarlo. Para iniciar el scheduler y el webserver, utiliza los siguientes comandos:
    airflow scheduler -D
    airflow webserver -D

¡Y listo! Con estos pasos has instalado y configurado Apache Airflow en Python. Ahora puedes comenzar a crear tus DAGs y tareas para automatizar tu flujo de trabajo.