Compartilhar via


Copiar dados e enviar notificações por email sobre sucesso e falha

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Data Factory no Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA interna e novos recursos. Se você não estiver familiarizado com a integração de dados, comece com Fabric Data Factory. As cargas de trabalho existentes do ADF podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.

Neste tutorial, você deve criar um pipeline de Data Factory que apresente alguns dos recursos de fluxo de controle. Esse pipeline faz uma cópia simples de um contêiner em Armazenamento de Blobs do Azure para outro contêiner na mesma conta de armazenamento. Se a atividade de cópia for bem-sucedida, o pipeline enviará detalhes da operação de cópia bem-sucedida (tais como a quantidade de dados gravados) em um email de êxito. Se a atividade de cópia falhar, o pipeline enviará detalhes da falha de cópia (por exemplo, a mensagem de erro) em um email de falha. Ao longo do tutorial, você verá como passar 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, quando bem-sucedida, envia um e-mail com detalhes ou, em caso de falha, envia um e-mail com detalhes do erro.

Neste tutorial, você realizará os seguintes procedimentos:

  • Crie uma fábrica de dados.
  • Crie um serviço vinculado do Armazenamento do Azure.
  • Criar um conjunto de dados de Blob Azure
  • Criar um pipeline que contenha uma atividade de cópia e uma atividade da Web
  • Enviar saídas de atividades para as atividades subsequentes
  • Utilizar passagem de parâmetros e variáveis do sistema
  • Iniciar uma execução de pipeline
  • Monitorar as execuções de atividade e pipeline

Este tutorial usa Azure portal. Você pode usar outros mecanismos para interagir com Azure Data Factory, consulte "Inícios Rápidos" no sumário.

Pré-requisitos

  • Assinatura do Azure. Se você não tiver uma assinatura Azure, crie uma conta free antes de começar.
  • Conta de Armazenamento do Azure. Você usa o Armazenamento de Blobs como um armazenamento de dados de origem. Se você não tiver uma conta de armazenamento Azure, consulte o artigo Criar uma conta de armazenamento para ver as etapas para criar uma.
  • Banco de Dados SQL do Azure. Você usa o banco de dados como um armazenamento de dados de coletor. 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 ver as etapas para criar um.

Criar tabela de blob

  1. Inicie o Bloco de notas. Copie o texto a seguir e salve-o como um arquivo input.txt no disco.

    John,Doe
    Jane,Doe
    
  2. Use ferramentas como Gerenciador de Armazenamento do Azure siga estas etapas:

    1. Crie o contêiner adfv2branch.
    2. Crie a pasta input no contêiner adfv2branch.
    3. Carregue o arquivo input.txt no contêiner.

Criar pontos de extremidade do fluxo de trabalho de email

Para disparar o envio de um email do pipeline, você usa 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 email de êxito

Criar 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 Office 365 Outlook chamada Send um email. Se solicitado, entre em sua conta Office 365 Outlook.

Mostra uma captura de tela do fluxo de trabalho de email de Êxito.

No gatilho Solicitação, preencha a caixa esquema JSON do Corpo da Solicitação com o seguinte JSON:

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

O gatilho Solicitação no designer de fluxo de trabalho deve ter a seguinte imagem:

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

Para a ação Enviar um email, personalize o modo como você deseja formatar o email, utilizando as propriedades passadas no esquema JSON do corpo da solicitação. Veja um exemplo:

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

Salve o fluxo de trabalho. Anote a URL da solicitação HTTP Post para o fluxo de trabalho de email 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 email de falha

Siga as mesmas etapas para criar outro fluxo de trabalho de aplicativos lógicos chamado CopyFailEmail. No gatilho Solicitação, o valor esquema JSON do Corpo da Solicitação é o mesmo. Altere o formato do seu email como o Subject para ajustá-lo, tornando-o um email de falha. Veja um exemplo:

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

