Créer une connexion de base de données

Pour que votre pipeline puisse charger des données dans votre base de données, Airflow doit connaître l'adresse, ainsi que les identifiants. Pour des raisons de sécurité, on ne les écrit jamais directement dans le code du DAG. On utilise le menu Connections.

Accéder au menu des connexions#

  1. Connectez-vous à l'interface web d'Airflow (généralement sur le port 8080).
  2. Dans la barre de navigation supérieure, cliquez sur Admin puis sur Connections.

Ajouter une nouvelle connexion#

Cliquez sur le bouton + (Add a new record) pour ouvrir le formulaire de création. Remplissez les champs suivants :

  • Connection Id : postgres_default (C'est le nom que vous utiliserez dans votre code Python via le paramètre postgres_conn_id).
  • Connection Type : Sélectionnez Postgres.
  • Host : L'adresse de votre serveur (ex: localhost ou le nom du service docker postgres).
  • Schema : Le nom de votre base de données (ex: my_database).
  • Login : Votre nom d'utilisateur.
  • Password : Votre mot de passe.
  • Port : 5432.

Note : Si vous utilisez Docker Compose, le "Host" est souvent le nom du service défini dans votre fichier YAML (par exemple postgres).

Utiliser la connexion dans un DAG#

Une fois la connexion enregistrée, vous pouvez l'appeler très simplement dans vos opérateurs. Airflow s'occupe de récupérer les secrets en arrière-plan.

from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator as PostgresOperator

# ID 'postgres_default'
setup_table = PostgresOperator(
    task_id="create_table",
    postgres_conn_id="postgres_default",
    sql="CREATE TABLE IF NOT EXISTS my_table (id SERIAL PRIMARY KEY, data TEXT);"
)

Pourquoi utiliser les connexions ?#

  1. Sécurité : Vos mots de passe ne sont pas visibles sur GitHub ou dans vos fichiers de logs.
  2. Portabilité : Vous pouvez avoir une connexion postgres_default sur votre environnement de test et une autre sur votre environnement de production avec le même code de DAG.
  3. Maintenance : Si votre mot de passe change, vous le modifiez à un seul endroit dans l'UI d'Airflow.

Félicitations ! Votre environnement est maintenant prêt à communiquer avec le monde extérieur. Dans le module suivant, nous allons mettre tout cela en pratique en créant notre premier script d'extraction de données depuis une API.

Commentaires

Inscrivez-vous à une formation complète

Voir le catalogue