Организация конвейеров TFX

Пользовательский оркестратор

TFX спроектирован таким образом, чтобы его можно было переносить в различные среды и платформы оркестровки. Разработчики могут создавать собственные оркестраторы или добавлять дополнительные оркестраторы в дополнение к оркестраторам по умолчанию, поддерживаемым TFX, а именно Local , Vertex AI , Airflow и Kubeflow .

Все оркестраторы должны наследовать от TfxRunner . Оркестраторы TFX принимают объект логического конвейера, который содержит аргументы конвейера, компоненты и DAG, и отвечают за планирование компонентов конвейера TFX на основе зависимостей, определенных DAG.

Например, давайте посмотрим, как создать собственный оркестратор с помощью BaseComponentLauncher . BaseComponentLauncher уже управляет драйвером, исполнителем и издателем одного компонента. Новому оркестратору просто нужно запланировать ComponentLauncher на основе DAG. В качестве простого оркестратора предоставляется LocalDagRunner , который запускает компоненты один за другим в топологическом порядке группы обеспечения доступности баз данных.

Этот оркестратор можно использовать в Python DSL:

def _create_pipeline(...) -> dsl.Pipeline:
  ...
  return dsl.Pipeline(...)

if __name__ == '__main__':
  orchestration.LocalDagRunner().run(_create_pipeline(...))

Чтобы запустить файл Python DSL (при условии, что он называется dsl.py), просто выполните следующее:

python dsl.py