Sobes.tech
Middle

Jak přenášet velká data mezi úkoly v Airflow?

sobes.tech AI

Odpověď od AI

V Airflow se nedoporučuje používat XCom pro přenos velkých dat mezi úkoly, protože je určen pro malé zprávy (obvykle do 48 KB). Místo toho je lepší používat externí úložiště:

  • Ukládat data do cloudových úložišť (S3, GCS, Azure Blob) nebo databází.
  • Přenášet mezi úkoly odkazy (cesty, klíče) na tato data přes XCom.

Tento přístup umožňuje efektivně pracovat s velkými objemy dat a vyhýbat se přetížení metadat Airflow.

Příklad:

# V prvním úkolu uložíme data do S3 a předáme klíč
s3_key = upload_to_s3(data)
ti.xcom_push(key='s3_key', value=s3_key)

# Ve druhém úkolu získáme klíč a načteme data
s3_key = ti.xcom_pull(key='s3_key')
data = download_from_s3(s3_key)