Sobes.tech
Назад к вопросам
Middle
5

Какие особенности использования XCom в Airflow?

Компании, где спрашивали
КИПР NDA(IGaming)

Ответ от нейросети

sobes.tech AI

XCom (Cross-Communication) в Apache Airflow — это механизм обмена небольшими данными между задачами внутри DAG. Особенности использования XCom:

  • Передача данных между задачами: XCom позволяет одной задаче передать результат другой, например, ID, путь к файлу или статус.
  • Ограничения по размеру: XCom не предназначен для передачи больших объёмов данных, лучше использовать внешние хранилища (S3, базы данных).
  • Типы данных: Можно передавать любые сериализуемые объекты (обычно JSON-совместимые).
  • Использование методов: Для записи используется xcom_push(), для чтения — xcom_pull().
  • Контекст выполнения: XCom привязан к конкретному запуску DAG и задаче, что позволяет изолировать данные между разными запусками.

Пример использования в Python:

def task1(**kwargs):
    kwargs['ti'].xcom_push(key='sample_key', value='some_data')

def task2(**kwargs):
    data = kwargs['ti'].xcom_pull(key='sample_key', task_ids='task1')
    print(f'Received data: {data}')

Таким образом, XCom удобен для передачи небольших данных и синхронизации между задачами, но не для больших файлов или потоков данных.