Transformar dados com o fluxo de dados de mapeamento
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!
Se não estiver familiarizado com o Azure Data Factory, veja Introdução ao Azure Data Factory.
Neste tutorial, você usará a interface do usuário (UX) do Azure Data Factory para criar um pipeline que copia e transforma dados de uma fonte Gen2 do Azure Data Lake Storage (ADLS) em um coletor ADLS Gen2 usando o fluxo de dados de mapeamento. O padrão de configuração neste tutorial pode ser expandido ao transformar dados usando o fluxo de dados de mapeamento
Nota
Este tutorial destina-se a mapear fluxos de dados em geral. Os fluxos de dados estão disponíveis no Azure Data Factory e no Synapse Pipelines. Se você é novo em fluxos de dados no Azure Synapse Pipelines, siga o Fluxo de Dados usando o Azure Synapse Pipelines
Neste tutorial, vai executar os seguintes passos:
- Criar uma fábrica de dados.
- Crie um pipeline com uma atividade de Fluxo de Dados.
- Crie um fluxo de dados de mapeamento com quatro transformações.
- Testar a execução do pipeline.
- Monitorar uma atividade de fluxo de dados
Pré-requisitos
- Subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta do Azure gratuita antes de começar.
- Conta de armazenamento do Azure. Você usa o armazenamento ADLS como fonte e armazena dados de coletor. Se não tiver uma conta de armazenamento, veja Criar uma conta de armazenamento do Azure para seguir os passos para criar uma.
O arquivo que estamos transformando neste tutorial é MoviesDB.csv, que pode ser encontrado aqui. Para recuperar o arquivo do GitHub, copie o conteúdo para um editor de texto de sua escolha para salvar localmente como um arquivo .csv. Para carregar o ficheiro para a sua conta de armazenamento, consulte Carregar blobs com o portal do Azure. Os exemplos farão referência a um recipiente chamado 'sample-data'.
Criar uma fábrica de dados
Nesta etapa, você cria um data factory e abre o Data Factory UX para criar um pipeline no data factory.
Abra o Microsoft Edge ou o Google Chrome. Atualmente, a interface do usuário do Data Factory é suportada apenas nos navegadores Microsoft Edge e Google Chrome.
No menu à esquerda, selecione Criar um recurso>Integration>Data Factory:
Na página Nova fábrica de dados, em Nome, introduza ADFTutorialDataFactory.
O nome do Azure Data Factory deve ser globalmente exclusivo. Se receber uma mensagem de erro relacionada com o valor do nome, introduza um nome diferente para a fábrica de dados. (por exemplo, seunomeADFTutorialDataFactory). Para obter as regras de nomenclatura dos artefactos do Data Factory, veja Regras de nomenclatura do Data Factory.
Selecione a subscrição do Azure na qual quer criar a fábrica de dados.
Em Grupo de Recursos, efetue um destes passos:
a. Selecione Utilizar existente e selecione um grupo de recursos já existente na lista pendente.
b. Selecione Criar novo e introduza o nome de um grupo de recursos.
Para saber mais sobre grupos de recursos, veja Utilizar grupos de recursos para gerir os recursos do Azure.
Em Versão, selecione V2.
Em Localização, selecione uma localização para a fábrica de dados. Só aparecem na lista pendente as localizações que são suportadas. Os armazenamentos de dados (por exemplo, Armazenamento do Azure e Banco de Dados SQL) e os cálculos (por exemplo, Azure HDInsight) usados pelo data factory podem estar em outras regiões.
Selecione Criar.
Após a conclusão da criação, você verá o aviso na Central de notificações. Selecione Ir para o recurso para navegar até a página Data factory.
Selecione Criar e Monitorizar para iniciar a IU do Data Factory num separador à parte.
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 home page do Azure Data Factory, selecione Orquestrar.
Na guia Geral do pipeline, digite TransformMovies para Nome do pipeline.
No painel Atividades, expanda o acordeão Mover e Transformar. Arraste e solte a atividade Fluxo de Dados do painel para a tela do pipeline.
No pop-up Adicionando fluxo de dados, selecione Criar novo fluxo de dados e nomeie seu fluxo de dados como TransformMovies. Clique em Concluir quando terminar.
Na barra superior da tela do pipeline, deslize o controle deslizante de depuração do Fluxo de Dados. O modo de depuração permite testes interativos da lógica de transformação em um cluster Spark ao vivo. Os clusters de Fluxo de Dados levam de 5 a 7 minutos para aquecer e os usuários são recomendados a ativar a depuração primeiro se planejarem fazer o desenvolvimento do Fluxo de Dados. Para obter mais informações, consulte Modo de depuração.
Criar lógica de transformação na tela de fluxo de dados
Depois de criar seu fluxo de dados, você será enviado automaticamente para a tela de fluxo de dados. Caso você não seja redirecionado para a tela de 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 leva o moviesDB.csv no armazenamento ADLS e agrega a classificação média de comédias de 1910 a 2000. Em seguida, você gravará esse arquivo de volta no armazenamento ADLS.
Na tela de fluxo de dados, adicione uma fonte clicando na caixa Adicionar fonte .
Nomeie sua fonte como MoviesDB. Clique em Novo para criar um novo conjunto de dados de origem.
Escolha Azure Data Lake Storage Gen2. Clique em Continue (Continuar).
Escolha DelimitedText. Clique em Continue (Continuar).
Nomeie seu conjunto de dados como MoviesDB. Na lista suspensa do serviço vinculado, escolha Novo.
Na tela de criação de serviço vinculado, nomeie seu serviço vinculado ADLS gen2 ADLSGen2 e especifique seu método de autenticação. Em seguida, insira suas credenciais de conexão. Neste tutorial, estamos usando a chave de conta para nos conectarmos à nossa conta de armazenamento. Você pode clicar em Testar conexão para verificar se suas credenciais foram inseridas corretamente. Clique em Criar quando terminar.
Quando estiver de volta à tela de criação do conjunto de dados, insira onde o arquivo está localizado no campo Caminho do arquivo. Neste tutorial, o moviesDB.csv de arquivo está localizado em dados de amostra de contêiner. Como o arquivo tem cabeçalhos, marque Primeira linha como cabeçalho. Selecione Da conexão/armazenamento para importar o esquema de cabeçalho diretamente do arquivo no armazenamento. Clique em OK quando terminar.
Se o cluster de depuração tiver sido iniciado, vá para a guia Visualização de Dados da transformação de origem e clique em Atualizar para obter um instantâneo dos dados. Você pode usar a visualização de dados para verificar se sua transformação está configurada corretamente.
Ao lado do nó de origem na tela de 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 como FilterYears. Clique na caixa de expressão ao lado de Filtrar 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 interativamente expressões para usar 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ê quer filtrar filmes de comédia de gênero que saíram 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 maior que ou igual a (>=) e menor ou igual a (<=) para comparar com os valores literais dos anos 1910 e 2000. Unifique estas expressões com o operador e (&&). A expressão surge como:toInteger(year) >= 1910 && toInteger(year) <= 2000
Para descobrir quais filmes são comédias, você pode usar a função para encontrar o
rlike()
padrão 'Comédia' nos gêneros da coluna. Unifique arlike
expressão com a comparação do ano 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 a expressão.
Obtenha uma Pré-visualização de Dados para verificar se o filtro está a funcionar corretamente.
A próxima transformação que você adicionará é uma transformação Agregada em Modificador de esquema.
Nomeie sua transformação agregada como AggregateComedyRatings. 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 agregada AverageComedyRating. Clique na caixa de expressão direita para inserir a expressão agregada através do construtor de expressões.
Para obter a média da coluna Classificação, use a
avg()
função agregada. Como Rating é uma string eavg()
recebe uma entrada numérica, devemos converter o valor em um número através datoInteger()
função. Esta é a expressão se parece com: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 Sink em Destination.
Nomeie sua pia como lavatório. Clique em Novo para criar o conjunto de dados do coletor.
Escolha Azure Data Lake Storage Gen2. Clique em Continue (Continuar).
Escolha DelimitedText. Clique em Continue (Continuar).
Nomeie seu conjunto de dados de coletor como MoviesSink. Para serviço vinculado, escolha o serviço vinculado ADLS gen2 que você criou na etapa 6. Insira uma pasta de saída para gravar seus dados. Neste tutorial, estamos escrevendo na pasta 'output' no contêiner 'sample-data'. A pasta não precisa existir de antemão e pode ser criada dinamicamente. Defina Primeira linha como cabeçalho como true e selecione Nenhum para Importar esquema. Clique em Concluir.
Agora você terminou de criar seu fluxo de dados. Você está pronto para executá-lo em seu pipeline.
Executando e monitorando o fluxo de dados
Você pode depurar um pipeline antes de publicá-lo. Nesta etapa, você acionará 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 leva pelo menos um minuto para inicializar. Pode acompanhar o progresso através do separador Saída . Quando a execução for bem-sucedida, clique no ícone de ó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, você deve ter escrito 83 linhas e 2 colunas em sua pasta de coletor. Você pode verificar se os dados estão corretos verificando seu armazenamento de blob.
Conteúdos relacionados
O pipeline neste tutorial executa um fluxo de dados que agrega a classificação média de comédias de 1910 a 2000 e grava os dados no ADLS. Aprendeu a:
- Criar uma fábrica de dados.
- Crie um pipeline com uma atividade de Fluxo de Dados.
- Crie um fluxo de dados de mapeamento com quatro transformações.
- Testar a execução do pipeline.
- Monitorar uma atividade de fluxo de dados
Saiba mais sobre a linguagem de expressão de fluxo de dados.