Freigeben über


Weitere Informationen finden Sie unter Transformieren von Daten durch Ausführen eines Synapse-Notebooks

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

Die Azure Synapse-Notebookaktivität in einer Synapse-Pipeline führt ein Synapse-Notebook aus. Dieser Artikel baut auf dem Artikel zu Datentransformationsaktivitäten auf, der eine allgemeine Übersicht über die Datentransformation und die unterstützten Transformationsaktivitäten bietet. 

Erstellen einer Synapse-Notebookaktivität

Sie können eine Synapse-Notebookaktivität direkt über die Canvas der Synapse-Pipeline oder über den Notebook-Editor erstellen. Die Synapse-Notebookaktivität wird im Spark-Pool ausgeführt, der im Synapse-Notebook ausgewählt wird.

Hinzufügen einer Synapse-Notebookaktivität über eine Pipelinecanvas

Ziehen Sie das Synapse-Notebook unter Aktivitäten in die Synapse-Pipelinecanvas. Wählen Sie das Feld für Synapse-Notebookaktivitäten aus, und konfigurieren Sie die Einstellungen der Notebookinhalte für die aktuelle Aktivität. Sie können ein vorhandenes Notebook aus dem aktuellen Arbeitsbereich auswählen oder ein neues hinzufügen.

Wenn Sie im aktuellen Arbeitsbereich ein vorhandenes Notebook auswählen, können Sie auf die Schaltfläche Öffnen klicken, um die Seite des Notebooks direkt zu öffnen.

(Optional) Sie können in den Einstellungen auch „Spark-Pool\Executor-Größe\Executors dynamisch zuordnen\Min. Executors\Max. Executors\Treibergröße“ neu konfigurieren. Es sollte beachtet werden, dass die hier konfigurierten Einstellungen die Einstellungen der Konfigurationssitzung in Notebook ersetzen. Wenn in den Einstellungen der aktuellen Notebook-Aktivität nichts festgelegt ist, wird sie mit den Einstellungen der Konfigurationssitzung in diesem Notebook ausgeführt.

screenshot-showing-create-notebook-activity

Eigenschaft Beschreibung Erforderlich
Spark-Pool Verweis auf den Spark-Pool. Sie können den Apache Spark-Pool aus der Liste auswählen. Wenn diese Einstellung leer ist, erfolgt die Ausführung im Spark-Pool des Notebooks selbst. Nein
„Executor size“ (Executorgröße) Die Anzahl von Kernen und die Menge an Arbeitsspeicher, die im angegebenen Apache Spark-Pool für die Sitzung zur Verwendung durch Executors zugeordnet ist. No
Executors dynamisch zuordnen Diese Einstellung entspricht der dynamischen Zuordnungseigenschaft in der Spark-Konfiguration für die Executorzuteilung der Spark-Anwendung. No
Min. Executors Dies ist die min. Anzahl von Executors, die im angegebenen Spark-Pool für den Auftrag zugeordnet werden sollen. No
Max. Executors Dies ist die max. Anzahl von Executors, die im angegebenen Spark-Pool für den Auftrag zugeordnet werden sollen. No
„Driver size“ (Treibergröße) Die Anzahl von Kernen und die Menge an Arbeitsspeicher, die für Treiber im angegebenen Apache Spark-Pool für den Auftrag verwendet werden sollen. Nein

Hinweis

Die Ausführung paralleler Spark-Notebooks in Azure Synapse-Pipelines wird in die Warteschlange eingereiht und nach dem FIFO-Prinzip ausgeführt. Die Auftragsreihenfolge in der Warteschlange erfolgt gemäß der Zeitabfolge, und die Ablaufzeit eines Auftrags in der Warteschlange beträgt drei Tage. Beachten Sie, dass die Warteschlange für Notebooks nur in der Synapse-Pipeline funktioniert.

Hinzufügen eines Notebooks zur Synapse-Pipeline

Wählen Sie in der oberen rechten Ecke Zur Pipeline hinzufügen aus, um ein Notebook zu einer vorhandenen Pipeline hinzuzufügen oder eine neue Pipeline zu erstellen.

screenshot-showing-add-notebook-to-pipeline

Übergeben von Parametern

