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 armazenadados 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 é o 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.

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

  2. No menu à esquerda, selecione Criar um recurso>Integration>Data Factory:

    Data Factory selection in the "New" pane

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

    New data factory error message for duplicate name.

  4. Selecione a subscrição do Azure na qual quer criar a fábrica de dados.

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

  6. Em Versão, selecione V2.

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

  8. Selecione Criar.

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

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

  1. Na home page do Azure Data Factory, selecione Orquestrar.

    Screenshot that shows the ADF home page.

  2. Na guia Geral do pipeline, digite TransformMovies para Nome do pipeline.

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

    Screenshot that shows the pipeline canvas where you can drop the Data Flow activity.

  4. No pop-up Adicionando fluxo de dados, selecione Criar novo fluxo de dados e nomeie seu fluxo dedados como TransformMovies. Clique em Concluir quando terminar.

    Screenshot that shows where you name your data flow when you create a new data flow.

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

    Data Flow Activity

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.

Screenshot showing how to open the data flow editor from the pipeline editor.

Nesta etapa, você criará um fluxo de dados que leva os filmesDB.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.

  1. Na tela de fluxo de dados, adicione uma fonte clicando na caixa Adicionar fonte .

    Screenshot that shows the Add Source box.

  2. Nomeie sua fonte como MoviesDB. Clique em Novo para criar um novo conjunto de dados de origem.

    Screenshot that shows where you select New after you name your source.

  3. Escolha Azure Data Lake Storage Gen2. Clique em Continue (Continuar).

    Screenshot that shows where is the Azure Data Lake Storage Gen2 tile.

  4. Escolha DelimitedText. Clique em Continue (Continuar).

    Screenshot that shows the DelimitedText tile.

  5. Nomeie seu conjunto de dados como MoviesDB. Na lista suspensa do serviço vinculado, escolha Novo.

    Screenshot that shows the Linked service dropdown list.

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

    Linked Service

  7. 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 arquivo moviesDB.csv está localizado em container sample-data. 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.

    Datasets

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

    Screenshot that shows where you can preview your data to verify your transformation is configured correctly.

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

    Data Flow Canvas

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

    Screenshot that shows the Filter on expression box.

  11. 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 a expressão com a rlike 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.

    Filter

    Clique em Salvar e Concluir quando terminar a expressão.

  12. Obtenha uma Pré-visualização de Dados para verificar se o filtro está a funcionar corretamente.

    Screenshot that shows the Data Preview that you fetched.

  13. A próxima transformação que você adicionará é uma transformação Agregada em Modificador de esquema.

    Screenshot that shows the Aggregate schema modifier.

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

    Screenshot that shows the year option in the Group by tab under Aggregate Settings.

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

    Screenshot that shows the year option in the Aggregates tab under Aggregate Settings.

  16. Para obter a média da coluna Classificação, use a avg() função agregada. Como Rating é uma string e avg() recebe uma entrada numérica, devemos converter o valor em um número através da toInteger() função. Esta é a expressão se parece com:

    avg(toInteger(Rating))

    Clique em Salvar e Concluir quando terminar.

    Screenshot that shows the saved expression.

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

    Aggregate

  18. Em seguida, você deseja adicionar uma transformação Sink em Destination.

    Screenshot that shows where to add a sink transformation under Destination.

  19. Nomeie sua pia como lavatório. Clique em Novo para criar o conjunto de dados do coletor.

    Screenshot that shows where you can name your sink and create a new sink dataset.

  20. Escolha Azure Data Lake Storage Gen2. Clique em Continue (Continuar).

    Screenshot that shows the Azure Data Lake Storage Gen2 tile you can choose.

  21. Escolha DelimitedText. Clique em Continue (Continuar).

    Dataset

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

    Sink

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.

  1. Vá para a tela do pipeline. Clique em Depurar para disparar uma execução de depuração .

    Screenshot that shows the pipeline canvas with Debug highlighted.

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

    Pipeline

  3. No painel de monitoramento, você pode ver o número de linhas e o tempo gasto em cada etapa de transformação.

    Screenshot that shows the monitoring pane where you can see the number of rows and time spent in each transformation step.

  4. Clique em uma transformação para obter informações detalhadas sobre as colunas e o particionamento dos dados.

    Monitoring

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.

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.