Partilhar via


Copie dados e envie notificações por e-mail sobre sucesso e fracasso

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Neste tutorial, vai criar um pipeline do Data Factory que demonstra algumas das funcionalidades de fluxo de controlo. Este pipeline cria uma cópia simples de um contentor do Armazenamento de Blobs do Azure para outro contentor na mesma conta de armazenamento. Se a atividade Copy tiver êxito, o pipeline envia detalhes da operação Copy bem-sucedida (por exemplo, a quantidade de dados escritos) num e-mail de êxito. Se a atividade Copy falhar, o pipeline envia detalhes da falha da cópia (por exemplo, a mensagem de erro) num e-mail de falha. Ao longo do tutorial, vai ver como passar os parâmetros.

Uma visão geral de alto nível do cenário: O diagrama mostra o Armazenamento de Blobs do Azure, que é o destino de uma cópia, que, em caso de sucesso, envia um email com detalhes ou, em caso de falha, envia um email com detalhes de erro.

Vai executar os seguintes passos neste tutorial:

  • Criar uma fábrica de dados.
  • Criar um serviço ligado do Armazenamento do Azure
  • Criar um conjunto de dados do Blob do Azure
  • Criar um pipeline que contém uma atividade Copy e uma atividade Web
  • Enviar saídas de atividades para atividades posteriores
  • Utilizar passagem de parâmetros e variáveis de sistema
  • Iniciar um execução de pipeline
  • Monitorizar o pipeline e execuções de atividades

Este tutorial utiliza o portal do Azure. Pode utilizar outros mecanismos para interagir com o Azure Data Factory. Veja "Inícios rápidos" no índice.

Pré-requisitos

  • Subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
  • Conta do Armazenamento do Azure. Utilize o armazenamento de blobs como arquivo de dados de origem. Se não tiver uma conta de armazenamento do Azure, veja o artigo Criar uma conta de armazenamento para obter os passos para criar uma.
  • Base de Dados SQL do Azure. Pode utilizar a base de dados como arquivo de dados sink. Se você não tiver um banco de dados no Banco de Dados SQL do Azure, consulte o artigo Criar um banco de dados no Banco de Dados SQL do Azure para conhecer as etapas para criar um.

Criar a tabela de blobs

  1. Inicie o Bloco de Notas. Copie o texto seguinte e guarde-o como input.txt no disco.

    John,Doe
    Jane,Doe
    
  2. Utilize ferramentas como o Explorador de Armazenamento do Azure e siga os passos abaixo:

    1. Crie o contentor adfv2branch .
    2. Crie a pasta input no contentor adfv2branch.
    3. Carregue o ficheiro input.txt para o contentor.

Criar pontos finais de fluxo de trabalho de e-mail

Para acionar o envio de um email do pipeline, use os Aplicativos Lógicos do Azure para definir o fluxo de trabalho. Para obter mais informações sobre como criar um fluxo de trabalho de aplicativo lógico, consulte Criar um exemplo de fluxo de trabalho de aplicativo lógico de consumo.

Fluxo de trabalho de e-mail de êxito

Crie um fluxo de trabalho do aplicativo lógico de consumo chamado CopySuccessEmail. Adicione o gatilho de solicitação chamado Quando uma solicitação HTTP for recebida e adicione a ação do Office 365 Outlook chamada Enviar um email. Se solicitado, inicie sessão na sua conta do Office 365 Outlook.

Mostra uma captura de tela do fluxo de trabalho de email Success.

Para o gatilho Request, preencha a caixa Request Body JSON Schema com o seguinte JSON:

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

O gatilho Request no designer de fluxo de trabalho deve se parecer com a seguinte imagem:

Mostra uma captura de tela do designer de fluxo de trabalho com o gatilho Solicitação.

Para a ação Enviar um e-mail , personalize como deseja formatar o e-mail, utilizando as propriedades passadas no esquema JSON do corpo da solicitação. Segue-se um exemplo:

Mostra uma captura de tela do designer de fluxo de trabalho com a ação chamada Enviar um email.

Guarde o fluxo de trabalho. Anote o URL do pedido HTTP Post para o fluxo de trabalho de e-mail de êxito:

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

Fluxo de trabalho de e-mail de falha

Siga as mesmas etapas para criar outro fluxo de trabalho de aplicativo lógico chamado CopyFailEmail. No gatilho Request, o valor do esquema JSON Request Body é o mesmo. Altere o formato do e-mail, como o Subject, para adaptar a um e-mail de falha. Segue-se um exemplo:

Mostra uma captura de tela do designer de fluxo de trabalho com o fluxo de trabalho de email com falha.

Guarde o fluxo de trabalho. Anote o URL do pedido HTTP Post para o fluxo de trabalho de e-mail de falha:

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

