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)