AIFlow ist eine ereignisbasierte Workflow-Orchestrierungsplattform, die es Benutzern ermöglicht, Workflows mit einer Mischung aus Streaming- und Batch-Aufgaben programmgesteuert zu erstellen und zu planen.
Die meisten bestehenden Workflow-Orchestrierungsplattformen (z. B. Apache AirFlow, KubeFlow) planen Aufgabenausführungen basierend auf den Statusänderungen der vorgelagerten Aufgabenausführungen. Während dieser Ansatz gut für Batch-Aufgaben funktioniert, deren Beendigung garantiert ist, funktioniert er nicht gut für Streaming-Aufgaben, die möglicherweise unendlich lange ohne Statusänderungen ausgeführt werden. AIFlow soll die Orchestrierung von Arbeitsabläufen mit Streaming-Aufgaben erleichtern.
Beispielsweise möchten Benutzer möglicherweise einen Flink-Streaming-Job kontinuierlich ausführen, um Trainingsdaten zusammenzustellen, und jedes Mal, wenn der Flink-Job alle Upstream-Daten der letzten Stunde verarbeitet hat, einen Trainingsjob für maschinelles Lernen starten. Um diesen Workflow mithilfe einer nicht ereignisbasierten Workflow-Orchestrierungsplattform zu planen, müssen Benutzer den Schulungsjob regelmäßig basierend auf der Arbeitszeit planen. Wenn es zu einem Datenverkehrsanstieg oder einem Ausfall des Upstream-Jobs kommt, hat der Flink-Job zum Zeitpunkt des Starts des TensorFlow-Jobs möglicherweise nicht die erwartete Menge an Upstream-Daten verarbeitet. Der Upstream-Job sollte entweder warten, schnell fehlschlagen oder Teildaten verarbeiten, was nicht ideal ist. Im Vergleich dazu stellt AIFlow APIs für den Flink-Job bereit, um jedes Mal ein Ereignis auszugeben, wenn sein ereignisbasiertes Wasserzeichen um eine Stunde erhöht wird, was die Ausführung eines benutzerdefinierten Trainingsjobs auslöst, ohne dass die oben beschriebenen Probleme auftreten.
Erfahren Sie mehr über AIFlow unter https://ai-flow.readthedocs.io
Ereignisgesteuert: AIFlow plant Workflows und Jobs basierend auf Ereignissen. Dies ist effizienter als die statusgesteuerte Planung und ermöglicht die Planung der Workflows, die Stream-Jobs enthalten.
Erweiterbar: Benutzer können ganz einfach ihre eigenen Operatoren und Ausführenden definieren, um verschiedene Arten von Aufgaben an verschiedene Plattformen zu senden.
Genau einmal: AIFlow bietet einen Ereignisverarbeitungsmechanismus mit genau einmaliger Semantik, was bedeutet, dass Ihre Aufgaben nie verpasst oder wiederholt werden, selbst wenn ein Failover auftritt.
B站基于AIFlow+Flink在批流融合调度上的实践
Wir freuen uns über Beiträge zu AIFlow in jeder Hinsicht, sei es das Melden von Problemen, das Entwerfen von Funktionen oder das Einbringen von Codeänderungen. Sie können Probleme melden, um Funktionen in den GitHub-Problemen anzufordern. Wenn Sie Codeänderungen beisteuern möchten, sehen Sie sich bitte die beitragende Dokumentation an.
Für weitere Informationen empfehlen wir Ihnen, der AIFlow Community Group in Google Groups beizutreten und uns zu kontaktieren: [email protected] .
Sie können der Gruppe auch über DingTalk beitreten. Die Nummer der DingTalk-Gruppe lautet 35876083
, dieser Gruppe kann auch durch Scannen des folgenden QR-Codes beigetreten werden: