Share via


Transformera data genom att köra en notebook-fil i Synapse

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Tips

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Aktiviteten Azure Synapse notebook-fil i en Synapse-pipeline kör en Synapse-anteckningsbok i din Azure Synapse arbetsyta. Den här artikeln bygger på artikeln om datatransformeringsaktiviteter , som ger en allmän översikt över datatransformering och de omvandlingsaktiviteter som stöds. 

Skapa en Synapse Notebook-aktivitet

Du kan skapa en Synapse Notebook-aktivitet direkt från Synapse-pipelinearbetsytan eller från notebook-redigeraren. Aktiviteten för Synapse Notebook körs på Spark-poolen som väljs i Synapse Notebook.

Lägga till en Synapse Notebook-aktivitet från pipeline-arbetsytan

Dra och släpp Synapse-anteckningsboken under Aktiviteter på Synapse-pipelinearbetsytan. Välj i aktivitetsrutan Synapse Notebook och konfigurera notebook-innehållet för aktuell aktivitet i inställningarna. Du kan välja en befintlig anteckningsbok från den aktuella arbetsytan eller lägga till en ny.

Om du väljer en befintlig anteckningsbok från den aktuella arbetsytan kan du klicka på knappen Öppna för att öppna anteckningsbokens sida direkt.

(Valfritt) Du kan också konfigurera om Spark-poolen\Executor size\Dynamically allokera utförare\Min executors\Max executors\Driver size i inställningarna. Observera att inställningarna som konfigureras om här ersätter inställningarna för den konfigurerade sessionen i Notebook. Om inget anges i inställningarna för den aktuella notebook-aktiviteten körs den med inställningarna för den konfigurerade sessionen i anteckningsboken.

screenshot-showing-create-notebook-activity

Egenskap Beskrivning Krävs
Spark-pool Referens till Spark-poolen. Du kan välja Apache Spark-pool i listan. Om den här inställningen är tom körs den i själva notebook-filens Spark-pool. No
Storlek på köre Antal kärnor och minne som ska användas för utförare som allokerats i den angivna Apache Spark-poolen för sessionen. No
Dynamiskt allokera utförare Den här inställningen mappar till den dynamiska allokeringsegenskapen i Spark-konfigurationen för spark-programexekutorallokering. No
Min executors Minsta antal utförare som ska allokeras i den angivna Spark-poolen för jobbet. No
Maximalt antal utförare Maximalt antal utförare som ska allokeras i den angivna Spark-poolen för jobbet. No
Drivrutinsstorlek Antal kärnor och minne som ska användas för drivrutinen som anges i den angivna Apache Spark-poolen för jobbet. No

Anteckning

Körningen av parallella Spark Notebook-filer i Azure Synapse pipelines placeras i kö och köras på FIFO-sätt, jobbordningen i kön är enligt tidssekvensen, förfallotiden för ett jobb i kön är 3 dagar. Observera att kö för notebook-filer endast fungerar i synapse-pipelinen.

Lägga till en notebook-fil i Synapse-pipelinen

Välj knappen Lägg till i pipeline i det övre högra hörnet för att lägga till en notebook-fil i en befintlig pipeline eller skapa en ny pipeline.

screenshot-showing-add-notebook-to-pipeline

Skicka parametrar

Ange en parametercell

Om du vill parametrisera anteckningsboken väljer du ellipserna (...) för att få åtkomst till fler kommandon i cellverktygsfältet . Välj sedan Växla parametercell för att ange cellen som parametercell.

screenshot-showing-azure-notebook-toggle-parameter

Azure Data Factory söker efter parametercellen och använder värdena som standardvärden för de parametrar som skickades vid körningen. Körningsmotorn lägger till en ny cell under parametercellen med indataparametrar för att skriva över standardvärdena.

Tilldela parametervärden från en pipeline

När du har skapat en notebook-fil med parametrar kan du köra den från en pipeline med aktiviteten Synapse Notebook. När du har lagt till aktiviteten i pipelinearbetsytan kan du ange parametervärdena under avsnittet Basparametrar på fliken Inställningar .

screenshot-showing-assign-a-parameter

När du tilldelar parametervärden kan du använda pipelineuttrycksspråket eller systemvariablerna.

Läs utdatavärdet för Synapse Notebook-cell

Du kan läsa utdatavärdet för notebook-cellen i nästa aktiviteter genom att följa stegen nedan:

  1. Anropa mssparkutils.notebook.exit API i din Synapse Notebook-aktivitet för att returnera det värde som du vill visa i aktivitetsutdata, till exempel:

    mssparkutils.notebook.exit("hello world") 
    

    Om du sparar notebook-innehållet och återställer pipelinen innehåller notebook-aktivitetsutdata den exitValue som kan användas för följande aktiviteter i steg 2.

  2. Läs exitValue-egenskapen från notebook-aktivitetsutdata. Här är ett exempeluttryck som används för att kontrollera om exitValue som hämtats från notebook-aktivitetsutdata är lika med "hello world":

    screenshot-showing-read-exit-value

Kör en annan Synapse-anteckningsbok

Du kan referera till andra notebook-filer i en Synapse Notebook-aktivitet via anropet %run magic eller mssparkutils notebook-verktyg. Båda stöder kapslingsfunktionsanrop. De viktigaste skillnaderna mellan dessa två metoder som du bör överväga baserat på ditt scenario är:

  • %run magic kopierar alla celler från den refererade anteckningsboken till %run-cellen och delar variabelkontexten. När notebook1 refererar till notebook2 via %run notebook2 och notebook2 anropar en mssparkutils.notebook.exit-funktion stoppas cellkörningen i notebook1. Vi rekommenderar att du använder %run magic när du vill "inkludera" en notebook-fil.
  • mssparkutils notebook-verktyg anropar den refererade notebook-filen som en metod eller en funktion. Variabelkontexten delas inte. När notebook1 refererar till notebook2 via mssparkutils.notebook.run("notebook2") och notebook2 anropar funktionen mssparkutils.notebook.exit fortsätter cellkörningen i notebook1. Vi rekommenderar att du använder notebook-verktyg för mssparkutils när du vill "importera" en notebook-fil.

Se körningshistorik för notebook-aktivitet

Gå till Pipelinekörningar under fliken Övervaka . Du ser den pipeline som du har utlöst. Öppna pipelinen som innehåller notebook-aktivitet för att se körningshistoriken.

Du kan se den senaste notebook-körningsögonblicksbilden, inklusive både cellers indata och utdata genom att välja knappen Öppna anteckningsbok .

Skärmbild som visar anteckningsbokens aktivitetshistorik.

Ögonblicksbild av öppna notebook-filer:

Skärmbild som visar en öppen notebook-ögonblicksbild.

Du kan se notebook-aktivitetsindata eller -utdata genom att välja indata - eller utdataknappen . Om pipelinen misslyckades med ett användarfel markerar du utdata för att kontrollera resultatfältet för att se den detaljerade spårningen av användarfel.

Skärmbild som visar information om användarfel.

Aktivitetsdefinition för Synapse Notebook

Här är JSON-exempeldefinitionen för en Synapse Notebook-aktivitet:

{
    "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"
                }
            }
        }
    }
}

Aktivitetsutdata för Synapse Notebook

Här är JSON-exempel på utdata från en Synapse Notebook-aktivitet:

{
{
    "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"
            }
        ]
    }
}

Kända problem

Om notebook-namnet parametriseras i pipeline notebook-aktiviteten kan notebook-versionen i opublicerad status inte refereras till i felsökningskörningarna.