Data Flow-Integration

Mit dem Data Flow-Supportfeature in ML-Pipelines können Benutzer Data Flow-Anwendungen als Schritte innerhalb einer Pipeline integrieren.

Mit dieser neuen Funktionalität können Benutzer die Ausführungen von Datenflussanwendungen (Apache Spark as a Service) neben anderen Schritten in einer ML-Pipeline orchestrieren und so umfangreiche Datenverarbeitungsaufgaben optimieren.

Wenn eine Pipeline mit einem Datenflussschritt ausgeführt wird, erstellt und verwaltet sie automatisch eine neue Ausführung der mit diesem Schritt verknüpften Datenflussanwendung. Die Datenflussausführung wird wie jeder andere Schritt in der Pipeline behandelt. Nach erfolgreichem Abschluss setzt die Pipeline ihre Ausführung fort und startet spätere Schritte als Teil der Orchestrierung der Pipeline.

Die Verwendung von Data Flow-Anwendungen in ML-Pipelines ist einfach:

1. Datenflussschritt hinzufügen
Wählen Sie den Schritttyp "Datenfluss" in Ihrer ML-Pipeline aus.
2. Datenflussanwendung auswählen
Wählen Sie die Datenflussanwendung aus, die Sie als Schritt ausführen möchten, und konfigurieren Sie Optionen wie Clustergröße und Umgebungsvariablen.
3. Pipeline ausführen
Starten Sie eine Ausführung der Pipeline. Wenn der Data Flow-Schritt erreicht ist, wird die zugehörige Anwendung ausgeführt. Nach Abschluss werden die Ergebnisse in der Schrittausführung wiedergegeben, und die Pipeline fährt nahtlos mit den nächsten Schritten fort.
Diese Integration vereinfacht die Workflows von Data Scientists, indem sie es ihnen ermöglicht, große Datasets effizient innerhalb derselben Pipeline zu verarbeiten, indem sie die skalierbare Rechenleistung von OCI Data Flow nutzen und gleichzeitig die Automatisierung über ML-Pipelines aufrechterhalten.

Policys

Nehmen Sie die folgenden Policys für die Data Flow-Integration mit Pipelines auf:
  • Integration von Data Flow und Pipelines.
  • Pipelineausführungszugriff auf OCI-Services.
  • (Optional) Benutzerdefinierte Networking-Policys, jedoch nur bei Verwendung benutzerdefinierter Netzwerke.
Unter Data Flow-Policys finden Sie alle Voraussetzungen für die Verwendung von Data Flow.
Hinweis

Wenn eine Datenflussausführung von einer Pipelineausführung ausgelöst wird, erbt sie den Resource Principal datasciencepipelinerun. Daher erteilt das Erteilen von Berechtigungen für datasciencepipelinerun auch Berechtigungen für den Code, der in der von der Pipelineausführung gestarteten Data Flow-Ausführung ausgeführt wird.

Data Flow mit Pipelines konfigurieren

Stellen Sie sicher, dass die entsprechenden Policys angewendet werden.

  1. Wenn Sie Pipelineschritte zur Verwendung von Data Flow definieren, wählen Sie unter Pipeline erstellen die Option Aus Data Flow-Anwendungen aus.
  2. Wählen Sie unter Datenflussanwendung auswählen die zu verwendende Datenflussanwendung aus.

    Wenn sich die Datenflussanwendung in einem anderen Compartment befindet, wählen Sie Compartment ändern aus.

  3. (Optional) Wählen Sie im Abschnitt Datenflusskonfiguration die Option Konfigurieren aus.

    Führen Sie im Bereich Datenflusskonfiguration konfigurieren folgende Schritte aus:

    1. Wählen Sie die Treiberausprägung und die Executor-Ausprägung aus.
    2. Geben Sie die Anzahl der Executors ein.
    3. (Optional) Wählen Sie den Log-Bucket aus.
    4. (Optional) Fügen Sie Spark-Konfigurationseigenschaften hinzu.
    5. (Optional) Geben Sie die Warehouse-Bucket-URI an.

Kurzanleitung

In dieser Schritt-für-Schritt-Anleitung können Sie eine Datenfluss-Pipeline erstellen.

  1. Befolgen Sie die Dokumentation zu Data Flow-Policys. Sie enthält Details zur ersten erforderlichen Einrichtung, bevor Sie Data Flow verwenden können.
  2. Laden Sie die folgende Python-Beispielanwendung hello-world.py in einen Bucket hoch:
    print("======Start======")
    import os
    from pyspark.sql import SparkSession
     
    def in_dataflow():
        if os.environ.get("HOME") == "/home/dataflow":
            return True
        return False
     
    def get_spark():
        if in_dataflow():
            return SparkSession.builder.appName("hello").getOrCreate()
        else:
            return SparkSession.builder.appName("LocalSparkSession").master("local[*]").getOrCreate()
     
    print("======Opening Session======")
    spark = get_spark()
    print("======Application Created======")
    # Test the connection by creating a simple DataFrame
    df = spark.createDataFrame([("Hello",), ("World",)], ["word"])
    print("======Data Frame Created======")
    # Show the DataFrame's content
    df.show()
    print("======Done======")
  3. Führen Sie die Schritte unter Datenfluss-Policys aus, um eine Datenflussanwendung mit der Python-Anwendung im 2. Schritt zu erstellen.
  4. Testen Sie die Data Flow-Anwendung.
    1. Klicken Sie auf der Detailseite der Anwendung auf Ausführen.
    2. Wenden Sie im Bereich "Anwendung ausführen" Argumente und Parameter an, aktualisieren Sie die Ressourcenkonfiguration, oder fügen Sie bei Bedarf unterstützte Spark-Eigenschaften hinzu.
    3. Wählen Sie Ausführen aus, um die Anwendung auszuführen.
    4. (Optional) Prüfen Sie die Logs. Gehen Sie zu den Ausführungsdetails, und wählen Sie Logs aus.
  5. Erstellen Sie die Pipeline.

    Stellen Sie vor dem Erstellen einer Pipeline sicher, dass Sie über Policys verfügen, mit denen die Pipeline-Ausführungsressource Data Flow verwenden und mit Ihrer hallo-world-Anwendung auf den Bucket zugreifen kann. Weitere Informationen finden Sie unter Pipeline-Policys.

    1. Erstellen Sie eine Pipeline mit einem Schritt, der Ihre hello-world Data Flow-Anwendung verwendet:
      1. Erstellen Sie eine Pipeline mit einem Namen wie Data Flow Step Demo.
      2. Wählen Sie Pipelineschritte hinzufügen aus.
      3. Benennen Sie den Schritt, z.B. Step 1.
      4. Um die Data Flow-Anwendung zu verwenden, wählen Sie Aus Data Flow-Anwendungen aus.
      5. Wählen Sie die Data Flow-Anwendung aus.
      6. Wenn sich die Datenflussanwendung in einem anderen Compartment befindet, wählen Sie Compartment ändern aus.
      7. Wählen Sie Speichern aus, um den Schritt zu speichern.
      8. (Optional) Definieren Sie das Logging.
      9. Wählen Sie Erstellen aus, um die Pipeline zu erstellen.
    2. Pipelinelogs aktivieren:
      1. Gehen Sie zu den Pipelinedetails.
      2. Wählen Sie die Ressource Logs aus.
      3. Logs aktivieren.
    3. Pipeline ausführen:
      1. Gehen Sie zu den Pipelinedetails.
      2. Wählen Sie die Ressource Pipelineausführung aus.
      3. Wählen Sie Pipelineausführung starten aus.
      4. Wählen Sie Start.