Transformera data genom att köra en notebook-fil i Synapse
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
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!
Azure Synapse Notebook-aktiviteten i en Synapse-pipeline kör en Synapse-notebook-fil. Den här artikeln bygger på artikeln om datatransformeringsaktiviteter , som visar 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 Synapse Notebook körs på Spark-poolen som väljs i Synapse Notebook.
Lägga till en Synapse Notebook-aktivitet från pipelinearbetsytan
Dra och släpp Synapse Notebook 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\Körstorlek\Dynamiskt allokera executors\Min executors\Max executors\Driver size i inställningarna. Observera att de inställningar 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 det med inställningarna för den konfigurerade sessionen i anteckningsboken.
Property | Beskrivning | Obligatoriskt |
---|---|---|
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 spark-poolen i själva notebook-filen. | Nej |
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. | Nej |
Dynamiskt allokera köre | Den här inställningen mappar till den dynamiska allokeringsegenskapen i Spark-konfigurationen för Spark Application Executors-allokering. | Nej |
Minsta körbara filer | Minsta antal utförare som ska allokeras i den angivna Spark-poolen för jobbet. | Nej |
Maximalt antal körbara filer | Maximalt antal utförare som ska allokeras i den angivna Spark-poolen för jobbet. | Nej |
Drivrutinsstorlek | Antal kärnor och minne som ska användas för drivrutinen som anges i den angivna Apache Spark-poolen för jobbet. | Nej |
Kommentar
Körningen av parallella Spark Notebooks i Azure Synapse-pipelines placeras i kö och körs på ett 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.
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.
Definiera dina parametrar i den här cellen. Det kan vara något så enkelt som:
a = 1
b = 3
c = "Default Value"
Du kan referera till dessa parametrar i andra celler och när du kör notebook-filen för att använda de standardvärden som du anger i parametercellen.
När du kör den här notebook-filen från en pipeline letar Azure Data Factory efter parametercellen och använder de värden som du angav som standardvärden för de parametrar som skickades in vid körningen. Om du tilldelar parametervärden från en pipeline lägger körningsmotorn till en ny cell under parametercellen med indataparametrar för att skriva över standardvärdena.
Tilldela parametrar vä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 parametrarnas värden under avsnittet Basparametrar på fliken Inställningar .
Dricks
Data Factory fyller inte i parametrarna automatiskt. Du måste lägga till dem manuellt. Se till att använda exakt samma namn i både parametercellen i notebook-filen och basparametern i pipelinen.
När du har lagt till parametrarna i aktiviteten skickar Data Factory de värden som du anger i din aktivitet till din notebook-fil och notebook-filen körs med de nya parametervärdena i stället för de standardvärden som du angav i parametercellen.
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:
Anropa mssparkutils.notebook.exit API i din Synapse Notebook-aktivitet för att returnera värdet som du vill visa i aktivitetsutdata, till exempel:
mssparkutils.notebook.exit("hello world")
När du sparar notebook-innehållet och återaktiverar pipelinen innehåller notebook-aktivitetsutdata den exitValue som kan användas för följande aktiviteter i steg 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":
Kör en annan Synapse-anteckningsbok
Du kan referera till andra notebook-filer i en Synapse Notebook-aktivitet genom att anropa %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 notebook-filen till cellen %run 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 en mssparkutils.notebook.exit-funktion fortsätter cellkörningen i notebook1. Vi rekommenderar att du använder notebook-verktygen 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 ögonblicksbilden av notebook-körningen, inklusive både cellers indata och utdata genom att välja knappen Öppna anteckningsbok .
Öppna notebook-ögonblicksbild:
Du kan se in- eller utdata för notebook-aktiviteten 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.
Synapse Notebook-aktivitetsdefinition
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"
}
}
}
}
}
Utdata för Synapse Notebook-aktivitet
Här är JSON-exempel på en Synapse Notebook-aktivitetsutdata:
{
{
"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 inte notebook-versionen i opublicerad status refereras till i felsökningskörningarna.