AccueilBlogTest technique Prefect : orchestration moderne vs Airflow
Guide recrutement data

Test technique Prefect : orchestration moderne vs Airflow

Prefect est une alternative moderne à Airflow avec une meilleure developer experience. En entretien, on évalue la capacité à choisir entre les orchestrateurs et à architecturer des pipelines robustes.

Data Builder·Juin 2025·6 min de lecture·Data Engineer
Sommaire
  1. Pourquoi Prefect
  2. Flows et tasks
  3. Deployments et work pools
  4. Gestion des erreurs
  5. Airflow vs Prefect vs Dagster
  6. Monitoring et observabilité
  7. Grille

1Pourquoi Prefect est différent d Airflow

Question discriminante

Quelle est la principale différence architecturale entre Prefect et Airflow ?

2Flows et tasks : la syntaxe Prefect

Question discriminante

Comment convertissez-vous un script Python existant en flow Prefect ?

from prefect import flow, task from prefect.tasks import task_input_hash from datetime import timedelta @task( retries=3, retry_delay_seconds=60, cache_key_fn=task_input_hash, cache_expiration=timedelta(hours=1) ) def extract_data(source_url: str) -> list: response = requests.get(source_url) return response.json() @task def transform(data: list) -> pd.DataFrame: df = pd.DataFrame(data) return df[df['amount'] > 0] @task def load(df: pd.DataFrame, table: str): df.to_sql(table, engine, if_exists='append') return len(df) @flow(name='pipeline-ventes', log_prints=True) def pipeline(source: str = 'https://api.exemple.com/orders'): data = extract_data(source) df = transform(data) n_rows = load(df, 'orders') print(f'{n_rows} lignes chargées') if __name__ == '__main__': pipeline() # exécutable directement en local

3Deployments et work pools

Question discriminante

Qu est-ce qu un Deployment Prefect ? Comment planifiez-vous l exécution ?

from prefect.deployments import Deployment from prefect.server.schemas.schedules import CronSchedule # Créer un déploiement avec CRON deployment = Deployment.build_from_flow( flow=pipeline, name='pipeline-ventes-quotidien', schedule=CronSchedule(cron='0 6 * * *', timezone='Europe/Paris'), work_pool_name='mon-pool-gcp', # où s exécute le flow parameters={'source': 'https://api.exemple.com/orders'} ) deployment.apply() # Work pools : définir l infrastructure d exécution # Process : exécution locale (dev/test) # Docker : conteneur Docker # Kubernetes : pod K8s # Cloud Run : GCP serverless

4Gestion des erreurs et retry

Question discriminante

Comment gérez-vous les erreurs dans Prefect ? En quoi est-ce plus puissant qu Airflow ?

5Airflow vs Prefect vs Dagster

Question discriminante

Comment choisissez-vous votre orchestrateur ?

AirflowPrefectDagster
ParadigmeDAG-centric (tâches)Flow-centric (Python pur)Asset-centric (données)
Courbe d apprentissageÉlevéeFaibleMoyenne
ÉcosystèmeMature, 400+ providersCroissantCroissant
Developer experienceMoyenExcellentExcellent
Data assetsNonPartielNatif
Idéal pourÉquipes existantes, beaucoup de providersNouveaux projets, Python-centricTeams data-asset oriented

6Monitoring et observabilité

Question discriminante

Comment monitorez-vous vos flows Prefect en production ?

7Grille par niveau

NiveauMaitriseSignal GONO-GO
ConfirméFlows et tasks, déploiements, retry basiqueA transformé un script Python en flow Prefect, sait déployer avec un CRONN a jamais utilisé d orchestrateur
SeniorWork pools, state handlers, comparaison Airflow/Prefect/DagsterJustifie le choix d orchestrateur selon le contexte, a configuré des automationsNe sait pas expliquer la différence architecturale entre Airflow et Prefect

Vous recrutez un Data Engineer ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.