Activiteiten in een Azure Data Factory-pijplijn vertakken en koppelen met behulp van de Azure-portal

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

In deze zelfstudie maakt u een Data Factory-pijplijn die enkele van de stroombeheerfuncties demonstreert. Deze pijplijn voert een eenvoudige kopieerbewerking uit van een container in Azure Blob Storage naar een andere container in hetzelfde opslagaccount. Als de kopieerbewerking is geslaagd, worden de details over de geslaagde kopieerbewerking (zoals de hoeveelheid geschreven gegevens) via de pijplijn verzonden in een e-mail met een succesbericht. Als de kopieerbewerking is mislukt, worden de details over de mislukte kopieerbewerking (zoals de foutmelding) via de pijplijn verzonden in een e-mail met de foutmelding. In de zelfstudie ziet u hoe u parameters kunt doorgeven.

Een overzicht op hoog niveau van het scenario: Diagram shows Azure Blob Storage, which is the target of a copy, which, on success, sends an email with details or, on failure, sends an email with error details.

In deze zelfstudie voert u de volgende stappen uit:

  • Een data factory maken.
  • Een gekoppelde Azure Storage-service maken
  • Een Azure Blob-gegevensset maken
  • Een pijplijn maken met een kopieeractiviteit en een webactiviteit
  • Verzenden van uitvoer van activiteiten naar latere activiteiten
  • Parameters doorgeven en systeemvariabelen gebruiken
  • Een pijplijnuitvoering starten
  • De uitvoering van de pijplijn en van de activiteit controleren

In deze zelfstudie wordt Azure Portal gebruikt. U kunt andere methoden gebruiken voor interactie met Azure Data Factory. Kijk voor voorbeelden onder 'Quickstarts' (Snelstartgidsen) in de inhoudsopgave.

Vereisten

  • Azure-abonnement. Als u nog geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
  • Een Azure Storage-account. U gebruikt de blob-opslag als bron-gegevensopslag. Als u geen Azure-opslagaccount hebt, raadpleegt u het artikel Een opslagaccount maken om een account te maken.
  • Azure SQL-database. U gebruikt de database als sink-gegevensopslag. Als u geen database in Azure SQL Database hebt, raadpleegt u het artikel Een database in Azure SQL Database maken om te stappen te zien om er een te maken.

Blobtabel maken

  1. Start Kladblok. Kopieer de volgende tekst en sla deze op schijf op in het bestand input.txt.

    John,Doe
    Jane,Doe
    
  2. Gebruik hulpprogramma's zoals Azure Storage Explorer om de volgende stappen uit te voeren:

    1. Maak de container adfv2branch.
    2. Maak de invoermap in de container adfv2branch.
    3. Upload het bestand input.txt naar de container.

Eindpunten voor de e-mailwerkstroom maken

Al u het verzenden van een e-mail wilt activeren, gebruikt u Logic Apps om de werkstroom te definiëren. Zie voor meer informatie over het maken van een Logic App-werkstroom How to create a logic app (Het maken van een logische app).

Werkstroom voor e-mail met succesbericht

Maak een Logic App-werkstroom met de naam CopySuccessEmail. Definieer de werkstroomtrigger als When an HTTP request is received, en voeg de actie Office 365 Outlook – Send an email toe.

Success email workflow

Als aanvraagtrigger vult u het Request Body JSON Schema met de volgende JSON:

{
    "properties": {
        "dataFactoryName": {
            "type": "string"
        },
        "message": {
            "type": "string"
        },
        "pipelineName": {
            "type": "string"
        },
        "receiver": {
            "type": "string"
        }
    },
    "type": "object"
}

De aanvraag in Logic App Designer moet er uitzien zoals de volgende afbeelding:

Logic App designer - request

Pas voor de actie E-mail verzenden de opmaak van de e-mail aan met behulp van de eigenschappen die in het JSON-schema voor de hoofdtekst van de aanvraag worden doorgegeven. Hier volgt een voorbeeld:

