Transformar dados usando fluxos de dados de mapeamento
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!
Se estiver se familiarizando com o Azure Data Factory, confira Introdução ao Azure Data Factory.
Neste tutorial, você usará a interface do usuário do Azure Data Factory (UX) para criar um pipeline que copia e transforma dados de uma fonte de Gen2 de Azure Data Lake Storage (ADLS) para um coletor ADLS Gen2 usando o fluxo de dados de mapeamento. O padrão de configuração neste tutorial pode ser expandido após a transformação de dados usando o fluxo de dados de mapeamento
Observação
Este tutorial destina-se a mapear fluxos de dados em geral. Os fluxos de dados estão disponíveis nos pipelines Azure Data Factory e Synapse. Se você for novo em fluxos de dados em Pipelines do Azure Synapse, siga o Fluxo de Dados usando Pipelines Synapse do Azure
Neste tutorial, você executa as seguintes etapas:
- Criar um data factory.
- Criar um pipeline com uma atividade de Fluxo de Dados.
- Crie um fluxo de dados de mapeamento com quatro transformações.
- Executar teste do pipeline.
- Monitore uma atividade Data Flow.
Pré-requisitos
- Assinatura do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
- Conta de Armazenamento do Azure. Você usa o armazenamento do ADLS como um armazenamento de dados de origem e do coletor. Se você não tiver uma conta de armazenamento, confira Criar uma conta de armazenamento do Azure a fim de conhecer as etapas para criar uma.
O arquivo que estamos transformando neste tutorial é o MoviesDB.csv, que pode ser encontrado aqui. Para acessar o arquivo no GitHub, copie o conteúdo para um editor de texto da sua escolha para salvá-lo localmente como um arquivo. csv. Para carregar o arquivo em sua conta de armazenamento, consulte carregar blobs com o portal do Azure. Os exemplos referenciarão um contêiner chamado “sample-data”.
Criar uma data factory
Nesta etapa, você cria um data factory e abre a UX do Data Factory para criar um pipeline no data factory.
Abra o 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.
No menu à esquerda, selecione Criar um recurso>Integração>Data Factory:
Na página Novo data factory, em Nome, insira ADFTutorialDataFactory.
O nome do Azure Data Factory deve ser globalmente exclusivo. Se você receber uma mensagem de erro sobre o valor do nome, insira um nome diferente para o data factory. (por exemplo, yournameADFTutorialDataFactory). Para ver as regras de nomenclatura para artefatos do Data Factory, confira Data Factory – Regras de nomenclatura.
Selecione a assinatura do Azure na qual deseja criar o data factory.
Em Grupo de Recursos, use uma das seguintes etapas:
a. Selecione Usar existentee selecione um grupo de recursos existente na lista suspensa.
b. Selecione Criar novoe insira o nome de um grupo de recursos.
Para saber mais sobre grupos de recursos, confira Usar grupos de recursos para gerenciar recursos do Azure.
Em Versão, selecione V2.
Em Local, informe uma localização para o data factory. Apenas os locais com suporte são exibidos na lista suspensa. Os armazenamentos de dados (por exemplo, Armazenamento do Microsoft Azure e Banco de Dados SQL) e os serviços de computação (por exemplo, Azure HDInsight) usados pelo data factory podem estar em outras regiões.
Selecione Criar.
Depois que a criação for concluída, você verá o aviso no centro de notificações. Selecione Ir para o recurso para navegar até a página do Data Factory.
Clique em Criar e Monitorar para iniciar a IU do Azure Data Factory em uma guia separada.
Criar um pipeline com uma atividade de Fluxo de Dados
Nesta etapa, você criará um pipeline que contém uma atividade de fluxo de dados.
Na página inicial do Azure Data Factory, selecione Orquestrar.
Na guia Geral do pipeline, insira "TransformMovies" para o Nome do pipeline.
No painel Atividades, expanda o acorde Mover e Transformar. Arraste e solte a atividade de Fluxo de Dados do painel para a tela do pipeline.
No pop-up Adicionar Fluxo de Dados, selecione Criar novo Fluxo de Dados e, em seguida, nomeie o fluxo de dados TransformMovies. Clique em Concluir quando tiver terminado.
Na barra superior da tela do pipeline, deslize o controle deslizante Depurar Fluxo de Dados. O modo de depuração permite o teste interativo da lógica de transformação em um cluster do Spark ao vivo. Os clusters de Fluxo de Dados levam de 5 a 7 minutos para serem ativados e recomendamos que os usuários ativem a depuração primeiro, caso planejem realizar o desenvolvimento de Fluxo de Dados. Para saber mais, consulte Modo de depuração.
Criar lógica de transformação na tela de fluxo de dados
Depois de criar o Fluxo de Dados, você será enviado automaticamente para a tela fluxo de dados. Caso você não seja redirecionado para a tela do fluxo de dados, no painel abaixo da tela, vá para Configurações e selecione Abrir, localizado ao lado do campo de fluxo de dados. Isso abrirá a tela de fluxo de dados.
Nesta etapa, você criará um fluxo de dados que usa o moviesDB.csv no armazenamento ADLS e agrega a classificação média de Comedies de 1910 a 2000. Em seguida, você escreverá esse arquivo de volta para o armazenamento ADLS.
Na tela fluxo de dados, adicione uma fonte clicando na caixa Adicionar Fonte.
Nomeie sua fonte MoviesDB. Clique em Novo para criar uma nova fonte de conjunto de dados.
Escolha Azure Data Lake Storage Gen2. Clique em Continuar.
Escolha DelimitedText. Clique em Continuar.
Dê um nome ao conjunto de dados MovieDB. Na lista suspensa de serviço vinculado, escolha Novo.
Na tela de criação de serviço vinculado, nomeie o serviço vinculado ADLS Gen2 ADLSGen2 e especifique o método de autenticação. Em seguida, insira suas credenciais de conexão. Neste tutorial, estamos usando a chave de conta para se conectar à nossa conta de armazenamento. Você pode clicar em testar conexão para verificar se suas credenciais foram inseridas corretamente. Clique em Criar quando terminar.
Depois de voltar à tela de criação do conjunto de arquivos, insira onde o arquivo está localizado no campo caminho do arquivo. Neste tutorial, o arquivo moviesDB.csv está localizado em contêiner de dados de exemplo. Como o arquivo tem cabeçalhos, marque a Primeira linha como cabeçalho. Selecione Do repositório/conexão para importar o esquema de cabeçalho diretamente do arquivo no armazenamento. Toque em OK quando terminar.
Se o cluster de depuração for iniciado, vá para a guia Visualização de Dados da transformação fonte e clique em Atualizar para obter uma captura instantânea dos dados. Você pode usar a visualização de dados para verificar se a transformação está configurada corretamente.
Ao lado do seu nó de origem na tela fluxo de dados, clique no ícone de adição para adicionar uma nova transformação. A primeira transformação que você está adicionando é um Filtro.
Nomeie sua transformação de filtro FilterYears. Clique na caixa expressão ao lado de filtrar em para abrir o construtor de expressões. Aqui você especificará sua condição de filtragem.
O construtor de expressões de fluxo de dados permite criar expressões de forma interativa para uso em várias transformações. As expressões podem incluir funções internas, colunas do esquema de entrada e parâmetros definidos pelo usuário. Para obter mais informações sobre como criar expressões, consulte Construtor de expressões de Fluxo de Dados.
Neste tutorial, você deseja filtrar filmes de gênero comédia que se passaram entre os anos 1910 e 2000. Como ano, atualmente é uma cadeia de caracteres, você precisa convertê-lo em um inteiro usando a
toInteger()
função. Use os operadores superior ou igual a (>=) e inferior ou igual a (<=) para comparar com os valores de ano literais 1910 e 2000. Una essas expressões com o operador e (&&). A expressão é exibida como:toInteger(year) >= 1910 && toInteger(year) <= 2000
Para descobrir quais filmes são comedies, você pode usar a
rlike()
função para localizar o padrão ' Comédia ' nos gêneros de coluna. Una a expressãorlike
à comparação de anos para obter:toInteger(year) >= 1910 && toInteger(year) <= 2000 && rlike(genres, 'Comedy')
Se você tiver um cluster de depuração ativo, poderá verificar sua lógica clicando em Atualizar para ver a saída da expressão em comparação com as entradas usadas. Há mais de uma resposta certa sobre como você pode realizar essa lógica usando a linguagem de expressão de fluxo de dados.
Clique em Salvar e concluir quando terminar sua expressão.
Busque uma Visualização de Dados para verificar se o filtro está funcionando corretamente.
A próxima transformação que você adicionará é uma transformação de Agregação em Modificador de Esquema.
Dê o nome "AggregateComedyRating" a sua transformação de agregação. Na guia Agrupar por, selecione ano na lista suspensa para agrupar as agregações pelo ano em que o filme foi lançado.
Vá para a guia Agregações. Na caixa de texto à esquerda, nomeie a coluna de agregação AverageComedyRating. Clique na caixa de expressão à direita para inserir a expressão de agregação por meio do construtor de expressões.
Para obter a média de classificaçãode coluna, use a
avg()
função de agregação. Como a Classificação é uma cadeia de caracteres eavg()
usa uma entrada numérica, devemos converter o valor em um número por meio datoInteger()
função. Essa expressão é semelhante a:avg(toInteger(Rating))
Clique em Salvar e concluir quando terminar.
Vá para a guia Visualização de dados para exibir a saída da transformação. Observe que apenas duas colunas estão lá, ano e AverageComedyRating.
Em seguida, você deseja adicionar uma transformação de Coletor em Destino.
Dê ao seu coletor o nome Coletor. Clique em Novo para criar um novo conjunto de dados do coletor.
Escolha Azure Data Lake Storage Gen2. Clique em Continuar.
Escolha DelimitedText. Clique em Continuar.
Dê ao seu coletor o nome MoviesSink. Para o serviço vinculado, escolha o serviço vinculado ADLS gn2 que você criou na etapa 6. Insira uma pasta de saída na qual os dados são gravados. Neste tutorial, estamos gravando na pasta 'saída ' no contêiner 'dados de amostra'. A pasta não precisa existir com antecedência e pode ser criada dinamicamente. Defina a Primeira linha como o cabeçalho como verdadeiro e selecione Nenhum para o esquema de importação. Clique em Concluir.
Agora você concluiu a criação do fluxo de dados. Você está pronto para executá-lo em seu pipeline.
Execução e Monitoramento do Fluxo de Dados
Você pode depurar um pipeline antes de publicá-lo. Nesta etapa, você vai disparar uma execução de depuração do pipeline de fluxo de dados. Embora a visualização de dados não grave dados, uma execução de depuração gravará dados no destino do coletor.
Vá para a tela do pipeline. Clique em Depurar para disparar uma execução de depuração.
A depuração de pipeline de atividades de Fluxo de Dados usa o cluster de depuração ativo, mas ainda levará pelo menos um minuto para ser inicializado. Você pode acompanhar o progresso por meio da guia Saída. Quando a execução for bem-sucedida, clique no ícone óculos para abrir o painel de monitoramento.
No painel de monitoramento, você pode ver o número de linhas e o tempo gasto em cada etapa de transformação.
Clique em uma transformação para obter informações detalhadas sobre as colunas e o particionamento dos dados.
Se você seguiu este tutorial corretamente, deve ter escrito 83 linhas e 2 colunas na pasta do coletor. Você pode verificar se os dados estão corretos verificando seu armazenamento de blob.
Conteúdo relacionado
O pipeline neste tutorial executa um fluxo de dados que agrega a classificação média de comedies de 1910 a 2000 e grava os dados em ADLS. Você aprendeu a:
- Criar um data factory.
- Criar um pipeline com uma atividade de Fluxo de Dados.
- Crie um fluxo de dados de mapeamento com quatro transformações.
- Executar teste do pipeline.
- Monitore uma atividade Data Flow.
Saiba mais sobre a linguagem de expressão do fluxo de dados.