Agora, deve ter dois URLs de fluxo de trabalho:

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

Criar uma fábrica de dados

  1. Abra o browser Microsoft Edge ou Google Chrome. Atualmente, a IU do Data Factory é suportada apenas nos browsers Microsoft Edge e Google Chrome.

  2. Expanda o menu no canto superior esquerdo e selecione Criar um recurso. Em seguida, selecione >Integration>Data Factory:

    Mostra uma captura de tela do

    Mostra uma captura de tela da seleção do Data Factory na cotação &; Novo

  3. Na página Nova fábrica de dados, introduza ADFTutorialDataFactory no nome.

    Página Nova fábrica de dados

    O nome do Azure Data Factory deve ser globalmente exclusivo. Se receber o seguinte erro, altere o nome da fábrica de dados (por exemplo, oseunomeADFTutorialDataFactory) e tente criá-la novamente. Veja o artigo Data Factory – Naming Rules (Data Factory – Regras de Nomenclatura) para obter as regras de nomenclatura dos artefactos do Data Factory.

    O nome da fábrica de dados "ADFTutorialDataFactory" não está disponível.

  4. Selecione a sua subscrição do Azure na qual pretende criar a fábrica de dados.

  5. No Grupo de Recursos, siga um destes passos:

  6. Selecione V2 para a versão.

  7. Selecione a localização da fábrica de dados. Só aparecem na lista pendente as localizações que são suportadas. Os arquivos de dados (Armazenamento do Azure, Base de Dados SQL do Azure, etc.) e as computações (HDInsight, etc.) utilizados pela fábrica de dados podem estar noutras regiões.

  8. Selecione Afixar ao dashboard.

  9. Clique em Criar.

  10. Depois de concluída a criação, vai ver a página Data Factory, conforme mostrado na imagem.

    Mostra uma captura de tela da página inicial do data factory.

  11. Clique em Abrir o bloco do Azure Data Factory Studio para iniciar a interface do usuário (UI) do Azure Data Factory em uma guia separada.

Criar um pipeline

