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:
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
Inicie o Bloco de Notas. Copie o texto seguinte e guarde-o como input.txt no disco.
John,Doe Jane,Doe
Utilize ferramentas como o Explorador de Armazenamento do Azure e siga os passos abaixo:
- Crie o contentor adfv2branch .
- Crie a pasta input no contentor adfv2branch.
- 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.
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:
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:
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:
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
Abra o browser Microsoft Edge ou Google Chrome. Atualmente, a IU do Data Factory é suportada apenas nos browsers Microsoft Edge e Google Chrome.
Expanda o menu no canto superior esquerdo e selecione Criar um recurso. Em seguida, selecione >Integration>Data Factory:
Na página Nova fábrica de dados, introduza ADFTutorialDataFactory no nome.
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.
Selecione a sua subscrição do Azure na qual pretende criar a fábrica de dados.
No Grupo de Recursos, siga um destes passos:
Selecione Utilizar existente e selecione um grupo de recursos já existente na lista pendente.
Selecione Criar novo e introduza o nome de um grupo de recursos.
Para saber mais sobre os grupos de recursos, veja Utilizar grupos de recursos para gerir os recursos do Azure.
Selecione V2 para a versão.
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.
Selecione Afixar ao dashboard.
Clique em Criar.
Depois de concluída a criação, vai ver a página Data Factory, conforme mostrado na imagem.
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
Na página inicial da interface do usuário do Data Factory, clique no bloco Orquestrar .
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.
Na caixa de ferramentas Atividades, procure Copiar e arraste e solte a atividade Copiar na superfície do designer de pipeline.
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.
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.
Na janela Selecionar formato, escolha DelimitedText e selecione Continue.
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.
Você verá a janela Novo serviço vinculado onde você pode preencher as propriedades necessárias para o serviço vinculado.
Na janela Novo Serviço Ligado, conclua os passos abaixo:
- Introduza AzureStorageLinkedService em Nome.
- Selecione a sua conta de Armazenamento do Azure em Nome da conta de armazenamento.
- Clique em Criar.
Na janela Definir propriedades que aparece em seguida, selecione Abrir este conjunto de dados para inserir um valor parametrizado para o nome do arquivo.
Introduza
@pipeline().parameters.sourceBlobContainer
para a pasta eemp.txt
para o nome do ficheiro.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.
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.
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.
Na página Definir propriedades para o conjunto de dados, insira SinkBlobDataset para Nome e selecione AzureStorageLinkedService para LinkedService.
Expanda a seção Avançado da página de propriedades e selecione Abrir este conjunto de dados.
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).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.
Mude para o separador Definições, a partir do separador Geral e siga os passos abaixo:
Em URL, especifique o URL do fluxo de trabalho da aplicação lógica que envia a mensagem de e-mail de êxito.
Selecione POST em Método.
Clique na ligação + Adicionar cabeçalho, na secção Cabeçalhos.
Adicione um cabeçalho Content-Type e defina-o como application/json.
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.
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.
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.
Mude para o separador Definições e siga os passos abaixo:
Em URL, especifique o URL do fluxo de trabalho da aplicação lógica que envia a mensagem de e-mail de falha.
Selecione POST em Método.
Clique na ligação + Adicionar cabeçalho, na secção Cabeçalhos.
Adicione um cabeçalho Content-Type e defina-o como application/json.
Especifique o JSON seguinte em Corpo.
{ "message": "@{activity('Copy1').error.message}", "dataFactoryName": "@{pipeline().DataFactory}", "pipelineName": "@{pipeline().Pipeline}", "receiver": "@pipeline().parameters.receiver" }
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.
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.
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.
Acionar uma execução de pipeline bem-sucedida
Para acionar uma execução de pipeline, clique em Acionar, na barra de ferramentas, e clique em Acionar Agora.
Na janela Execução de Pipeline, siga os passos abaixo:
Introduza adfv2branch/adftutorial/entrada no parâmetro sourceBlobContainer.
Introduza adftutorial/adfv2branch/output no parâmetro sinkBlobContainer.
Introduza um endereço de e-mail do recetor.
Clique em Concluir
Monitorizar a execução do pipeline bem-sucedida
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.
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.
Acionar uma execução de pipeline com falha
Mude para o separador Editar, no lado esquerdo.
Para acionar uma execução de pipeline, clique em Acionar, na barra de ferramentas, e clique em Acionar Agora.
Na janela Execução de Pipeline, siga os passos abaixo:
- Introduza adftutorial/dummy/input no parâmetro sourceBlobContainer. Confirme que a pasta fictícia não existe no contentor adftutorial.
- Introduza adftutorial/dummy/output para o parâmetro sinkBlobContainer.
- Introduza um endereço de e-mail do recetor.
- Clique em Concluir.
Monitorizar a execução de pipeline com falha
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.
Clique na ligação Erro da execução do pipeline para ver detalhes do erro.
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.
Clique na ligação Erro, na coluna Ações, para ver detalhes do erro.
Conteúdos relacionados
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.