Saltar al contenido principal

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​

AspectoProcesamiento por LotesProcesamiento en Streaming
LatenciaMinutos a horasMilisegundos a segundos
Caso de usoDatos de entrenamiento, reportesCaracterísticas en tiempo real
HerramientasSpark, AirflowKafka, Flink
ComplejidadMenorMayor

Puntos Clave​

Summary
  1. Utilice herramientas de orquestación como Airflow para pipelines complejos
  2. Elija entre procesamiento por lotes o en streaming según los requisitos de latencia
  3. Implemente idempotencia para ejecuciones confiables
  4. Monitoree la salud del pipeline con alertas y paneles de control

Siguiente: Capítulo 2: Ingeniería de Características a Escala