Orkiestrowanie rurociągów TFX

Niestandardowy orkiestrator

TFX został zaprojektowany tak, aby można go było przenosić do wielu środowisk i struktur orkiestracji. Programiści mogą tworzyć niestandardowych orkiestratorów lub dodawać dodatkowych orkiestratorów oprócz domyślnych orkiestratorów obsługiwanych przez TFX, a mianowicie Local , Vertex AI , Airflow i Kubeflow .

Wszyscy koordynatorzy muszą dziedziczyć z TfxRunner . Orkiestratorzy TFX przyjmują logiczny obiekt potoku, który zawiera argumenty potoku, komponenty i DAG, i są odpowiedzialni za planowanie komponentów potoku TFX w oparciu o zależności zdefiniowane przez DAG.

Przyjrzyjmy się na przykład, jak utworzyć niestandardowego koordynatora za pomocą BaseComponentLauncher . BaseComponentLauncher obsługuje już sterownik, wykonawcę i wydawcę pojedynczego komponentu. Nowy koordynator musi jedynie zaplanować programy ComponentLaunchers w oparciu o DAG. Dostępny jest prosty orkiestrator jako LocalDagRunner , który uruchamia komponenty jeden po drugim w kolejności topologicznej DAG.

Tego orkiestratora można używać w Pythonie DSL:

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

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

Aby uruchomić plik Python DSL (zakładając, że nosi on nazwę dsl.py), po prostu wykonaj następujące czynności:

python dsl.py