Capítulo 1: Pipelines de Ingesta de Datos
Introducción
La ingesta de datos es la base de cualquier sistema de ML. Este capítulo cubre cómo construir pipelines de datos confiables y escalables utilizando herramientas modernas de orquestación.
Apache Airflow para Pipelines de ML
Estructura Básica de un 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
Procesamiento por Lotes vs Procesamiento en Streaming
| Aspecto | Procesamiento por Lotes | Procesamiento en Streaming |
|---|---|---|
| Latencia | Minutos a horas | Milisegundos a segundos |
| Caso de uso | Datos de entrenamiento, reportes | Características en tiempo real |
| Herramientas | Spark, Airflow | Kafka, Flink |
| Complejidad | Menor | Mayor |
Puntos Clave
Summary
- Utilice herramientas de orquestación como Airflow para pipelines complejos
- Elija entre procesamiento por lotes o en streaming según los requisitos de latencia
- Implemente idempotencia para ejecuciones confiables
- Monitoree la salud del pipeline con alertas y paneles de control
Siguiente: Capítulo 2: Ingeniería de Características a Escala