Logic App designer - send email action

Sla de werkstroom op. Noteer de URL van de HTTP POST-aanvraag voor uw werkstroom voor de e-mail met het succesbericht:

//Success Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Werkstroom voor e-mail met foutbericht

Volg dezelfde stappen om nog een Logic Apps-werkstroom te maken van CopyFailEmail. In de aanvraagtrigger is het Request Body JSON schema hetzelfde. Wijzig de indeling van uw e-mailbericht net als het Subject om er een e-mail met de foutmelding van te maken. Hier volgt een voorbeeld:

Logic App designer - fail email workflow

Sla de werkstroom op. Noteer de URL van de HTTP POST-aanvraag voor uw werkstroom voor de e-mail met het foutbericht:

//Fail Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Als het goed is, hebt u nu twee werkstroom-URL's:

//Success Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

//Fail Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Een gegevensfactory maken

  1. Start de webbrowser Microsoft Edge of Google Chrome. Op dit moment wordt de Data Factory-gebruikersinterface alleen ondersteund in de webbrowsers Microsoft Edge en Google Chrome.

  2. Selecteer in het linkermenu Een resource maken>Gegevens en analyses>Data factory:

    Data Factory selection in the "New" pane

  3. Voer op de pagina Nieuwe data factoryADFTutorialDataFactory in als naam.

    New data factory page

    De naam van de Azure-gegevensfactory moet wereldwijd uniek zijn. Als u het volgende foutbericht krijgt, wijzigt u de naam van de gegevensfactory (bijvoorbeeld uwnaamADFTutorialDataFactory) en probeert u het opnieuw. Zie het artikel Data factory - Naamgevingsregels voor meer informatie over naamgevingsregels voor Data Factory-artefacten.

    Data factory-naam 'ADFTutorialDataFactory' is niet beschikbaar.

  4. Selecteer het Azure-abonnement waarin u de gegevensfactory wilt maken.

  5. Voer een van de volgende stappen uit voor de Resourcegroep:

  6. Selecteer V2 als de versie.

  7. Selecteer de locatie voor de gegevensfactory. In de vervolgkeuzelijst worden alleen ondersteunde locaties weergegeven. De gegevensopslagexemplaren (Azure Storage, Azure SQL Database, enzovoort) en berekeningen (HDInsight, enzovoort) die worden gebruikt in Data Factory, kunnen zich in andere regio's bevinden.

  8. Selecteer Vastmaken aan dashboard.

  9. Klik op Create.

  10. Op het dashboard ziet u de volgende tegel met de status: Gegevensfactory implementeren.

    deploying data factory tile

  11. Na het aanmaken ziet u de pagina Data Factory zoals weergegeven in de afbeelding.

    Data factory home page

  12. Klik op de tegel Author & Monitor om de Azure Data Factory gebruikersinterface (UI) op een afzonderlijk tabblad te starten.

Een pijplijn maken

