Sobes.tech
Middle

¿Cómo transferir grandes datos entre tareas en Airflow?

sobes.tech AI

Respuesta de la IA

En Airflow, no se recomienda usar XCom para transferir grandes volúmenes de datos entre tareas, ya que está diseñado para mensajes pequeños (generalmente hasta 48 KB). En su lugar, es mejor usar almacenamiento externo:

  • Guardar datos en almacenamiento en la nube (S3, GCS, Azure Blob) o bases de datos.
  • Pasar enlaces (rutas, claves) a estos datos entre tareas a través de XCom.

Este enfoque permite trabajar eficazmente con grandes volúmenes de datos, evitando sobrecargar los metadatos de Airflow.

Ejemplo:

# En la primera tarea, guardar datos en S3 y pasar la clave
s3_key = upload_to_s3(data)
ti.xcom_push(key='s3_key', value=s3_key)

# En la segunda tarea, obtener la clave y cargar los datos
s3_key = ti.xcom_pull(key='s3_key')
data = download_from_s3(s3_key)