Agregar transformações em 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!

Os fluxos de dados estão disponíveis nos pipelines do Azure Data Factory e do Azure Synapse. Este artigo se aplica ao fluxo de dados de mapeamento. Se você for iniciante nas transformações, veja o artigo introdutório Transformar dados usando um fluxo de dados de mapeamento.

A transformação de agregação define as agregações de colunas em seus fluxos de dados. Usando o Construtor de Expressões, você consegue definir diferentes tipos de agregações como SUM, MIN, MAX e COUNT agrupados por colunas computadas ou existentes.

Agrupar por

Selecione uma coluna existente ou crie uma nova coluna computada para usar como uma cláusula Group By na sua agregação. Para usar uma coluna existente, selecione-a na lista suspensa. Para criar uma nova coluna computada, passe o mouse sobre a cláusula e clique em Coluna computada. Isso abre o Construtor de expressões de fluxo de dados. Depois de criar a coluna computada, insira o nome da coluna de saída no campo Nomear como. Se você quiser adicionar mais uma cláusula Group by, passe o mouse sobre uma cláusula existente e clique no ícone de adição.

Aggregate transformation group by settings

Uma cláusula Group by é opcional em uma transformação do tipo Agregação.

Colunas de agregação

Vá para a guia Agregações para criar expressões de agregação. Você pode sobrescrever uma coluna existente com uma agregação ou criar um novo campo com um novo nome. A expressão de agregação é inserida na caixa à direita ao lado do seletor de nome de coluna. Para editar a expressão, clique na caixa de texto e abra o construtor de expressões. Para adicionar mais colunas derivadas, clique em Adicionar acima da lista de colunas ou no ícone de “mais” ao lado de uma coluna derivada existente. Escolha Adicionar coluna ou Adicionar padrão de coluna. Cada expressão de agregação deve conter pelo menos uma função de agregação.

Aggregate settings

Observação

No modo Depuração, o Construtor de Expressões não pode produzir visualizações de dados com funções de agregação. Para exibir as visualizações de dados de transformações de agregação, feche o Construtor de Expressões e visualize os dados na guia “Visualizações de dados”.

Padrões de coluna

Use padrões de coluna para aplicar a mesma agregação a um conjunto de colunas. Isso é útil quando você quer manter muitas colunas do esquema de entrada, pois elas são descartadas por padrão. Use uma heurística como first() para manter as colunas de entrada por meio da agregação.

Reconectar linhas e colunas

As transformações agregadas são semelhantes às consultas SELECT da agregação do SQL. As colunas que não estão incluídas em sua cláusula Group by ou em funções de agregação não fluirão para a saída da transformação de agregação. Se você quiser incluir outras colunas em sua saída agregada, execute um dos seguintes métodos:

  • Use uma função de agregação como last() ou first() para incluir essa coluna adicional.
  • Reingresse as colunas no fluxo de saída usando o padrão de autojunção.

Removendo linhas duplicadas

Um uso comum da transformação de agregação é remover ou identificar entradas duplicadas em dados de origem. Esse processo é conhecido como eliminação de duplicação. Com base em um conjunto de chaves Group by, use uma heurística de sua escolha para determinar qual das linha duplicadas será mantida. Heurísticas comuns são first(), last(), max() e min(). Use padrões de coluna para aplicar a regra a cada coluna, exceto para as colunas Group by.

Deduplication

No exemplo acima, as colunas ProductID e Name estão sendo usadas para agrupamento. Se duas linhas tiverem os mesmos valores para essas duas colunas, elas serão consideradas duplicatas. Nessa transformação de agregação, os valores da primeira linha a ser correspondida serão mantidos e todos os outros serão removidos. Usando a sintaxe de padrão de coluna, todas as colunas cujos nomes não forem ProductID e Name são mapeadas para o nome de coluna existente e recebem o valor da primeira linha correspondente. O esquema de saída é o mesmo de entrada.

Para cenários de validação de dados, a função count() pode ser usada para contar quantas duplicatas existem.

Script de fluxo de dados

Sintaxe

<incomingStream>
    aggregate(
           groupBy(
                <groupByColumnName> = <groupByExpression1>,
                <groupByExpression2>
               ),
           <aggregateColumn1> = <aggregateExpression1>,
           <aggregateColumn2> = <aggregateExpression2>,
           each(
                match(matchExpression),
                <metadataColumn1> = <metadataExpression1>,
                <metadataColumn2> = <metadataExpression2>
               )
          ) ~> <aggregateTransformationName>

Exemplo

O exemplo abaixo usa um fluxo de entrada MoviesYear e agrupa linhas por coluna year. A transformação cria uma coluna de agregação avgrating que é avaliada como a média da coluna Rating. Essa transformação agregada é nomeada AvgComedyRatingsByYear.

Na interface do usuário, essa transformação é semelhante à imagem abaixo:

Group by example

Aggregate example

O script de fluxo de dados para essa transformação está no trecho de código abaixo.

MoviesYear aggregate(
                groupBy(year),
                avgrating = avg(toInteger(Rating))
            ) ~> AvgComedyRatingByYear

Aggregate data flow script

MoviesYear: Coluna derivada que define as colunas ano e título AvgComedyRatingByYear: transformação de agregação para a classificação média de comédias agrupadas por ano avgrating: nome da nova coluna que está sendo criada para conter o valor agregado

MoviesYear aggregate(groupBy(year),
	avgrating = avg(toInteger(Rating))) ~> AvgComedyRatingByYear