Pular para o conteúdo principal

Capítulo 1: Pipelines de Ingestão de Dados

Introdução​

A ingestão de dados é a base de qualquer sistema de ML. Este capítulo aborda como construir pipelines de dados confiáveis e escaláveis utilizando ferramentas modernas de orquestração.

Apache Airflow para Pipelines de ML​

Estrutura Básica de um 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

Processamento em Streaming vs Lote​

AspectoProcessamento em LoteProcessamento em Streaming
LatênciaMinutos a horasMilissegundos a segundos
Caso de UsoDados de treinamento, relatóriosFeatures em tempo real
FerramentasSpark, AirflowKafka, Flink
ComplexidadeMenorMaior

Principais Aprendizados​

Summary
  1. Use ferramentas de orquestração como o Airflow para pipelines complexos
  2. Escolha entre lote e streaming conforme os requisitos de latência
  3. Implemente idempotência para reexecuções confiáveis
  4. Monitore a saúde do pipeline com alertas e dashboards

Próximo: Capítulo 2: Engenharia de Features em Escala