Neste passo, vai criar um pipeline com uma atividade Copy e duas atividades Web. Vai criar o pipeline com as funcionalidades seguintes:

  • Parâmetros para o pipeline que são acedidos por conjuntos de dados.
  • Atividade Web para invocar fluxos de trabalho de aplicações lógicas para enviar e-mails de êxito/falha.
  • Ligar uma atividade a outra (após êxito e falha)
  • Utilizar um resultado de uma atividade como entrada para a atividade subsequente
  1. Na página inicial da interface do usuário do Data Factory, clique no bloco Orquestrar .

    Mostra uma captura de tela da home page do data factory com o bloco Orchestrate realçado.

  2. Na janela de propriedades do pipeline, mude para o separador Parâmetros e utilize o botão Novo para adicionar os três parâmetros seguintes do tipo Cadeia: sourceBlobContainer, sinkBlobContainer e receiver.

    • sourceBlobContainer – parâmetro no pipeline consumido pelo conjunto de dados do blob de origem.
    • sinkBlobContainer - parâmetro no pipeline consumido pelo conjunto de dados de blob do coletor
    • receiver - este parâmetro é usado pelas duas atividades da Web no pipeline que enviam e-mails de sucesso ou falha para o destinatário cujo endereço de e-mail é especificado por este parâmetro.

    Mostra uma captura de tela do menu Novo pipeline.

  3. Na caixa de ferramentas Atividades, procure Copiar e arraste e solte a atividade Copiar na superfície do designer de pipeline.

    Mostra uma captura de tela demonstrando como arrastar e soltar a atividade de cópia no designer de pipeline.

  4. Selecione a atividade Copiar que você arrastou para a superfície do designer de pipeline. Na janela Propriedades da atividade Copy, na parte inferior, mude para o separador Origem e clique em + Novo. Neste passo, vai criar um conjunto de dados de origem para a atividade Copy.

    Captura de tela que mostra como criar um conjunto de dados de origem para a atividade de cópia.

  5. Na janela Novo Conjunto de Dados, selecione a guia Azure na parte superior e, em seguida, escolha Armazenamento de Blob do Azure e selecione Continuar.

    Mostra uma captura de tela do botão selecionar Armazenamento de Blob do Azure.

  6. Na janela Selecionar formato, escolha DelimitedText e selecione Continue.

    Mostra uma captura de tela do

  7. Você verá uma nova guia intitulada Definir propriedades. Altere o nome do conjunto de dados para SourceBlobDataset. Selecione a lista suspensa Serviço vinculado e escolha +Novo para criar um novo serviço vinculado ao seu conjunto de dados de origem.

    Mostra uma captura de tela do

  8. Você verá a janela Novo serviço vinculado onde você pode preencher as propriedades necessárias para o serviço vinculado.

    Mostra uma captura de tela da janela de conexão do conjunto de dados com o novo botão de serviço vinculado realçado.

  9. Na janela Novo Serviço Ligado, conclua os passos abaixo:

    1. Introduza AzureStorageLinkedService em Nome.
    2. Selecione a sua conta de Armazenamento do Azure em Nome da conta de armazenamento.
    3. Clique em Criar.
  10. Na janela Definir propriedades que aparece em seguida, selecione Abrir este conjunto de dados para inserir um valor parametrizado para o nome do arquivo.

    Mostra uma captura de tela do conjunto de dados

  11. Introduza @pipeline().parameters.sourceBlobContainer para a pasta e emp.txt para o nome do ficheiro.

    Mostra uma captura de tela das configurações do conjunto de dados de origem.

  12. Volte para a guia pipeline (ou clique no pipeline na exibição em árvore à esquerda) e selecione a atividade Copiar no designer. Confirme se o novo conjunto de dados está selecionado para Conjunto de dados de origem.

    Mostra uma captura de tela do conjunto de dados de origem.

  13. Na janela de propriedades, mude para o separador Sink e clique em + Novo em Conjunto de Dados de Sink. Vai criar um conjunto de dados de sink para a atividade Copy neste passo de forma semelhante à forma como criou o conjunto de dados de origem.

    Mostra uma captura de tela do novo botão do conjunto de dados do coletor

  14. Na janela Novo Conjunto de Dados, selecione Armazenamento de Blobs do Azure, clique em Continuar e, em seguida, selecione DelimitedText novamente na janela Selecionar formato e clique em Continuar novamente.

  15. Na página Definir propriedades para o conjunto de dados, insira SinkBlobDataset para Nome e selecione AzureStorageLinkedService para LinkedService.

  16. Expanda a seção Avançado da página de propriedades e selecione Abrir este conjunto de dados.

  17. Na guia Conexão do conjunto de dados, edite o caminho do arquivo. Digite @pipeline().parameters.sinkBlobContainer para a pasta e @concat(pipeline().RunId, '.txt') para o nome do arquivo. A expressão utiliza o ID da execução de pipeline atual no nome do ficheiro. Para obter a lista de variáveis e expressões do sistema suportadas, veja System variables (Variáveis do sistema) e Expression language (Linguagem de expressões).

    Mostra uma captura de tela das configurações do conjunto de dados Coletor.

  18. Volte para a guia pipeline na parte superior. Pesquise por Web na caixa de pesquisa e arraste e solte uma atividade da Web na superfície do designer de pipeline. Defina o nome da atividade como SendSuccessEmailActivity. A Atividade Web permite uma chamada para qualquer ponto final REST. Para obter mais informações sobre a atividade, veja Atividade Web. Este pipeline utiliza uma Atividade Web para chamar o fluxo de trabalho de e-mail do Logic Apps.

    Mostra uma captura de tela demonstrando como arrastar e soltar a primeira atividade da Web.

  19. Mude para o separador Definições, a partir do separador Geral e siga os passos abaixo:

    1. Em URL, especifique o URL do fluxo de trabalho da aplicação lógica que envia a mensagem de e-mail de êxito.

    2. Selecione POST em Método.

    3. Clique na ligação + Adicionar cabeçalho, na secção Cabeçalhos.

    4. Adicione um cabeçalho Content-Type e defina-o como application/json.

    5. Especifique o JSON seguinte em Corpo.

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

      O corpo do e-mail contém as seguintes propriedades:

      • Mensagem - Passando o valor de @{activity('Copy1').output.dataWritten. Acede a uma propriedade da atividade de cópia anterior e transmite o valor de dataWritten. Para o caso de falha, passe a saída de erro em vez de @{activity('CopyBlobtoBlob').error.message.

      • Data Factory Name - Passing value of This é uma variável do sistema, permitindo que você acesse o nome de fábrica de @{pipeline().DataFactory} dados correspondente. Para obter uma lista de variáveis do sistema, veja o artigo Variáveis do Sistema.

      • Nome do pipeline - Valor de passagem de @{pipeline().Pipeline}. Também se trata de uma variável do sistema, que lhe permite aceder ao nome do pipeline correspondente.

      • Recetor - Valor de passagem de "@pipeline().parameters.receiver"). acedendo aos parâmetros do pipeline.

        Mostra uma captura de tela das configurações da primeira atividade na Web.

  20. Conecte a atividade Copiar à atividade da Web arrastando o botão verde da caixa de seleção ao lado da atividade Copiar e soltando a atividade da Web.

    Mostra uma captura de tela demonstrando como conectar a atividade Copiar com a primeira atividade da Web.

  21. Arraste e largue outra atividade Web da caixa de ferramentas Atividades para a superfície do estruturador do pipeline e defina o nome como SendFailureEmailActivity.

    Mostra uma captura de tela do nome da segunda atividade da Web.

  22. Mude para o separador Definições e siga os passos abaixo:

    1. Em URL, especifique o URL do fluxo de trabalho da aplicação lógica que envia a mensagem de e-mail de falha.

    2. Selecione POST em Método.

    3. Clique na ligação + Adicionar cabeçalho, na secção Cabeçalhos.

    4. Adicione um cabeçalho Content-Type e defina-o como application/json.

    5. Especifique o JSON seguinte em Corpo.

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

      Mostra uma captura de tela das configurações para a segunda atividade da Web.

  23. Selecione o botão X vermelho no lado direito da atividade Copiar no designer de pipeline e arraste e solte-o no SendFailureEmailActivity que você acabou de criar.

    Captura de tela que mostra como selecionar Erro na atividade Copiar no designer de pipeline.

  24. Para validar o pipeline, clique no botão Validar, na barra de ferramentas. Clique no botão >> para fechar a janela Saída da Validação do Pipeline.

    Mostra uma captura de tela do botão Validar pipeline.

  25. Para publicar entidades (conjuntos de dados, pipelines, etc.) no serviço Data Factory, selecione Publicar Tudo. Aguarde até ver a mensagem Publicação com êxito.

    Mostra uma captura de tela do botão Publicar no portal do data factory.

Acionar uma execução de pipeline bem-sucedida

  1. Para acionar uma execução de pipeline, clique em Acionar, na barra de ferramentas, e clique em Acionar Agora.

    Mostra uma captura de tela do botão Acionar Agora.

  2. Na janela Execução de Pipeline, siga os passos abaixo:

    1. Introduza adfv2branch/adftutorial/entrada no parâmetro sourceBlobContainer.

    2. Introduza adftutorial/adfv2branch/output no parâmetro sinkBlobContainer.

    3. Introduza um endereço de e-mail do recetor.

    4. Clique em Concluir

      Parâmetros de execução de pipeline

Monitorizar a execução do pipeline bem-sucedida

  1. Para monitorizar a execução do pipeline, mude para o separador Monitorizar, no lado esquerdo. Verá a execução de pipeline que acionou manualmente. Utilize o botão Atualizar para atualizar a lista.

    Execução de pipeline bem-sucedida

  2. Para ver as execuções de atividades associadas a esta execução do pipeline, clique na primeira ligação na coluna Ações. Pode clicar em Pipelines, na parte superior, para regressar à vista anterior. Utilize o botão Atualizar para atualizar a lista.

    Captura de tela que mostra como exibir a lista de execuções de atividades.

Acionar uma execução de pipeline com falha

  1. Mude para o separador Editar, no lado esquerdo.

  2. Para acionar uma execução de pipeline, clique em Acionar, na barra de ferramentas, e clique em Acionar Agora.

  3. Na janela Execução de Pipeline, siga os passos abaixo:

    1. Introduza adftutorial/dummy/input no parâmetro sourceBlobContainer. Confirme que a pasta fictícia não existe no contentor adftutorial.
    2. Introduza adftutorial/dummy/output para o parâmetro sinkBlobContainer.
    3. Introduza um endereço de e-mail do recetor.
    4. Clique em Concluir.

Monitorizar a execução de pipeline com falha

  1. Para monitorizar a execução do pipeline, mude para o separador Monitorizar, no lado esquerdo. Verá a execução de pipeline que acionou manualmente. Utilize o botão Atualizar para atualizar a lista.

    Execução de pipeline com falha

  2. Clique na ligação Erro da execução do pipeline para ver detalhes do erro.

    Erro do pipeline

  3. Para ver as execuções de atividades associadas a esta execução do pipeline, clique na primeira ligação na coluna Ações. Utilize o botão Atualizar para atualizar a lista. Repare que a atividade Copy no pipeline falhou. A atividade Web conseguiu enviar com êxito o e-mail de falha ao recetor especificado.

    Execuções de atividade

  4. Clique na ligação Erro, na coluna Ações, para ver detalhes do erro.

    Erro da execução da atividade

Neste tutorial, executou os passos seguintes:

  • Criar uma fábrica de dados.
  • Criar um serviço ligado do Armazenamento do Azure
  • Criar um conjunto de dados do Blob do Azure
  • Criar um pipeline que contém uma atividade de cópia e uma atividade da Web
  • Enviar saídas de atividades para atividades posteriores
  • Utilizar passagem de parâmetros e variáveis de sistema
  • Iniciar um execução de pipeline
  • Monitorizar o pipeline e execuções de atividades

Agora, pode avançar para a secção Conceitos para obter mais informações sobre o Azure Data Factory.