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: Diagram shows Azure Blob Storage, which is the target of a copy, which, on success, sends an email with details or, on failure, sends an email with error details.

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.

Shows a screenshot of the Success email workflow.

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:

Shows a screenshot of the workflow designer with Request trigger.

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. Este é um exemplo:

Shows a screenshot of the workflow designer with the action named Send an 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. Este é um exemplo:

Shows a screenshot of the workflow designer with the fail email workflow.

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:

    Shows a screenshot of the "Create a resource" button in the Azure portal.

    Shows a screenshot of the Data Factory selection in the "New" pane.

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

    New data factory page

    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.

    Shows a screenshot of the data factory home page.

  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.

    Shows a screenshot of the data factory home page with the Orchestrate tile highlighted.

  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.

    Shows a screenshot of the New pipeline menu.

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

    Shows a screenshot demonstrating how to drag and drop the copy activity onto the pipeline designer.

  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.

    Screenshot that shows how to create a source dataset for the copy activity.

  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.

    Shows a screenshot of the select Azure Blob Storage button.

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

    Shows a screenshot of the "Select Format" window with the DelimitedText format highlighted.

  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.

    Shows a screenshot of the "Set properties" window for the dataset, with the "+New" button highlighted under the "Linked service" dropdown.**

  8. Você verá a janela Novo serviço vinculado, em que poderá preencher as propriedades necessárias para o serviço vinculado.

    Shows a screenshot fo the dataset connection window with the new linked service button highlighted.

  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.

    Shows a screenshot of the dataset "Set properties" window with the "Open this dataset" link highlighted.

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

    Shows a screenshot of the source dataset settings.

  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.

    Shows a screenshot of the source dataset.

  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.

    Shows a screenshot of the new sink dataset button

  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.

    Shows a screenshot of the Sink dataset settings.

  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.

    Shows a screenshot demonstrating how to drag and drop the first Web activity.

  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.

        Shows a screenshot of the settings for the first Web activity.

  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.

    Shows a screenshot demonstrating how to connect the Copy activity with the first Web activity.

  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.

    Shows a screenshot of the name of the second Web activity.

  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"
      }
      

      Shows a screenshot of the settings for the second Web activity.

  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.

    Screenshot that shows how to select Error on the Copy activity in the pipeline designer.

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

    Shows a screenshot of the Validate pipeline button.

  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.

    Shows a screenshot of the Publish button in the data factory portal.

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.

    Shows a screenshot of the Trigger Now button.

  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

      Pipeline run parameters

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.

    Successful pipeline run

  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.

    Screenshot that shows how to view the list of activity runs.

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.

    Failure pipeline run

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

    Pipeline error

  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.

    Activity runs

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

    Activity run error

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.