Festlegen einer Parameterzelle

Um Ihr Notebook zu parametrisieren, wählen Sie die Auslassungspunkte (...) aus, um auf der Zellensymbolleiste auf Weitere Befehle zuzugreifen. Klicken Sie dann auf Parameterzelle umschalten, um die Zelle als Parameterzelle festzulegen.

screenshot-showing-azure-notebook-toggle-parameter

Definieren Sie Ihre Parameter in dieser Zelle. Es kann etwas so einfaches sein wie:

a = 1
b = 3
c = "Default Value"

Sie können auf diese Parameter in anderen Zellen verweisen und wenn Sie das Notizbuch ausführen, um die Standardwerte zu verwenden, geben Sie die Sie diese in der Parameterzelle an.

Wenn Sie dieses Notizbuch aus einer Pipeline ausführen, sucht Azure Data Factory nach der Parameterzelle und verwendet die Werte, die Sie als Standardwerte für die Parameter angegeben haben, die zur Ausführungszeit übergeben werden. Wenn Sie Parameterwerte aus einer Pipeline zuweisen, fügt das Ausführungsmodul eine neue Zelle unterhalb der Parameterzelle mit Eingabeparametern hinzu, um die Standardwerte zu überschreiben.

Zuweisen von Parameterwerten über eine Pipeline

Sobald Sie ein Notebook mit Parametern erstellt haben, können Sie dieses über eine Pipeline mit der Synapse-Notebookaktivität ausführen. Nachdem Sie die Aktivität zu Ihrer Pipelinecanvas hinzugefügt haben, können Sie die Parameterwerte auf der Registerkarte Einstellungen im Abschnitt Base parameters (Basisparameter) festlegen.

screenshot-showing-assign-a-parameter

Tipp

Data Factory füllt die Parameter nicht automatisch auf. Sie müssen diese manuell hinzufügen. Achten Sie darauf, dass Sie in der Parameterzelle im Notizbuch und im Basisparameter in der Pipeline genau denselben Namen verwenden.

Nachdem Sie Ihre Parameter zu Ihrer Aktivität hinzugefügt haben, übergibt Data Factory die Werte, die Sie in Ihrer Aktivität angeben, an Ihr Notizbuch, und Ihr Notizbuch wird dann mit diesen neuen Parameterwerten ausgeführt, anstelle der Standardwerte, die Sie in der Parameterzelle angegeben haben.

Beim Zuweisen von Parameterwerten können Sie die Pipelineausdruckssprache oder Systemvariablen verwenden.

Lesen des Ausgabewerts einer Synapse-Notebookzelle

Sie können den Ausgabewert der Notebookzelle in den nächsten Aktivitäten folgendermaßen lesen:

  1. Rufen Sie die API mssparkutils.notebook.exit in Ihrer Synapse-Notebookaktivität auf, um den Wert zurückzugeben, den Sie in der Aktivitätsausgabe anzeigen möchten, zum Beispiel:

    mssparkutils.notebook.exit("hello world") 
    

    Wenn Sie den Notebookinhalt speichern und die Pipeline erneut auslösen, enthält die Ausgabe für die Notebookaktivität den exitValue-Wert, der für die in Schritt 2 folgenden Aktivitäten verwendet werden kann.

  2. Lesen Sie die Eigenschaft exitValue aus der Ausgabe der Notebookaktivität. Mit diesem Beispielausdruck können Sie überprüfen, ob der von der Ausgabe der Notebookaktivität abgerufene Wert für exitValue der Zeichenfolge „hello world“ entspricht:

    screenshot-showing-read-exit-value

Ausführen eines weiteren Synapse-Notebooks

