Aller au contenu principal

Chapitre 1 : Pipelines d'ingestion de données

Introduction​

L'ingestion de données est la base de tout système ML. Ce chapitre couvre la construction de pipelines de données fiables et évolutifs en utilisant des outils d'orchestration modernes.

Apache Airflow pour les pipelines ML​

Structure de base du DAG​

from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime, timedelta

default_args = {
'owner': 'ml-team',
'depends_on_past': False,
'email_on_failure': True,
'email': ['ml-alerts@company.com'],
'retries': 3,
'retry_delay': timedelta(minutes=5),
}

with DAG(
'ml_data_pipeline',
default_args=default_args,
description='Daily ML data ingestion pipeline',
schedule_interval='0 6 * * *', # Daily at 6 AM
start_date=datetime(2024, 1, 1),
catchup=False,
tags=['ml', 'data', 'production'],
) as dag:

extract = PythonOperator(
task_id='extract_data',
python_callable=extract_from_source,
)

transform = PythonOperator(
task_id='transform_data',
python_callable=transform_data,
)

validate = PythonOperator(
task_id='validate_data',
python_callable=run_data_validation,
)

load = PythonOperator(
task_id='load_to_feature_store',
python_callable=load_features,
)

extract >> transform >> validate >> load

Traitement en flux vs par lots​

AspectTraitement par lotsTraitement en flux
LatenceMinutes à heuresMillisecondes à secondes
Cas d'utilisationDonnées d'entraînement, rapportsFonctionnalités en temps réel
OutilsSpark, AirflowKafka, Flink
ComplexitéMoindrePlus élevée

Points clés à retenir​

Résumé
  1. Utilisez des outils d'orchestration comme Airflow pour des pipelines complexes
  2. Choisissez entre traitement par lots et en flux selon les exigences de latence
  3. Implémentez l'idempotence pour des ré-exécutions fiables
  4. Surveillez la santé du pipeline avec des alertes et des tableaux de bord

Suivant : Chapitre 2 : Ingénierie des fonctionnalités à grande échelle