Middle
Hogyan lehet nagy adatokat átvinni a feladatok között az Airflow-ban?
sobes.tech MI
Válasz az MI-től
Az Airflow-ban nem ajánlott az XCom használata nagy adatmennyiségek közötti átadására, mivel kis üzenetek (általában legfeljebb 48 KB) kezelésére tervezték. Ehelyett célszerű külső tárolókat használni:
- Adatok tárolása felhőalapú tárolókban (S3, GCS, Azure Blob) vagy adatbázisokban.
- Ezekhez az adatokhoz való hivatkozások (útvonalak, kulcsok) átadása az XCom segítségével a feladatok között.
Ez a megközelítés hatékonyan kezeli a nagy adatmennyiségeket, elkerülve az Airflow metaadatai túlterhelését.
Példa:
# Az első feladatban adatok mentése S3-ba és a kulcs átadása
s3_key = upload_to_s3(data)
ti.xcom_push(key='s3_key', value=s3_key)
# A második feladatban a kulcs lekérése és az adatok betöltése
s3_key = ti.xcom_pull(key='s3_key')
data = download_from_s3(s3_key)