Gegevens transformeren door een Synapse-notebook uit te voeren
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
Met de Azure Synapse-notebookactiviteit in een Synapse-pijplijn wordt een Synapse-notebook uitgevoerd. Dit artikel is gebaseerd op het artikel over activiteiten voor gegevenstransformatie , waarin een algemeen overzicht wordt weergegeven van de gegevenstransformatie en de ondersteunde transformatieactiviteiten.
Een Synapse-notebookactiviteit maken
U kunt rechtstreeks vanuit het Synapse-pijplijncanvas of vanuit de notebook-editor een Synapse-notebookactiviteit maken. De Synapse-notebookactiviteit wordt uitgevoerd in de Spark-pool die wordt gekozen in het Synapse-notebook.
Een Synapse-notebookactiviteit toevoegen vanuit pijplijncanvas
Sleep synapse-notebook onder Activiteiten naar het Synapse-pijplijncanvas. Selecteer het synapse-activiteitenvak en configureer de inhoud van het notitieblok voor de huidige activiteit in de instellingen. U kunt een bestaand notitieblok selecteren in de huidige werkruimte of een nieuw notitieblok toevoegen.
Als u een bestaand notitieblok selecteert in de huidige werkruimte, kunt u op de knop Openen klikken om de pagina van het notitieblok rechtstreeks te openen.
(Optioneel) U kunt ook de Spark-pool opnieuw configureren\Executorgrootte\Executors\Min executors\Min executors\Max executors\Driver size in settings. Het moet worden opgemerkt dat de instellingen die hier opnieuw zijn geconfigureerd, de instellingen van de geconfigureerde sessie in Notebook vervangen. Als er niets is ingesteld in de instellingen van de huidige notebookactiviteit, wordt deze uitgevoerd met de instellingen van de configuratiesessie in dat notebook.
Eigenschappen | Beschrijving | Vereist |
---|---|---|
Spark-pool | Verwijzing naar de Spark-pool. U kunt Een Apache Spark-pool selecteren in de lijst. Als deze instelling leeg is, wordt deze uitgevoerd in de Spark-pool van het notebook zelf. | Nee |
Grootte van uitvoerder | Aantal kernen en geheugen dat moet worden gebruikt voor uitvoerders die zijn toegewezen in de opgegeven Apache Spark-pool voor de sessie. | Nee |
Uitvoerders dynamisch toewijzen | Deze instelling wordt toegewezen aan de eigenschap dynamische toewijzing in de Spark-configuratie voor toewijzing van spark-toepassingsexecutors. | Nee |
Min.uitvoerders | Minimum aantal uitvoerders dat moet worden toegewezen in de opgegeven Spark-pool voor de taak. | Nee |
Maximum aantal uitvoerders | Maximum aantal uitvoerders dat moet worden toegewezen in de opgegeven Spark-pool voor de taak. | Nee |
Grootte van stuurprogramma | Aantal kernen en het geheugen die moet worden gebruikt voor het stuurprogramma dat in de gespecificeerde Apache Spark-pool voor de taak is opgegeven. | Nr. |
Notitie
De uitvoering van parallelle Spark Notebooks in Azure Synapse-pijplijnen wordt in de wachtrij geplaatst en uitgevoerd op een FIFO-manier, takenvolgorde in de wachtrij is volgens de tijdreeks, de verlooptijd van een taak in de wachtrij is 3 dagen. Let op: wachtrij voor notebook werkt alleen in synapse-pijplijn.
Een notebook toevoegen aan Synapse-pijplijn
Selecteer de knop Toevoegen aan pijplijn in de rechterbovenhoek om een notitieblok toe te voegen aan een bestaande pijplijn of om een nieuwe pijplijn te maken.
Parameters doorgeven
Een parametercel aanwijzen
Als u uw notitieblok wilt parameteriseren, selecteert u het beletselteken (...) om toegang te krijgen tot de meer opdrachten op de werkbalk van de cel. Selecteer vervolgens De parametercel in-/uitschakelen om de cel aan te wijzen als de parametercel.
Definieer uw parameters in deze cel. Het kan iets eenvoudigs zijn als:
a = 1
b = 3
c = "Default Value"
U kunt verwijzen naar deze parameters in andere cellen en wanneer u het notebook uitvoert om de standaardwaarden te gebruiken die u in de parametercel opgeeft.
Wanneer u dit notebook uitvoert vanuit een pijplijn, zoekt Azure Data Factory naar de parametercel en gebruikt u de waarden die u hebt opgegeven als standaardwaarden voor de parameters die tijdens de uitvoering zijn doorgegeven. Als u parameters uit een pijplijn toewijst, voegt de uitvoeringsengine een nieuwe cel toe onder de parametercel met invoerparameters om de standaardwaarden te overschrijven.
Parameters uit een pijplijn toewijzen
Nadat u een notebook met parameters hebt gemaakt, kunt u dit uitvoeren vanuit een pijplijn met de Synapse-notebookactiviteit. Nadat u de activiteit aan uw pijplijncanvas hebt toegevoegd, kunt u de parameterswaarden instellen onder de sectie Basisparameters op het tabblad Instellingen .
Tip
Data Factory vult de parameters niet automatisch in. U moet ze handmatig toevoegen. Zorg ervoor dat u dezelfde naam gebruikt in zowel de parameterscel in het notebook als de basisparameter in de pijplijn.
Nadat u uw parameters aan uw activiteit hebt toegevoegd, worden de waarden die u in uw activiteit opgeeft doorgegeven aan uw notebook. Uw notebook wordt uitgevoerd met deze nieuwe parameterwaarden in plaats van de standaardwaarden die u hebt opgegeven in de parametercel.
Wanneer u parameterwaarden toewijst, kunt u de taal van de pijplijnexpressie of systeemvariabelen gebruiken.
Uitvoerwaarde van Synapse-notebookcel lezen
U kunt de uitvoerwaarde van de notebookcel in de volgende activiteiten lezen door de onderstaande stappen uit te voeren:
Roep mssparkutils.notebook.exit-API aan in uw Synapse-notebookactiviteit om de waarde te retourneren die u wilt weergeven in de activiteitsuitvoer, bijvoorbeeld:
mssparkutils.notebook.exit("hello world")
Het opslaan van de inhoud van het notitieblok en het opnieuw activeren van de pijplijn, bevat de uitvoer van de notebookactiviteit de exitValue die kan worden gebruikt voor de volgende activiteiten in stap 2.
Lees de eigenschap exitValue uit uitvoer van notebookactiviteit. Hier volgt een voorbeeldexpressie die wordt gebruikt om te controleren of de exitValue die is opgehaald uit de uitvoer van de notebookactiviteit gelijk is aan 'hallo wereld':
Een ander Synapse-notebook uitvoeren
U kunt verwijzen naar andere notebooks in een Synapse-notebookactiviteit via het aanroepen van %run magic of mssparkutils notebook utilities. Beide ondersteunen geneste functie-aanroepen. De belangrijkste verschillen van deze twee methoden die u moet overwegen op basis van uw scenario zijn:
- %run magic kopieert alle cellen uit het notebook waarnaar wordt verwezen naar de %run-cel en deelt de variabelecontext. Wanneer notebook1 verwijst naar notebook2 via
%run notebook2
en notebook2 wordt een mssparkutils.notebook.exit-functie aangeroepen, wordt de uitvoering van de cel in notebook1 gestopt. U wordt aangeraden %run magic te gebruiken wanneer u een notebookbestand wilt 'opnemen'. - mssparkutils notebook hulpprogramma's roept het notebook waarnaar wordt verwezen aan als een methode of een functie. De variabelecontext wordt niet gedeeld. Wanneer notebook1 verwijst naar notebook2 via
mssparkutils.notebook.run("notebook2")
en notebook2 wordt een mssparkutils.notebook.exit-functie aangeroepen, wordt de uitvoering van de cel in notebook1 voortgezet. U wordt aangeraden mssparkutils notebook-hulpprogramma's te gebruiken wanneer u een notebook wilt 'importeren'.
Uitvoeringsgeschiedenis van notebookactiviteit bekijken
Ga naar Pijplijnuitvoeringen op het tabblad Monitor . U ziet de pijplijn die u hebt geactiveerd. Open de pijplijn met notebookactiviteit om de uitvoeringsgeschiedenis te bekijken.
U kunt de meest recente momentopname van de notebookuitvoering bekijken, inclusief zowel de invoer als de uitvoer van cellen door de knop Notitieblok openen te selecteren.
Momentopname van notitieblok openen:
U kunt de invoer of uitvoer van de notebookactiviteit zien door de invoer - of uitvoerknop te selecteren. Als uw pijplijn is mislukt met een gebruikersfout, selecteert u de uitvoer om het resultaatveld te controleren om de gedetailleerde tracering van gebruikersfouten te bekijken.
Synapse Notebook-activiteitsdefinitie
Hier volgt de voorbeeld-JSON-definitie van een Synapse-notebookactiviteit:
{
"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"
}
}
}
}
}
Uitvoer van Synapse-notebookactiviteit
Hier volgt de voorbeeld-JSON van een Uitvoer van een Synapse-notebookactiviteit:
{
{
"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"
}
]
}
}
Bekende problemen
Als de naam van het notitieblok is geparametriseerd in de activiteit Pijplijnnotitieblok, kan de notebookversie met de niet-gepubliceerde status niet worden verwezen in de uitvoeringen voor foutopsporing.