Sobes.tech
Middle

Ako prenášať veľké dáta medzi úlohami v Airflow?

sobes.tech AI

Odpoveď od AI

V Airflow sa neodporúča používať XCom na prenos veľkých dát medzi úlohami, pretože je určený pre malé správy (zvyčajne do 48 KB). Namiesto toho je lepšie použiť externé úložiská:

  • Uložiť dáta do cloudových úložísk (S3, GCS, Azure Blob) alebo databáz.
  • Prenášať medzi úlohami odkazy (cesty, kľúče) na tieto dáta cez XCom.

Tento prístup umožňuje efektívne pracovať s veľkými objemami dát a vyhýbať sa preťaženiu metadát Airflow.

Príklad:

# V prvej úlohe uložíme dáta do S3 a odovzdáme kľúč
s3_key = upload_to_s3(data)
ti.xcom_push(key='s3_key', value=s3_key)

# V druhej úlohe získať kľúč a načítať dáta
s3_key = ti.xcom_pull(key='s3_key')
data = download_from_s3(s3_key)