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.
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.
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()
oufirst()
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.
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:
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
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
Conteúdo relacionado
- Definir a agregação baseada em janela usando a Transformação de janela