Delen via


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 .

De Azure Synapse-notebookactiviteit in een Synapse-pijplijn voert een Synapse-notebook uit in uw Azure Synapse-werkruimte. 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.

schermopname met create-notebook-activity

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.

schermopname van toevoegen-notebook-to-pipeline

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.

schermopname van de parameter azure-notebook-toggle-parameter

Azure Data Factory zoekt naar de parametercel en gebruikt de waarden als standaardwaarden voor de parameters die tijdens de uitvoering zijn doorgegeven. De uitvoeringsengine voegt 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 .

schermopname van -assign-a-parameter

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

    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.

  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':

    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 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.

Schermopname van de activiteitengeschiedenis van het notitieblok.

Momentopname van notitieblok openen:

Schermopname van een geopende momentopname van een notitieblok.

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 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.