Sobes.tech
Middle

Wie überträgt man große Daten zwischen Tasks in Airflow?

sobes.tech KI

Antwort von AI

In Airflow wird die Verwendung von XCom zum Übertragen großer Datenmengen zwischen Tasks nicht empfohlen, da es für kleine Nachrichten (normalerweise bis zu 48 KB) vorgesehen ist. Stattdessen sollten externe Speicherlösungen verwendet werden:

  • Daten in Cloud-Speichern (S3, GCS, Azure Blob) oder Datenbanken speichern.
  • Links (Pfad, Schlüssel) zu diesen Daten zwischen Tasks über XCom übertragen.

Dieser Ansatz ermöglicht eine effiziente Arbeit mit großen Datenmengen und vermeidet eine Überlastung der Airflow-Metadaten.

Beispiel:

# In der ersten Task Daten in S3 speichern und den Schlüssel übergeben
s3_key = upload_to_s3(data)
ti.xcom_push(key='s3_key', value=s3_key)

# In der zweiten Task den Schlüssel abrufen und Daten laden
s3_key = ti.xcom_pull(key='s3_key')
data = download_from_s3(s3_key)