Data Flow-Pools
Datenflusspools können in vielen Data Flow-Batch-, Streaming- und Session-Workloads von verschiedenen Benutzern gleichzeitig im selben Mandanten verwendet werden.
Pools bieten einen leistungsstarken und flexiblen Mechanismus zur effizienten Verwaltung von Spark-basierten Batch-, Streaming- und Session-Workloads über mehrere Benutzer innerhalb desselben Mandanten hinweg. Pools wurden entwickelt, um sowohl zeitkritische Produktionsumgebungen als auch dynamische Entwicklungsszenarien zu unterstützen und reduzieren die Startzeiten von Anwendungen, indem die vorab initialisierte Compute-Infrastruktur beibehalten wird.
Sie ermöglichen eine Workload-Isolation der Unternehmensklasse und stellen sicher, dass kritische Produktionsjobs durch dedizierte Ressourcensegmentierung nicht von Entwicklungsaktivitäten beeinflusst werden. Die Kostenkontrolle wird durch feingranulierte IAM-Policys optimiert, mit denen die Poolnutzung auf autorisierte Benutzer oder bestimmte Umgebungen beschränkt wird. Gleichzeitig ermöglichen intelligente Queuing-Mechanismen eine hochvolumige Jobweiterleitung und optimieren gleichzeitig die Ressourcennutzung.
Pools können so geplant werden, dass sie automatisch innerhalb definierter Zeitfenster gestartet werden und schließlich nach einem Timeout bei der Nutzung gestoppt werden, die Rechenverfügbarkeit an Geschäftsprozessen ausgerichtet und die Leerlaufkosten minimiert werden. Darüber hinaus verarbeitet die integrierte Automatisierung das Sicherheitspatching nahtlos, ohne laufende Anwendungen zu unterbrechen. Daher sind Pools die ideale Wahl für eine sichere, skalierbare und kosteneffiziente Ausführung von Spark-Workloads.
Pools bieten eine breite Palette von Funktionen für verschiedene Anwendungsfälle, wie zum Beispiel:
- Zeitabhängige große Produktions-Workloads mit vielen Executors, die eine schnellere Startzeit in Sekunden erfordern.
- Kritische Produktions-Workloads werden nicht von dynamischen Entwicklungs-Workloads beeinflusst, da ihre Ressourcen in verschiedene Pools aufgeteilt werden können.
- Kontrollieren Sie Kosten und Nutzung für die Entwicklung mit der IAM-Policy, mit der Sie Datenflussausführungen an bestimmte Pools weiterleiten können.
- Eine große Anzahl von Datenflussausführungen muss mit weniger Startzeit verarbeitet werden.
- Die Queueing von Data Flow wird in einem Pool ausgeführt, um Ressourcen effizient zu nutzen und die Kosten zu kontrollieren.
- Workloads werden nur in einem bestimmten Zeitfenster eines Tages ausgeführt, für das der automatische Start eines Pools nach einem Zeitplan und der automatische Stopp im Leerlauf erforderlich sind.
- Automatisches Sicherheitspatching ohne Auswirkungen auf Ausführungen oder Ressourcen in einem Pool.
Ein weiterer Anwendungsfall für Data Flow ist die Möglichkeit, Knoten mit einer speziellen Konfiguration vorab zuzuweisen (oder zu reservieren). Dies sind Ressourcen bestimmter Größen (oder der Beziehung zwischen CPU und Speicher), die in den Data Centern, die diese Region unterstützen, selten sind. Die Jobs, die eine solche spezielle Konfiguration erfordern, umfassen in der Regel große Datenmengen und Datensatzgrößen, die nicht einfach verteilt werden können, indem der Jobausführung mehr Knoten zugewiesen werden.
Für diese Szenarien ist es praktisch, die Data Center in der Region abzufragen, um die Verfügbarkeit dieser Ressourcen zu bewerten. Oracle-Beispiele bieten einen einfachen Ansatz, um diese Kapazität in verschiedenen kommerziellen Kontexten zu untersuchen.
Ausführungen und Anwendungen für die Verwendung von Pools konfigurieren
Verwenden Sie Pools mit Data Flow-Anwendungen und -Ausführungen.
Anwendung mit einem Pool entwickeln
Beim Entwickeln von Anwendungen können Sie einen Pool mit einem beliebigen Status außer DELETED
auswählen, der einer Anwendung hinzugefügt werden soll. Wählen Sie nur die Treiber- und Executor-Ausprägungen aus, die im der Anwendung hinzugefügten Data Flow-Pool konfiguriert sind.
Anwendung mit einem Pool ausführen
Wählen Sie beim Weiterleiten einer Datenflussausführung einen Pool mit einem beliebigen Status außer DELETED
aus, um eine Anwendung hinzuzufügen. Wählen Sie nur die Treiber- und Executor-Ausprägungen aus, die im Data Flow-Pool konfiguriert sind, der zur Ausführung hinzugefügt wurde.
Datenfluss mit Pool in Queue stellen
Sie können weitere Ausführungen an die Poolqueue weiterleiten, während die Pool-Compute-Ressourcen von anderen Ausführungen verwendet werden. Standardmäßig werden Ausführungen 20 Minuten lang in die Queue gestellt, um auf die Verfügbarkeit von Ressourcen im Pool zu warten. Sie können die Wartezeit in der Queue konfigurieren, indem Sie die Spark-Konfiguration spark.dataflow.acquireQuotaTimeout
in den erweiterten Optionen "Datenflussausführung" oder "Anwendung" festlegen. Der Wert für diese Konfiguration kann als 1h | 30m | 45min usw. formatiert werden.
Während eine Datenflussausführung in der Queue darauf wartet, dass die Ressourcen, die von aktiven Ausführungen im Pool gehalten werden, verfügbar sind, wird ein Kaltstart ausgeführt.
Datenflusspool wird aus Ausführung gestartet
Gestoppte oder akzeptierte Data Flow-Pools können auch durch Starten einer Ausführung mit einem Pool gestartet werden.
Läuft ab, bis der Pool aktiv wird. Es wird empfohlen, die Queuing-Funktion des Pools zu verwenden, um Laufzeit-Timeouts zu vermeiden. Wenn Sie die Ausführung abbrechen und stoppen, wird der Pool nicht gestoppt.
Pool-ID in einer Ausführung oder Anwendung überschreiben
-
Wenn Sie einen Pool in einer Anwendung hinzufügen und ausführen, wird der Pool verwendet, der zur Ausführung hinzugefügt wurde.
-
Beim Hinzufügen eines Pools in einer Anwendung, jedoch nicht in einer Ausführung wird beim Starten der Ausführung der der der Anwendung hinzugefügte Pool verwendet.
-
Beim Hinzufügen eines Pools in einer Ausführung, jedoch nicht in einer Anwendung wird beim Starten der Ausführung der zur Ausführung hinzugefügte Pool verwendet.
-
Dadurch können io viele Pools in verschiedenen Ausführungen derselben Anwendung verwendet werden.
Limits
- Datenflusslimits und Compartment-Quotas auf Mandantenebene sind beim Erstellen oder Starten von Pools weiterhin anwendbar.
- Maximal 1000 Knoten insgesamt für alle Konfigurationen in einem Pool.
- Die Anzahl der Pools, die erstellt und verwendet werden können, ist nicht begrenzt. Ein Administrator kann eine Compartment Quota Policy schreiben, um einen Benutzer, eine Benutzergruppe oder ein Compartment auf die Ausprägung und die Anzahl der in einem Pool konfigurierten Knoten zu beschränken.