Sobes.tech
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)