Condividi tramite


Copiare i dati e inviare notifiche tramite posta elettronica in caso di esito positivo e negativo

APPLICABILE A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Data Factory in Microsoft Fabric è la nuova generazione di Azure Data Factory, con un'architettura più semplice, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con l'integrazione dei dati, iniziare con Fabric Data Factory. I carichi di lavoro di Azure Data Factory esistenti possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

In questa esercitazione si crea una pipeline di Data Factory che illustra alcune funzionalità del flusso di controllo. Questa pipeline esegue una copia semplice da un contenitore in Archiviazione BLOB di Azure a un altro contenitore nello stesso account di archiviazione. Se l'attività di copia ha esito positivo, la pipeline invia i dettagli dell'operazione di copia completata (ad esempio, la quantità di dati scritti) in un messaggio di posta elettronica di operazione riuscita. Se l'attività di copia ha esito negativo, la pipeline invia i dettagli dell'errore di copia (ad esempio, il messaggio di errore) in un messaggio di posta elettronica di operazione non riuscita. Nel corso dell'esercitazione verrà illustrato come passare i parametri.

Panoramica generale dello scenario: Diagramma mostra Archiviazione BLOB di Azure, che è la destinazione di una copia, che, in caso di esito positivo, invia un messaggio di posta elettronica con dettagli o, in caso di errore, invia un messaggio di posta elettronica con i dettagli dell'errore.

In questa esercitazione vengono completati i passaggi seguenti:

  • Creare una fabbrica di dati.
  • Creare un servizio collegato Archiviazione di Azure.
  • Creare un set di dati BLOB Azure
  • Creare una pipeline contenente un'attività di copia e un'attività di Web
  • Inviare gli output delle attività alle attività successive
  • Utilizzare il passaggio di parametri e le variabili di sistema
  • Avviare un'esecuzione della pipeline
  • Monitorare le esecuzioni di pipeline e attività

Questa esercitazione usa il portale di Azure. È possibile usare altri meccanismi per interagire con Azure Data Factory, fare riferimento a "Guide introduttive" nel sommario.

Prerequisiti

  • sottoscrizione Azure. Se non si ha una sottoscrizione Azure, creare un account free prima di iniziare.
  • Archiviazione di Azure account. Usi l'archivio BLOB come archivio dati di origine. Se non si ha un account di archiviazione Azure, vedere l'articolo Creare un account di archiviazione per la procedura per crearne uno.
  • database SQL di Azure. Usare il database come archivio dati sink. Se non si dispone di un database in database SQL di Azure, vedere l'articolo Creare un database in database SQL di Azure per la procedura per crearne uno.

Creare la tabella BLOB

  1. Avviare il Blocco note. Copiare il testo seguente e salvarlo come file input.txt sul disco.

    John,Doe
    Jane,Doe
    
  2. Usare strumenti come Azure Storage Explorer seguire questa procedura:

    1. Creare il contenitore adfv2branch.
    2. Creare la cartella di input nel contenitore adfv2branch.
    3. Caricare il file input.txt nel contenitore.

Creare gli endpoint del flusso di lavoro email

Per attivare l'invio di un messaggio di posta elettronica dalla pipeline, usare App per la logica di Azure per definire il flusso di lavoro. Per altre informazioni sulla creazione di un flusso di lavoro di un'app per la logica, vedere Creare un flusso di lavoro di esempio di un'app per la logica A consumo.

Flusso di lavoro email di successo

Creare un flusso di lavoro dell'app di logica di consumo denominato CopySuccessEmail. Aggiungere il trigger request denominato Quando viene ricevuta una richiesta HTTP e aggiungere l'azione Office 365 Outlook denominata Send an email. Se richiesto, accedere all'account Office 365 Outlook.

Mostra uno screenshot del flusso di lavoro del messaggio di posta elettronica di operazione riuscita.

Per il trigger Richiesta, compilare la casella Schema JSON del corpo della richiesta con il codice JSON seguente:

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

Il trigger Richiesta nella finestra di progettazione del flusso di lavoro dovrebbe essere simile all'immagine seguente:

Mostra uno screenshot della finestra di progettazione del flusso di lavoro con trigger di richiesta.

Per l'azione Invia un messaggio di posta elettronica , personalizzare la modalità di formattazione del messaggio di posta elettronica, usando le proprietà passate nello schema JSON del corpo della richiesta. Ecco un esempio:

Mostra uno screenshot della finestra di progettazione del flusso di lavoro con l'azione denominata Invia un messaggio di posta elettronica.

Salvare il flusso di lavoro. Prendere nota dell'URL della richiesta HTTP Post per il flusso di lavoro del messaggio di posta elettronica di operazione riuscita:

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

Flusso di lavoro email non riuscito

Seguire la stessa procedura per creare un altro flusso di lavoro dell'app per la logica denominato CopyFailEmail. Nel trigger Richiesta il valore schema JSON del corpo della richiesta è lo stesso. Modificare la formattazione del messaggio di posta elettronica, ad esempio Subject, per adattarlo a un messaggio di posta elettronica di operazione non riuscita. Ecco un esempio:

Mostra uno screenshot della finestra di progettazione del flusso di lavoro con il flusso di lavoro di posta elettronica non riuscita.

Salvare il flusso di lavoro. Prendere nota dell'URL della richiesta HTTP Post per il flusso di lavoro del messaggio di posta elettronica di operazione non riuscita:

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

Si avranno ora due URL di flusso di lavoro:

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

Creare una data factory

  1. Avviare Microsoft Edge o Google Chrome Web browser. Attualmente, l'interfaccia utente di Data Factory è supportata solo in Microsoft Edge e nei Web browser Google Chrome.

  2. Espandere il menu in alto a sinistra e selezionare Crea una risorsa. Selezionare quindi Analytics>Data Factory :

    Mostra uno screenshot della selezione di Data Factory nel pannello

  3. Nella pagina Nuova data factory immettere ADFTutorialDataFactory per Nome.

    Nuova pagina della data factory

    Il nome della data factory Azure deve essere globalmente univoco. Se viene visualizzato l'errore seguente, modificare il nome della data factory, ad esempio, nomeutenteADFTutorialDataFactory, e provare di nuovo a crearla. Per informazioni sulle regole di denominazione per gli elementi di Data Factory, vedere l'articolo Data Factory - Regole di denominazione.

    Il nome della data factory "ADFTutorialDataFactory" non è disponibile.

  4. Selezionare la sottoscrizione di Azure in cui si vuole creare la fabbrica di dati.

  5. Per il gruppo di risorse, eseguire una di queste operazioni:

  6. Selezionare V2 per la versione.

  7. Selezionare la località per la Data Factory. Nell'elenco a discesa vengono mostrate solo le località supportate. Gli archivi dati (Archiviazione di Azure, database SQL di Azure e così via) e i calcoli (HDInsight e così via) usati dalla data factory possono trovarsi in altre aree.

  8. Selezionare Aggiungi al dashboard.

  9. Cliccare su Crea.

  10. Al termine della creazione verrà visualizzata la pagina Data factory, come illustrato nell'immagine.

    Mostra uno screenshot della home page del Data Factory.

  11. Fare clic su Aprire Azure Data Factory Studio riquadro per avviare l'interfaccia utente Azure Data Factory in una scheda separata.

Creare una pipeline

