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:

  • Criar um data factory.
  • 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 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 pipeline e de atividade

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, em 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 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 com 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 data factory

  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 >Integração>Data Factory:

    Mostra uma captura de tela da > Criar um recurso> no portal do Azure.

    Mostra uma captura de tela da seleção do Data Factory na > New

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

    Página de novo 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 do data factory “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ê 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 de Web para invocar os fluxos de trabalho de aplicativos lógicos para enviar emails de êxito/falha.
  • Conexão a uma atividade com outra atividade (no caso de sucesso e 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 Orquestrar realçado.

  2. Na janela de propriedades do pipeline, alterne para a guia Parâmetros e use o botão Novo para adicionar o três parâmetros a seguir do tipo String: sourceBlobContainer, sinkBlobContainer e receptor.

    • 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 janela Propriedades da atividade de Cópia, na parte inferior, alterne para a guia Origemguia 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 > Definir propriedades e aspas; janela para o conjunto de dados, com o Serviço vinculado e aspas; dropdown.**" data-linktype="relative-path">

  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 como o Nome.
    2. Selecione sua conta de armazenamento do Azure cmoo 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 do conjunto de dados &aspas; Definir propriedades e aspas; janela com a > Abra este conjunto de dados> link realçado.

  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 do 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 da Web permite uma chamada para qualquer ponto de extremidade REST. Para obter mais informações sobre a atividade, consulte o artigo Atividade da Web. Esse pipeline usa uma atividade de Web para chamar o fluxo de trabalho de email de Aplicativos Lógicos.

    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 – passagem do 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 – Passagem do valor de @{pipeline().Pipeline}. Essa também é uma variável de sistema, permitindo que você acesse o nome do pipeline correspondente.

      • Destinatário – passagem do 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 da Web arrastando o botão verde da caixa de seleção ao lado da atividade Copiar e soltando na atividade da 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. Como a URL, especifique a URL para o fluxo de trabalho de aplicativos lógicos que envia o email de falha.

    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 êxito.

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

Disparar uma execução do pipeline com êxito

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

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

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

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

    2. Insira adfv2branch/adftutorial/saída 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 com êxito

  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 disparar uma execução de pipeline, clique em Disparar na barra de ferramentas e em Disparar 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 no 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 para a execução do pipeline para ver 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 Cópia 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:

  • Criar um data factory.
  • 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 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 pipeline e de atividade

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