In deze stap maakt u een pijplijn met één kopieeractiviteit en twee webactiviteiten. U gebruikt de volgende functies om de pijplijn te maken:

  • Parameters voor de pijplijn die wordt gebruikt voor gegevenssets.
  • Webactiviteit waarmee Logic Apps-werkstromen worden aangeroepen voor het verzenden van e-mail met een succesbericht of foutmelding.
  • Een activiteit verbinden met een andere activiteit (bij slagen en mislukken)
  • De uitvoer van een activiteit gebruiken als invoer voor de volgende activiteit
  1. Klik op de startpagina van de Gebruikersinterface van Data Factory op de tegel Orchestrate .

    Screenshot that shows the ADF home page.

  2. Ga in het venster Eigenschappen voor de pijplijn naar het tabblad Parameters en gebruik de knop Nieuw om de volgende drie parameters toe te voegen van het type Tekenreeks: sourceBlobContainer, sinkBlobContainer en ontvanger.

    • sourceBlobContainer - parameter in de pijplijn die wordt gebruikt voor de bron-blob-gegevensset.
    • sinkBlobContainer - parameter in de pijplijn die wordt gebruikt voor de sink-blob-gegevensset
    • ontvanger - deze parameter wordt gebruikt voor de twee webactiviteiten in de pijplijn waarmee een e-mail met een succesbericht of foutmelding wordt verzonden naar de ontvanger die met deze parameter wordt gespecificeerd.

    New pipeline menu

  3. Vouw in de Activiteiten-werkset de optie Gegevensstroom uit. Gebruik vervolgens slepen-en-neerzetten om de kopieeractiviteit te verplaatsen naar het ontwerpoppervlak voor pijplijnen.

    Drag-drop copy activity

  4. Ga in het venster Eigenschappen voor de kopieeractiviteit onderaan naar het tabblad Bron en klik op + Nieuw. In deze stap maakt u een brongegevensset voor de kopieeractiviteit.

    Screenshot that shows how to create a source dataset for teh copy activity.

  5. Selecteer in het venster Nieuwe gegevensset de optie Azure Blob Storage en klik op Voltooien.

    Select Azure Blob Storage

  6. U ziet een nieuw tabblad met de naam AzureBlob1. Wijzig de naam van de gegevensset in SourceBlobDataset.

    Dataset general settings

  7. Ga in het venster Eigenschappen naar het tabblad Verbinding en klik op Nieuw voor de Gekoppelde service. In deze stap maakt u een gekoppelde service om uw Azure Storage-account te koppelen aan de gegevensfactory.

    Dataset connection - new linked service

  8. Voer in het venster Nieuwe gekoppelde service de volgende stappen uit:

    1. Voer AzureStorageLinkedService in als Naam.
    2. Selecteer uw Azure-opslagaccount als Naam van opslagaccount.
    3. Klik op Opslaan.

    New Azure Storage linked service

  9. Voer @pipeline().parameters.sourceBlobContainer in als de map en emp.txt als de bestandsnaam. U gebruikt de pijplijnparameter sourceBlobContainer om het bestandspad voor de gegevensset in te stellen.

    Source dataset settings

  10. Ga naar het tabblad Pijplijn (of) klik op de pijplijn in de structuurweergave. Controleer of SourceBlobDataset is geselecteerd als Brongegevensset.

