Condividi tramite


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

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

In questa esercitazione si crea una pipeline di Data Factory che illustra alcune funzionalità del flusso di controllo. La pipeline esegue una semplice copia da un contenitore nell'archivio 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 che mostra l'Archiviazione BLOB di Azure, che è la destinazione di una copia, che, in caso di esito positivo, invia un messaggio di posta elettronica con i 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 data factory.
  • Creare un servizio collegato Archiviazione di Azure
  • Creare un set di dati del BLOB di Azure
  • Creare una pipeline contenente un'attività 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à

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

Prerequisiti

  • Sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
  • Account di archiviazione di Azure. Usare l'archivio BLOB come archivio dati di origine. Se non si ha un account di archiviazione di Azure, vedere l'articolo Creare un account di archiviazione per informazioni su come crearne uno.
  • Database SQL di Azure. Usare il database come archivio dati sink. Se non si ha un database nel database SQL di Azure, vedere la procedura per crearne uno nell'articolo Creare un database nel database SQL di Azure.

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 per 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 del messaggio di posta elettronica

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 dell'app per la logica, vedere Creare un flusso di lavoro di app per la logica a consumo di esempio.

Flusso di lavoro del messaggio di posta elettronica di operazione riuscita

Creare un flusso di lavoro dell'app per la logica a consumo denominato CopySuccessEmail. Aggiungere il trigger richiesta denominato Quando viene ricevuta una richiesta HTTP e aggiungere l'azione di Office 365 Outlook denominata Invia un messaggio di posta elettronica. Se richiesto, accedere all'account di Office 365 Outlook.

Mostra uno screenshot del flusso di lavoro Messaggio di posta elettronica riuscito.

Per il trigger Richiesta, compilare la casella Request Body JSON Schema (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 del messaggio di posta elettronica di operazione non riuscita

Seguire la stessa procedura per creare un altro flusso di lavoro dell'app per la logica denominato CopyFailEmail. Nel trigger Richiesta il valore dello 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 il Web browser Microsoft Edge o Google Chrome. L'interfaccia utente di Data Factory è attualmente supportata solo nei Web browser Microsoft Edge e Google Chrome.

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

    Mostra uno screenshot del

    Mostra uno screenshot della selezione di Data Factory in

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

    Pagina Nuova data factory

    Il nome della data factory di Azure deve essere univoco a livello globale. 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 creare la data factory.

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

  6. Selezionare V2 per version.

  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 le risorse di calcolo (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 della data factory.

  11. Fare clic sul riquadro Apri Azure Data Factory Studio per avviare l'interfaccia utente di Azure Data Factory in una scheda separata.

Creare una pipeline

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

  • Parametri per la pipeline a cui accedono i set di dati.
  • 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 utilizzata 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 e rilasciare 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, quindi scegliere Archiviazione BLOB di Azure e selezionare Continua.

    Mostra uno screenshot del pulsante di selezione Archiviazione BLOB di Azure.

  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 l'elenco a discesa Servizio collegato e scegliere +Nuovo per creare un nuovo servizio collegato nel set di dati di origine.

    Mostra uno screenshot del

  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. Selezionare l'account di archiviazione di Azure per Nome account di archiviazione.
    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 della pipeline (o fare clic sulla pipeline nella visualizzazione albero a sinistra) e selezionare l'attività Copia nella finestra di progettazione. Verificare che il nuovo set di dati sia selezionato per Set di dati di 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 del nuovo set di dati sink

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

  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 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 attuale 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 nella parte superiore. Cercare Web nella casella di ricerca e trascinare 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 app per la logica per il messaggio di posta elettronica.

    Mostra uno screenshot che illustra come trascinare e rilasciare 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 di app per la logica che invia il messaggio di posta elettronica di operazione riuscita.

    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:

      • Message - Passaggio del 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 invece l'output di errore di @{activity('CopyBlobtoBlob').error.message.

      • Nome data factory: passaggio del valore di Si tratta di una variabile di @{pipeline().DataFactory} 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: passaggio del valore di @{pipeline().Pipeline}. È anche questa una variabile di sistema, che consente di accedere al nome di pipeline corrispondente.

      • Ricevitore : passaggio del valore "@pipeline().parameters.receiver"). per l'accesso ai parametri della pipeline.

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

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

    Mostra uno screenshot che illustra come connettere il 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 di app per la logica che invia il messaggio di posta elettronica di operazione non riuscita.

    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 nella finestra di progettazione della pipeline e trascinarlo nell'oggetto SendFailureEmailActivity appena creato.

    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 della 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 per receiver.

    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 passare alla scheda Monitoraggio 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 le esecuzioni 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 per receiver.
    4. Fare clic su Fine.

Monitorare l'esecuzione della pipeline non riuscita

  1. Per monitorare l'esecuzione della pipeline passare alla 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 per l'esecuzione della pipeline per visualizzare i dettagli dell'errore.

    Errore della pipeline

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

    Esecuzioni 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 data factory.
  • Creare un servizio collegato Archiviazione di Azure
  • Creare un set di dati del BLOB di 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 su Azure Data Factory.