Salve o fluxo de trabalho. Anote a URL da solicitação HTTP Post para o fluxo de trabalho de email 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 você deve ter duas URL 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. Inicie Microsoft Edge ou Google Chrome navegador da Web. Atualmente, a interface do usuário do Data Factory tem suporte apenas em navegadores da Web Microsoft Edge e do Google Chrome.

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

    Mostra uma captura de tela da seleção do Data Factory no painel

  3. Na página Novo data factory, insira ADFTutorialDataFactory no campo nome.

    Nova página do Data Factory

    O nome do Data Factory do Azure deve ser globalmente exclusivo. Se você receber o seguinte erro, altere o nome de data factory (por exemplo, yournameADFTutorialDataFactory) e tente criar novamente. Confira o artigo Data Factory - regras de nomenclatura para ver as regras de nomenclatura para artefatos do Data Factory.

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

  4. Selecione sua assinatura do Azure onde deseja criar a fábrica de dados.

  5. Para o Grupo de Recursos, execute uma das seguintes etapas:

  6. Selecione V2 para a versão.

  7. Selecione o local do data factory. Apenas os locais com suporte são exibidos na lista suspensa. Os armazenamentos de dados (Armazenamento do Azure, Banco de Dados SQL do Azure etc.) e computação (HDInsight etc.) usados pelo data factory podem estar em outras regiões.

  8. Selecione Fixar no painel.

  9. Clique em Criar.

  10. Após a criação, a página do Data Factory será exibida conforme mostrado na imagem.

    Mostra uma captura de tela da home page do data factory.

  11. Clique no bloco Open Azure Data Factory Studio para iniciar a interface do usuário Azure Data Factory em uma guia separada.

Criar um pipeline

Nesta etapa, você pode criar um pipeline com uma atividade de Cópia e duas atividades da Web. Você pode usar os recursos a seguir para criar o pipeline:

  • Parâmetros para o pipeline acessado por conjuntos de dados.
  • Atividade na Web para invocar fluxos de trabalho de aplicativos de lógica para enviar emails de sucesso/falha.
  • Conectando uma atividade com outras atividades (em caso de sucesso ou falha)
  • Usando a saída de uma atividade como uma 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, alterne para a guia Parâmetros e use o botão Novo para adicionar os três parâmetros a seguir do tipo String: sourceBlobContainer, sinkBlobContainer e receiver.

    • sourceBlobContainer - parâmetro no pipeline consumido pelo conjunto de dados de 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 Web no pipeline que enviam emails de êxito ou falha para o receptor cujos endereços de email são especificados por esse parâmetro.

    Mostra uma captura de tela do menu Novo pipeline.

  3. Na caixa de ferramentas Atividades, pesquise 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 parte inferior da janela Propriedades da atividade de Cópia, mude para a guia Origem e, em seguida, clique em + Novo. Você cria um conjunto de dados de origem para a atividade de cópia nesta etapa.

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

  5. Na janela New Dataset, selecione a guia Azure na parte superior e escolha Armazenamento de Blobs do Azure e selecione Continue.

    Mostra a captura de tela do botão Selecionar Armazenamento de Blobs do Azure.

  6. Na janela Selecionar formato, escolhaDelimitedText e selecione Continuar.

    Mostra uma captura de tela da > Selecione Formatar> janela com o formato DelimitedText realçado.

  7. Você verá uma nova guia com o título 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 conjunto de dados de origem.

    Mostra uma captura de tela da janela "Definir propriedades" para o conjunto de dados, com o botão "Novo" realçado no menu suspenso "Serviço vinculado".**

  8. Você verá a janela Novo serviço vinculado, em que poderá 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 Vinculado, execute as seguintes etapas:

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

    Mostra uma captura de tela da janela de propriedades do conjunto de dados

  11. Insira @pipeline().parameters.sourceBlobContainer como a pasta e emp.txt como o nome do arquivo.

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

  12. Volte para a guia pipeline (ou clique no pipeline no modo de exibição de árvore esquerdo) 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, alterne para a guia Coletor e, em seguida, clique em + Novo para Conjunto de Dados do Coletor. Você cria um conjunto de dados do coletor para a atividade de cópia nesta etapa de forma semelhante a como você criou o conjunto de dados de origem.

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

  14. Na janela New Dataset, selecione Armazenamento de Blobs do Azure e clique em Continue e selecione DelimitedText novamente na janela Select e clique em Continue 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 esse conjunto de dados.

  17. Na guia Conexão do conjunto de dados, edite o Caminho do arquivo. Insira @pipeline().parameters.sinkBlobContainer para a pasta e @concat(pipeline().RunId, '.txt') para o nome do arquivo. A expressão usa a ID da execução do pipeline atual como o nome do arquivo. Para obter a lista de expressões e variáveis do sistema com suporte, consulte Variáveis de sistema e Linguagem de expressão.

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

  18. Volte para a guia do pipeline na parte superior. Pesquise 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 endpoint REST. Para obter mais informações sobre a atividade, consulte o artigo Atividade da Web. Esse pipeline usa uma Atividade Web para chamar o fluxo de trabalho de email do Logic Apps.

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

  19. Alterne para a guia Configurações da guia Geral e siga as etapas a seguir:

    1. Como a URL, especifique a URL para o fluxo de trabalho de aplicativos lógicos que envia o email de êxito.

    2. Selecione POST para Método.

    3. Clique no link + Adicionar cabeçalho na seção Cabeçalhos.

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

    5. Especifique o JSON a seguir para Corpo.

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

      O corpo da mensagem contém as seguintes propriedades:

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

      • Nome do Data Factory - passagem do valor de @{pipeline().DataFactory} Essa é uma variável de sistema, permitindo que você acesse o nome do data factory correspondente. Para obter uma lista das variáveis de sistema, consulte o artigo Variáveis de Sistema.

      • Nome do pipeline – valor de passagem de @{pipeline().Pipeline}. Essa também é uma variável de sistema, permitindo que você acesse o nome do pipeline correspondente.

      • Receptor - Passando o valor de "@pipeline().parameters.receiver"). Acessando os parâmetros de pipeline.

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

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

    Exibe uma captura de tela demonstrando como conectar a atividade de cópia à primeira atividade Web.

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

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

  22. Alterne para a guia Configurações e siga estas etapas:

    1. Para URL, especifique a URL para o fluxo de trabalho do Logic Apps que envia o e-mail de erro.

    2. Selecione POST para Método.

    3. Clique no link + Adicionar cabeçalho na seção Cabeçalhos.

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

    5. Especifique o JSON a seguir para Corpo.

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

      Mostra uma captura de tela das configurações da 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

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

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

  25. Para publicar as entidades (conjuntos de dados, pipelines etc.) no serviço Data Factory, selecione Publicar tudo. Aguarde até que você veja a mensagem Publicado com sucesso.

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