Sie können in einer Synapse-Notebookaktivität auf andere Notebooks verweisen, indem Sie %run magic oder die Notebook-Hilfsprogramme mssparkutils aufrufen. Beide unterstützen geschachtelte Funktionsaufrufe. Berücksichtigen Sie je nach Szenario die folgenden wichtigen Unterschiede zwischen diesen beiden Methoden:

  • %run magic kopiert alle Zellen aus dem Notebook, auf das verwiesen wird, in die Zelle %run und teilt den Variablenkontext. Wenn notebook1 über %run notebook2 auf notebook2 verweist und notebook2 die Funktion mssparkutils.notebook.exit aufruft, wird die Zellenausführung in notebook1 beendet. Sie sollten %run magic verwenden, wenn Sie eine Notebookdatei einschließen möchten.
  • Die Notebook-Hilfsprogramme mssparkutils rufen das Notebook, auf das verwiesen wird, als Methode oder Funktion auf. Der Variablenkontext wird nicht geteilt. Wenn notebook1 über mssparkutils.notebook.run("notebook2") auf notebook2 verweist und notebook2 die Funktion mssparkutils.notebook.exit aufruft, wird die Zellenausführung in notebook1 fortgesetzt. Sie sollten die Notebook-Hilfsprogramme mssparkutils verwenden, wenn Sie ein Notebook importieren möchten.

Anzeigen des Verlaufs für ausgeführte Notebookaktivitäten

Unter Pipelineausführungen auf der Registerkarte Überwachen werden die ausgelösten Pipelines aufgeführt. Öffnen Sie die Pipeline, die Notebookaktivitäten enthält, um den Ausführungsverlauf anzuzeigen.

Wählen Sie die Schaltfläche Notebook öffnen aus, um die Momentaufnahme der letzten Notebookausführung anzuzeigen, die auch Zelleneingaben und -ausgaben enthält.

Screenshot: Verlauf der Notebook-Aktivitäten

Offene Momentaufnahme eines Notebooks:

Screenshot: Offene Momentaufnahme eines Notebooks

Wählen Sie die Schaltfläche Eingabe oder Ausgabe aus, um die Eingaben oder Ausgaben der Notebookaktivität anzuzeigen. Wenn in Ihrer Pipeline ein Benutzerfehler auftritt, können Sie Ausgabe auswählen. Im Feld Ergebnis ist eine ausführliche Rückverfolgung des Benutzerfehlers vorhanden.

Screenshot: Details des Benutzerfehlers

Definition der Synapse-Notebookaktivität

Hier finden Sie eine JSON-Beispieldefinition für eine Synapse-Notebookaktivität:

{
    "name": "parameter_test",
    "type": "SynapseNotebook",
    "dependsOn": [],
    "policy": {
        "timeout": "7.00:00:00",
        "retry": 0,
        "retryIntervalInSeconds": 30,
        "secureOutput": false,
        "secureInput": false
    },
    "userProperties": [],
    "typeProperties": {
        "notebook": {
            "referenceName": "parameter_test",
            "type": "NotebookReference"
        },
        "parameters": {
            "input": {
                "value": {
                    "value": "@pipeline().parameters.input",
                    "type": "Expression"
                }
            }
        }
    }
}

Ausgabe der Synapse-Notebookaktivität

Hier finden Sie ein JSON-Beispiel für die Ausgabe einer Synapse-Notebookaktivität:

{
{
    "status": {
        "Status": 1,
        "Output": {
            "status": <livySessionInfo>
            },
            "result": {
                "runId": "<GUID>",
                "runStatus": "Succeed",
                "message": "Notebook execution is in Succeeded state",
                "lastCheckedOn": "2021-03-23T00:40:10.6033333Z",
                "errors": {
                    "ename": "",
                    "evalue": ""
                },
                "sessionId": 4,
                "sparkpool": "sparkpool",
                "snapshotUrl": "https://myworkspace.dev.azuresynapse.net/notebooksnapshot/{guid}",
                "exitCode": "abc" // return value from user notebook via mssparkutils.notebook.exit("abc")
            }
        },
        "Error": null,
        "ExecutionDetails": {}
    },

    "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (West US 2)",
    "executionDuration": 234,
    "durationInQueue": {
        "integrationRuntimeQueue": 0
    },
    "billingReference": {
        "activityType": "ExternalActivity",
        "billableDuration": [
            {
                "meterType": "AzureIR",
                "duration": 0.06666666666666667,
                "unit": "Hours"
            }
        ]
    }
}

Bekannte Probleme

Wenn der Notebookname in der Pipeline-Notebook-Aktivität parametrisiert ist, kann in den Debugausführungen nicht auf die Notebookversion im nicht veröffentlichten Status verwiesen werden.