Sobes.tech
Middle
28

Как передавать большие данные между тасками в Airflow?

Компании, где спрашивали
Автомакон

Ответ от нейросети

sobes.tech AI

В Airflow для передачи больших данных между тасками не рекомендуется использовать XCom, так как он предназначен для небольших сообщений (обычно до 48 КБ). Вместо этого лучше использовать внешние хранилища:

  • Сохранять данные в облачные хранилища (S3, GCS, Azure Blob) или базы данных.
  • Передавать между тасками ссылки (пути, ключи) на эти данные через XCom.

Такой подход позволяет эффективно работать с большими объемами данных, избегая перегрузки метаданных Airflow.

Пример:

# В первой таске сохраняем данные в S3 и передаем ключ
s3_key = upload_to_s3(data)
ti.xcom_push(key='s3_key', value=s3_key)

# Во второй таске получаем ключ и загружаем данные
s3_key = ti.xcom_pull(key='s3_key')
data = download_from_s3(s3_key)