Disparar uma execução do pipeline com sucesso

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

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

  2. Na janela Execução de Pipeline, siga estas etapas:

    1. Insira adftutorial/adfv2branch/input no parâmetro sourceBlobContainer.

    2. Insira adftutorial/adfv2branch/output como o parâmetro sinkBlobContainer.

    3. Insira um endereço de email do receptor.

    4. Clique em Concluir

      Parâmetros de execução do pipeline

Monitorar a execução do pipeline bem-sucedida

  1. Para monitorar a execução do pipeline, alterne para a guia Monitorar à esquerda. Você verá a execução do pipeline disparada manualmente por você. Use o botão Atualizar para atualizar a lista.

    Execução do pipeline bem-sucedida

  2. Para exibir execuções de atividade associadas a esta execução de pipeline, clique no primeiro link na coluna Ações. Você pode alternar para o modo de exibição anterior clicando em Pipelines na parte superior. Use o botão Atualizar para atualizar a lista.

    Captura de tela que mostra como ver a lista de execuções de atividade.

Gatilho de uma execução do pipeline com falha

  1. Alterne para a guia Editar à esquerda.

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

  3. Na janela Execução de Pipeline, siga estas etapas:

    1. Insira adftutorial/dummy/inputt no parâmetro sourceBlobContainer. Certifique-se de que a pasta fictícia não existe no contêiner adftutorial.
    2. Insira adftutorial/dummy/output para o parâmetro sinkBlobContainer.
    3. Insira um endereço de email do receptor.
    4. Clique em Concluir.

Monitorar a execução do pipeline com falha

  1. Para monitorar a execução do pipeline, alterne para a guia Monitorar à esquerda. Você verá a execução do pipeline disparada manualmente por você. Use o botão Atualizar para atualizar a lista.

    Falha na execução do pipeline

  2. Clique no link Erro da execução do pipeline para consultar detalhes sobre o erro.

    Erro de pipeline

  3. Para exibir execuções de atividade associadas a esta execução de pipeline, clique no primeiro link na coluna Ações. Use o botão Atualizar para atualizar a lista. Observe que a atividade Copy no pipeline falhou. A atividade da Web foi bem-sucedida ao enviar o email de falha para o destinatário especificado.

    Execuções de atividade

  4. Clique no link Erro na coluna Ações para ver os detalhes sobre o erro.

    Erro de execução da atividade

Neste tutorial, você realizará os seguintes procedimentos:

  • Crie uma fábrica de dados.
  • Crie um serviço vinculado do Armazenamento do Azure.
  • Criar um conjunto de dados de Blob Azure
  • Criar um pipeline que contenha uma atividade de cópia e uma atividade web
  • Enviar saídas de atividades para as atividades subsequentes
  • Utilizar passagem de parâmetros e variáveis do sistema
  • Iniciar uma execução de pipeline
  • Monitorar as execuções de atividade e pipeline

Agora você pode prosseguir para a seção Conceitos para obter mais informações sobre Azure Data Factory.