Delen via


Gegevens transformeren door een Synapse-notebook te runnen

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Aanbeveling

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 activiteit van het Synapse-notebook draait op de Spark-pool die in het Synapse-notebook is geselecteerd.

Een Synapse-notebookactiviteit toevoegen vanuit pijplijncanvas

Sleep Synapse-notebook onder Activiteiten op het Synapse-pijpleiding-canvas. Selecteer het Synapse-notitieblokactiviteitenvak 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\Dynamisch uitvoerders toewijzen\Min executors\Max executors\Driver size\Authentication in instellingen. 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.

schermafbeelding waarin de activiteit 'notebook maken' wordt getoond

Eigendom Beschrijving Vereist
Sparkpool 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
Dynamisch uitvoerders toewijzen Deze instelling komt overeen met de eigenschap dynamische toewijzing in de Spark-configuratie voor de 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
Drivergrootte Aantal kernen en het geheugen die moet worden gebruikt voor het stuurprogramma dat in de gespecificeerde Apache Spark-pool voor de taak is opgegeven. Nee
Authenticatie Kan worden geverifieerd met behulp van een door het systeem toegewezen beheerde identiteit of een door de gebruiker toegewezen beheerde identiteit. Nee

Notitie

De uitvoering van parallelle Spark Notebooks in Azure Synapse-pijplijnen wordt in een wachtrij geplaatst en in een FIFO-volgorde uitgevoerd. De volgorde van de taken in de wachtrij is volgens de tijdreeks, en de verlooptijd van een taak in de wachtrij is 3 dagen. Let op: de wachtrij voor notebooks werkt alleen in een 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.

schermopname van notebook aan pipeline toevoegen

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 parametercel in-/uitschakelen om de cel aan te wijzen als de parametercel.

schermopname van de parameter azure-notebook-toggle-parameter

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.

Wijs parameters toe vanuit een pijplijn

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 .

schermopname die toewijzing van een parameter toont

Aanbeveling

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:

  1. 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") 
    

    Door de inhoud van het notitieblok op te slaan en de pijplijn opnieuw te activeren, zal de uitvoer van de notebookactiviteit de exitValue bevatten die kan worden gebruikt voor de volgende activiteiten in stap 2.

  2. Lees de eigenschap exitValue uit de uitvoer van de notebook-activiteit. 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':

    schermopname van -read-exit-value

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 een mssparkutils.notebook.exit functie aanroept, 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 in notebook2 een mssparkutils.notebook.exit functie wordt 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 het notitieblok bekijken, inclusief zowel de invoer als de uitvoer van cellen door de knop 'Notitieblok openen' te selecteren.

Schermopname van de activiteitengeschiedenis van het notitieblok.

Momentopname van notitieblok openen:

Schermopname van een momentopname van een geopend notitieboek.

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.

Schermopname van de foutdetails van de gebruiker.

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 Synapse-notebookactiviteit-uitvoer:

{
{
    "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 Pijplijnnotitieblok-activiteit, kan er niet worden verwezen naar de notebookversie in niet-gepubliceerde staat tijdens de uitvoeringen voor foutopsporing.