Compartilhar via


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

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

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

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 no 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. Em caso de êxito, ele envia um email com detalhes e, em caso de falha, ele envia um email com detalhes do erro.

Neste tutorial, você realizará os seguintes procedimentos:

  • Crie uma fábrica de dados.
  • Criar um serviço vinculado 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 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 o portal do Azure. Você pode usar outros mecanismos para interagir com o Azure Data Factory, consulte "Guias de início rápido" no sumário.

Pré-requisitos

  • Assinatura do Azure. Se você não tiver uma assinatura do Azure, crie uma conta gratuita 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 do Azure, veja o artigo Criar uma conta de armazenamento para conhecer 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, confira o artigo Criar um banco de dados no Banco de Dados SQL do Azure para ver as etapas para a criação de 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 o Gerenciador de Armazenamento do Azure para executar 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 desde o 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 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 Enviar um email. Se solicitado, faça login na sua conta do Outlook do Office 365.

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. Iniciar o navegador da Web Microsoft Edge ou Google Chrome. Atualmente, a interface do usuário do Data Factory tem suporte apenas nos navegadores da Web Microsoft Edge e 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 Azure Data Factory 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 a assinatura do Azure na qual você deseja criar o data factory.

  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 serviços de 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 Abrir Azure Data Factory Studio para iniciar a interface do usuário do Azure Data Factory em uma guia separada.

Criar um pipeline

Nesta etapa, você cria um pipeline com uma atividade de Cópia e duas atividades 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 Novo Conjunto de Dados, selecione a guia Azure na parte superior, em seguida, escolha Armazenamento de Blobs do Azure e selecione Continuar.

    Mostra uma 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 do Azure como 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 Novo Conjunto de Dados, selecione Armazenamento de Blobs do Azure e clique em Continuar e, em seguida, selecione DelimitedText novamente na janela Selecionar formato e clique novamente em Continuar.

  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 Copiar à atividade Web arrastando o botão verde de seleção ao lado da atividade Copiar e soltando-o na atividade Web.

    Mostra uma captura de tela demonstrando como conectar a atividade Copiar com a primeira atividade da 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 a opção

  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.
  • Criar um serviço vinculado do Armazenamento do Azure.
  • Criar um conjunto de dados do Blob do 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 seguir para a seção Conceitos para obter mais informações sobre o Azure Data Factory.