In questo passaggio viene creata una pipeline con una attività Copy e due attività Web. Vengono usate le funzionalità seguenti per creare la pipeline:

  • Parametri della pipeline a cui accedono i dataset.
  • Attività Web per richiamare i flussi di lavoro delle app per la logica per inviare messaggi di posta elettronica di operazione riuscita o non riuscita.
  • Connessione di un'attività con un'altra attività (in caso di esito positivo e negativo)
  • Uso dell'output di un'attività come input per l'attività successiva
  1. Nella home page dell'interfaccia utente di Data Factory fare clic sul riquadro Orchestrate .In the home page of Data Factory UI, click the Orchestrate tile.

    Mostra uno screenshot della home page della data factory con il riquadro Orchestrate evidenziato.

  2. Nella finestra delle proprietà per la pipeline passare alla scheda Parametri e usare il pulsante Nuovo per aggiungere i tre parametri seguenti di tipo String: sourceBlobContainer, sinkBlobContainer e receiver.

    • sourceBlobContainer: parametro nella pipeline utilizzato dal set di dati del BLOB di origine.
    • sinkBlobContainer - parametro nella pipeline utilizzato dal set di dati del BLOB sink.
    • receiver : questo parametro viene usato dalle due attività Web nella pipeline che inviano messaggi di posta elettronica di esito positivo o negativo al ricevitore il cui indirizzo di posta elettronica è specificato da questo parametro.

    Mostra uno screenshot del menu Nuova pipeline.

  3. Nella casella degli strumenti Attività cercare Copia e trascinare l'attività Copia nell'area di progettazione della pipeline.

    Mostra uno screenshot che illustra come trascinare l'attività di copia nella finestra di progettazione della pipeline.

  4. Selezionare l'attività Copia trascinata nell'area di progettazione della pipeline. Nella finestra Proprietà per l'attività Copia nella parte inferiore passare alla scheda Origine e fare clic su + Nuovo. In questa attività viene creato un set di dati di origine per l'attività di copia.

    Screenshot che mostra come creare un set di dati di origine per l'attività di copia.

  5. Nella finestra Nuovo set di dati selezionare la scheda Azure nella parte superiore e quindi scegliere Archiviazione BLOB di Azure e selezionare Continue.

    Mostra uno screenshot del pulsante

  6. Nella finestra Seleziona formato scegliere DelimitedText e selezionare Continua.

    Mostra uno screenshot del

  7. Verrà visualizzata una nuova scheda denominata Imposta proprietà. Modificare il nome del set di dati in SourceBlobDataset. Selezionare il menu a tendina Linked Service e scegliere +Nuovo per creare un nuovo Linked Service al set di dati di origine.

    Mostra uno screenshot della finestra 'Imposta proprietà' per il set di dati, con il pulsante '+Nuovo' evidenziato sotto il menu a discesa 'Servizio collegato'.**

  8. Verrà visualizzata la finestra Nuovo servizio collegato in cui è possibile compilare le proprietà necessarie per il servizio collegato.

    Mostra uno screenshot della finestra di connessione del set di dati con il pulsante nuovo servizio collegato evidenziato.

  9. Nella finestra New Linked Service (Nuovo servizio collegato) completare questa procedura:

    1. Immettere AzureStorageLinkedService per Nome.
    2. Seleziona il tuo account di archiviazione Azure per il Storage account name.
    3. Cliccare su Crea.
  10. Nella finestra Imposta proprietà visualizzata successivamente selezionare Apri questo set di dati per immettere un valore con parametri per il nome del file.

    Mostra uno screenshot del set di dati

  11. Immettere @pipeline().parameters.sourceBlobContainer per la cartella e emp.txt per il nome file.

    Mostra uno screenshot delle impostazioni del set di dati di origine.

  12. Tornare alla scheda pipeline (o fare clic sulla visualizzazione ad albero a sinistra) e selezionare l'attività Copy nella finestra di progettazione. Verificare che il nuovo set di dati sia selezionato per Set di dati origine.

    Mostra uno screenshot del set di dati di origine.

  13. Nella finestra delle proprietà passare alla scheda Sink e fare clic su + Nuovo per Sink Dataset (Set di dati sink). In questo passaggio viene creato un set di dati sink per l'attività di copia con una procedura simile a quella per il set di dati di origine.

    Mostra uno screenshot del pulsante nuovo set di dati del sink

  14. Nella finestra Nuovo set di dati selezionare Archiviazione BLOB di Azure e fare clic su Continue, quindi selezionare di nuovo DelimitedText nella finestra Selezionare il formato e fare clic su Continue di nuovo.

  15. Nella pagina Imposta proprietà per il set di dati immettere SinkBlobDataset per Nome e selezionare AzureStorageLinkedService per LinkedService.

  16. Espandere la sezione Avanzate della pagina delle proprietà e selezionare Apri questo set di dati.

  17. Nella scheda Connessione del set di dati, modificare il percorso del file. Immettere @pipeline().parameters.sinkBlobContainer per la cartella e @concat(pipeline().RunId, '.txt') per il nome del file. L'espressione usa l'ID dell'esecuzione corrente della pipeline per il nome del file. Per l'elenco delle variabili di sistema e delle espressioni supportate, vedere Variabili di sistema e Linguaggio delle espressioni.

    Mostra uno screenshot delle impostazioni del set di dati Sink.

  18. Tornare alla scheda pipeline in alto. Cerca 'Web' nella barra di ricerca, e trascina un'attività Web nell'area di progettazione della pipeline. Impostare il nome dell'attività su SendSuccessEmailActivity. L'attività Web consente una chiamata a qualsiasi endpoint REST. Per altre informazioni sull'attività, vedere l'articolo relativo all'attività Web. Questa pipeline usa un'attività Web per chiamare il flusso di lavoro di Logic Apps per le email.

    Mostra uno screenshot che illustra come trascinare la prima attività web.

  19. Passare alla scheda Impostazioni dalla scheda Generale e seguire questa procedura:

    1. Per URL, specificare l'URL per il flusso di lavoro delle app logiche che invia l'email di conferma di avvenuto successo.

    2. Selezionare POST per Metodo.

    3. Fare clic sul collegamento + Aggiungi intestazione nella sezione Intestazioni.

    4. Aggiungere un'intestazione Tipo contenuto e impostarla su application/json.

    5. Specificare il codice JSON seguente per Corpo.

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

      Il corpo del messaggio contiene le proprietà seguenti:

      • Messaggio - Passa il valore di @{activity('Copy1').output.dataWritten. Accede a una proprietà della precedente attività di copia e passa il valore di dataWritten. In caso di esito negativo, passa l'output di errore al posto di @{activity('CopyBlobtoBlob').error.message.

      • Nome della Data Factory - Valore di passaggio di @{pipeline().DataFactory} Questa è una variabile di sistema che consente di accedere al nome della data factory corrispondente. Per un elenco delle variabili di sistema, vedere l'articolo relativo alle variabili di sistema.

      • Nome pipeline - Passa il valore di @{pipeline().Pipeline}. È anche questa una variabile di sistema, che consente di accedere al nome di pipeline corrispondente.

      • Destinatario - Passa il valore di "@pipeline().parameters.receiver"). Accesso ai parametri della pipeline.

        Mostra uno screenshot delle impostazioni per la prima attività Web.

  20. Connettere l'attività Copy all'attività Web trascinando il pulsante della casella di controllo verde accanto al attività Copy ed eliminando l'attività Web.

     Mostra uno screenshot che illustra come connettere l'attività Copy con la prima attività Web.

  21. Trascinare un'altra attività Web dalla casella degli strumenti Attività all'area di progettazione della pipeline e impostare nome su SendFailureEmailActivity.

    Mostra uno screenshot del nome della seconda attività Web.

  22. Passare alla scheda Impostazioni e seguire questa procedura:

    1. Per URL, specificare l'URL per il flusso di lavoro delle app logiche che invia l'email di errore.

    2. Selezionare POST per Metodo.

    3. Fare clic sul collegamento + Aggiungi intestazione nella sezione Intestazioni.

    4. Aggiungere un'intestazione Tipo contenuto e impostarla su application/json.

    5. Specificare il codice JSON seguente per Corpo.

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

      Mostra uno screenshot delle impostazioni per la seconda attività Web.

  23. Selezionare il pulsante X rosso sul lato destro dell'attività Copia nel progettista di pipeline e trascinarlo sull'attività SendFailureEmailActivity appena creata.

    Screenshot che mostra come selezionare l'opzione di errore per l'attività di copia nella finestra di progettazione della pipeline.

  24. Per convalidare la pipeline, fare clic sul pulsante Convalida sulla barra degli strumenti. Chiudere la finestra Pipeline Validation Output (Output di convalida della pipeline) facendo clic sul pulsante >>.

    Mostra uno screenshot del pulsante Convalida pipeline.

  25. Per pubblicare le entità (set di dati, pipeline e così via) nel servizio Data Factory, selezionare Pubblica tutti. Attendere fino alla visualizzazione del messaggio Pubblicazione riuscita.

    Mostra uno screenshot del pulsante Pubblica nel portale di Data Factory.