Source dataset

  1. Ga in het venster Eigenschappen naar het tabblad Sink en klik op + Nieuw voor Sink-gegevensset. In deze stap maakt u een sink-gegevensset voor de kopieeractiviteit. Dit doet u op dezelfde manier als waarop u de brongegevensset hebt gemaakt.

    New sink dataset button

  2. Selecteer in het venster Nieuwe gegevensset de optie Azure Blob Storage en klik op Voltooien.

  3. Voer op de pagina Algemene instellingen voor de gegevensset SinkBlobDataset in als Naam.

  4. Ga naar het tabblad Verbinding en voer de volgende stappen uit:

    1. Selecteer AzureStorageLinkedService bij Gekoppelde service.

    2. Voer @pipeline().parameters.sinkBlobContainer als de map.

    3. Voer @CONCAT(pipeline().RunId, '.txt') in als bestandsnaam. Voor de expressie wordt de id van de huidige pijplijnuitvoering gebruikt als de bestandsnaam. Zie Systeemvariabelen en Expressietaal voor de lijst met ondersteunde systeemvariabelen en expressies.

      Sink dataset settings

  5. Ga bovenaan naar het tabblad Pijplijn. Vouw Algemeen uit in de Activiteiten-werkset. Gebruik vervolgens slepen-en-neerzetten om een webactiviteit te verplaatsen naar het ontwerpoppervlak voor pijplijnen. Stel de naam van de activiteit in op SendSuccessEmailActivity. De Web Activity (webactiviteit) staat een aanroep toe naar elk REST-eindpunt. Zie voor meer informatie over de activiteit Webactiviteit. Deze pijplijn gebruikt een webactiviteit voor het aanroepen van de Logic Apps-e-mailwerkstroom.

    Drag-drop first Web activity

  6. Ga vanuit het tabblad Algemeen naar het tabblad Instellingen en voer de volgende stappen uit:

    1. Geef bij URL de URL voor de Logic Apps-werkstroom op waarmee de e-mail met het succesbericht wordt verzonden.

    2. Selecteer POST als Methode.

    3. Klik op de koppeling + Koptekst toevoegen in de sectie Kopteksten.

    4. Voeg een koptekst Inhoudstype toe en stel deze in op application/json.

    5. Geef de volgende JSON op als Hoofdtekst.

      {
          "message": "@{activity('Copy1').output.dataWritten}",
          "dataFactoryName": "@{pipeline().DataFactory}",
          "pipelineName": "@{pipeline().Pipeline}",
          "receiver": "@pipeline().parameters.receiver"
      }
      

      De hoofdtekst van het bericht bevat de volgende eigenschappen:

      • Bericht: geeft de waarde van @{activity('Copy1').output.dataWritten door. Leest een eigenschap van de vorige kopieeractiviteit en geeft de waarde van dataWritten door. In het geval waarin het kopiëren mislukt, wordt de uitvoer van de fout doorgegeven in plaats van @{activity('CopyBlobtoBlob').error.message.

      • Naam data factory: geeft de waarde van @{pipeline().DataFactory} door. Dit is een systeemvariabele, zodat u toegang hebt tot de bijbehorende data factory-naam. Zie voor een lijst van systeemvariabelen het artikel System Variables (Systeemvariabelen).

      • Naam pijplijn: geeft de waarde van @{pipeline().Pipeline} door. Dit is ook een systeemvariabele, zodat u toegang hebt tot de bijbehorende pijplijnnaam.

      • Ontvanger: doorgegeven waarde van "@pipeline().parameters.receiver"). Toegang tot de pijplijnparameters.

        Settings for the first Web activity

  7. Verbind de kopieeractiviteit met de webactiviteit door de groene knop naast de kopieeractiviteit te slepen en neer te zetten op de webactiviteit.

    Connect Copy activity with the first Web activity

  8. Gebruik slepen-en-neerzetten om nog een Webactiviteit uit de Activiteiten-werkset te verplaatsen naar het ontwerpoppervlak voor pijplijnen, en stel de naam in op SendFailureEmailActivity.

    Name of the second Web activity

  9. Ga naar het tabblad Instellingen en voer de volgende stappen uit:

    1. Geef bij URL de URL voor de Logic Apps-werkstroom op waarmee de e-mail met de foutmelding wordt verzonden.

    2. Selecteer POST als Methode.

    3. Klik op de koppeling + Koptekst toevoegen in de sectie Kopteksten.

    4. Voeg een koptekst Inhoudstype toe en stel deze in op application/json.

    5. Geef de volgende JSON op als Hoofdtekst.

      {
          "message": "@{activity('Copy1').error.message}",
          "dataFactoryName": "@{pipeline().DataFactory}",
          "pipelineName": "@{pipeline().Pipeline}",
          "receiver": "@pipeline().parameters.receiver"
      }
      

      Settings for the second Web activity

  10. Selecteer Kopieeractiviteit in de pijplijnontwerper en klik op de knop +-> en selecteer Fout.

    Screenshot that shows how to select Error on the Copy activity in the pipeline designer.

  11. Sleep de rode knop naast de kopieeractiviteit naar de tweede webactiviteit SendFailureEmailActivity. U kunt de activiteiten verplaatsen, zodat de pijplijn er uitziet zoals in de volgende afbeelding:

    Full pipeline with all activities

  12. Klik in de werkbalk op de knop Valideren om de pijplijn te valideren. Sluit het venster met de uitvoergegevens van de pijplijnvalidatie door op de knop >> te klikken.

    Validate pipeline

  13. Als u entiteiten (gegevenssets, pijplijnen enzovoort) wilt publiceren in de Data Factory-service, selecteert u Alles publiceren. Wacht tot u het bericht Gepubliceerd ziet.

    Publish

Een pijplijnuitvoering activeren die slaagt

  1. Klik in de werkbalk op Activeren en klik op Nu activeren om een pijplijnuitvoering te activeren.

    Trigger a pipeline run

  2. Voer in het venster Pijplijnuitvoering de volgende stappen uit:

    1. Voer adftutorial/adfv2branch/input in als de parameter sourceBlobContainer.

    2. Voer adftutorial/adfv2branch/output in als de parameter sinkBlobContainer.

    3. Voer een e-mailadres van de ontvanger in.

    4. Klik op Voltooien

      Pipeline run parameters

De geslaagde pijplijnuitvoering controleren

  1. Ga naar het tabblad Controleren aan de linkerkant om de pijplijnuitvoering te controleren. U ziet de pijplijnuitvoering die handmatig door u is geactiveerd. Gebruik de knop Vernieuwen om de lijst te vernieuwen.

    Successful pipeline run

  2. Klik op de eerste koppeling in de kolom Acties om de uitvoeringen van activiteit weer te geven die zijn gekoppeld aan deze pijplijnuitvoering. Als u wilt terugkeren naar de vorige weergave, klikt u bovenaan op Pijplijnen. Gebruik de knop Vernieuwen om de lijst te vernieuwen.

    Screenshot that shows how to view the list of activity runs.

Een pijplijnuitvoering activeren die mislukt

  1. Ga naar het tabblad Bewerken aan de linkerkant.

  2. Klik in de werkbalk op Activeren en klik op Nu activeren om een pijplijnuitvoering te activeren.

  3. Voer in het venster Pijplijnuitvoering de volgende stappen uit:

    1. Voer adftutorial/dummy/input in als de parameter sourceBlobContainer. Controleer of de dummymap niet bestaat in de container adftutorial.
    2. Voer adftutorial/dummy/output in als de parameter sinkBlobContainer.
    3. Voer een e-mailadres van de ontvanger in.
    4. Klik op Voltooien.

De mislukte pijplijnuitvoering controleren

  1. Ga naar het tabblad Controleren aan de linkerkant om de pijplijnuitvoering te controleren. U ziet de pijplijnuitvoering die handmatig door u is geactiveerd. Gebruik de knop Vernieuwen om de lijst te vernieuwen.

    Failure pipeline run

  2. Klik op de Foutkoppeling voor de pijplijnuitvoering voor de details over de fout.

    Pipeline error

  3. Klik op de eerste koppeling in de kolom Acties om de uitvoeringen van activiteit weer te geven die zijn gekoppeld aan deze pijplijnuitvoering. Gebruik de knop Vernieuwen om de lijst te vernieuwen. U ziet dat de kopieeractiviteit in de pijplijn is mislukt. De e-mail met de foutmelding is via de webactiviteit verzonden naar de opgegeven server.

    Activity runs

  4. Klik op de Foutkoppeling in de kolom Acties voor de details over de fout.

    Activity run error

Volgende stappen

In deze zelfstudie hebt u de volgende stappen uitgevoerd:

  • Een data factory maken.
  • Een gekoppelde Azure Storage-service maken
  • Een Azure Blob-gegevensset maken
  • Een pijplijn met een kopieeractiviteit en een webactiviteit maken
  • Verzenden van uitvoer van activiteiten naar latere activiteiten
  • Parameters doorgeven en systeemvariabelen gebruiken
  • Een pijplijnuitvoering starten
  • De uitvoering van de pijplijn en van de activiteit controleren

U kunt nu doorgaan naar de sectie Concepten voor meer informatie over Azure Data Factory.