Attivare un'esecuzione della pipeline con esito positivo

  1. Per attivare un'esecuzione della pipeline, fare clic su Trigger sulla barra degli strumenti e quindi su Trigger Now (Attiva adesso).

    Mostra uno screenshot del pulsante Trigger Now (Attiva adesso).

  2. Nella finestra Pipeline Run (Esecuzioni di pipeline) seguire questa procedura:

    1. Immettere adftutorial/adfv2branch/input per il parametro sourceBlobContainer.

    2. Immettere adftutorial/adfv2branch/output per il parametro sinkBlobContainer.

    3. Immettere un indirizzo di posta elettronica del destinatario.

    4. Fare clic su Fine

      Parametri di esecuzione delle pipeline

Monitorare l'esecuzione della pipeline con esito positivo

  1. Per monitorare l'esecuzione della pipeline, passa alla scheda Monitor a sinistra. Viene visualizzata l'esecuzione della pipeline attivata manualmente in precedenza. Usare il pulsante Aggiorna per aggiornare l'elenco.

    Esecuzione riuscita della pipeline

  2. Per visualizzare l'esecuzione delle attività associate a questa esecuzione della pipeline, fare clic sul primo collegamento nella colonna Azioni. È possibile tornare alla visualizzazione precedente facendo clic su Pipeline in alto. Usare il pulsante Aggiorna per aggiornare l'elenco.

    Screenshot che mostra come visualizzare l'elenco delle esecuzioni di attività.

Attivare un'esecuzione della pipeline con esito negativo

  1. Passare alla scheda Modifica a sinistra.

  2. Per attivare un'esecuzione della pipeline, fare clic su Trigger sulla barra degli strumenti e quindi su Trigger Now (Attiva adesso).

  3. Nella finestra Pipeline Run (Esecuzioni di pipeline) seguire questa procedura:

    1. Immettere adftutorial/dummy/input per il parametro sourceBlobContainer. Assicurarsi che la cartella fittizia non esista nel contenitore adftutorial.
    2. Immettere adftutorial/dummy/output per il parametro sinkBlobContainer.
    3. Immettere un indirizzo di posta elettronica del destinatario.
    4. Fare clic su Fine.

Monitorare l'esecuzione della pipeline non riuscita

  1. Per monitorare l'esecuzione della pipeline, selezionare la scheda Monitoraggio a sinistra. Viene visualizzata l'esecuzione della pipeline attivata manualmente in precedenza. Usare il pulsante Aggiorna per aggiornare l'elenco.

    Esecuzione della pipeline non riuscita

  2. Fare clic sul collegamento Errore relativo all'esecuzione della pipeline per visualizzare i dettagli dell'errore.

    Errore della pipeline

  3. Per visualizzare le esecuzioni delle attività associate a questa esecuzione della pipeline, fare clic sul primo collegamento della colonna Azioni. Usare il pulsante Aggiorna per aggiornare l'elenco. Si noti che l'attività di copia nella pipeline non è riuscita. L'attività Web è riuscita a inviare il messaggio di posta elettronica di errore al destinatario specificato.

    Esecuzioni di attività

  4. Fare clic sul collegamento Errore nella colonna Azioni per visualizzare informazioni dettagliate sull'errore.

    Errore di esecuzione dell'attività

In questa esercitazione sono stati eseguiti i passaggi seguenti:

  • Creare una fabbrica di dati.
  • Creare un servizio collegato Archiviazione di Azure.
  • Creare un set di dati BLOB Azure
  • Creare una pipeline contenente un'attività di copia e un'attività Web
  • Inviare gli output delle attività alle attività successive
  • Utilizzare il passaggio di parametri e le variabili di sistema
  • Avviare un'esecuzione della pipeline
  • Monitorare le esecuzioni di pipeline e attività

È ora possibile passare alla sezione Concetti per altre informazioni sulle Azure Data Factory.