Aggregerad transformering i dataflödesmappning
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Dataflöden är tillgängliga både i Azure Data Factory och Azure Synapse Pipelines. Den här artikeln gäller för mappning av dataflöden. Om du är nybörjare på transformeringar kan du läsa den inledande artikeln Transformera data med hjälp av ett mappningsdataflöde.
Aggregeringstransformeringen definierar sammansättningar av kolumner i dina dataströmmar. Med Expression Builder kan du definiera olika typer av sammansättningar, till exempel SUM, MIN, MAX och COUNT grupperade efter befintliga eller beräknade kolumner.
Gruppera efter
Välj en befintlig kolumn eller skapa en ny beräknad kolumn som ska användas som grupp efter-sats för din aggregering. Om du vill använda en befintlig kolumn väljer du den i listrutan. Om du vill skapa en ny beräknad kolumn hovra över satsen och klicka på Beräknad kolumn. Då öppnas byggare för dataflödesuttryck. När du har skapat den beräknade kolumnen anger du namnet på utdatakolumnen under fältet Namn som . Om du vill lägga till ytterligare en grupp efter-sats hovra över en befintlig sats och klicka på plusikonen.
En grupp efter-sats är valfri i en aggregerad transformering.
Sammanställa kolumner
Gå till fliken Aggregeringar för att skapa aggregeringsuttryck. Du kan antingen skriva över en befintlig kolumn med en aggregering eller skapa ett nytt fält med ett nytt namn. Sammansättningsuttrycket anges i den högra rutan bredvid kolumnnamnsväljaren. Om du vill redigera uttrycket klickar du på textrutan och öppnar uttrycksverktyget. Om du vill lägga till fler aggregeringskolumner klickar du på Lägg till ovanför kolumnlistan eller plusikonen bredvid en befintlig aggregeringskolumn. Välj antingen Lägg till kolumn eller Lägg till kolumnmönster. Varje sammansättningsuttryck måste innehålla minst en mängdfunktion.
Kommentar
I felsökningsläge kan uttrycksverktyget inte skapa dataförhandsgranskningar med aggregerade funktioner. Om du vill visa dataförhandsgranskningar för aggregerade transformeringar stänger du uttrycksverktyget och visar data via fliken Dataförhandsgranskning.
Kolumnmönster
Använd kolumnmönster för att tillämpa samma aggregering på en uppsättning kolumner. Det här är användbart om du vill spara många kolumner från indataschemat eftersom de tas bort som standard. Använd en heuristisk som till exempel first()
för att bevara indatakolumner via aggregeringen.
Återansluta rader och kolumner
Aggregerade transformeringar liknar SQL-aggregerade urvalsfrågor. Kolumner som inte ingår i din grupp efter sats eller aggregerade funktioner flödar inte igenom till utdata från din aggregerade omvandling. Om du vill inkludera andra kolumner i dina aggregerade utdata gör du någon av följande metoder:
- Använd en mängdfunktion som
last()
ellerfirst()
för att inkludera den ytterligare kolumnen. - Återanslut kolumnerna till utdataströmmen med hjälp av självkopplingsmönstret.
Ta bort dubblettrader
En vanlig användning av aggregeringstransformeringen är att ta bort eller identifiera duplicerade poster i källdata. Den här processen kallas för deduplicering. Baserat på en uppsättning grupper efter nycklar använder du en heuristik som du väljer för att avgöra vilken dubblettrad som ska behållas. Vanliga heuristiker är first()
, last()
, max()
och min()
. Använd kolumnmönster för att tillämpa regeln på varje kolumn utom för gruppen efter kolumner.
I exemplet ovan används kolumner ProductID
och Name
för gruppering. Om två rader har samma värden för dessa två kolumner betraktas de som dubbletter. I den här aggregeringstransformeringen behålls värdena för den första matchade raden och alla andra tas bort. Med hjälp av kolumnmönstersyntaxen mappas alla kolumner vars namn inte ProductID
är och Name
mappas till deras befintliga kolumnnamn och med tanke på värdet för de första matchade raderna. Utdataschemat är detsamma som indataschemat.
För dataverifieringsscenarier count()
kan funktionen användas för att räkna hur många dubbletter det finns.
Dataflödesskript
Syntax
<incomingStream>
aggregate(
groupBy(
<groupByColumnName> = <groupByExpression1>,
<groupByExpression2>
),
<aggregateColumn1> = <aggregateExpression1>,
<aggregateColumn2> = <aggregateExpression2>,
each(
match(matchExpression),
<metadataColumn1> = <metadataExpression1>,
<metadataColumn2> = <metadataExpression2>
)
) ~> <aggregateTransformationName>
Exempel
Exemplet nedan tar en inkommande ström MoviesYear
och grupperar rader efter kolumn year
. Omvandlingen skapar en aggregeringskolumn avgrating
som utvärderas till genomsnittet av kolumnen Rating
. Den här aggregerade omvandlingen heter AvgComedyRatingsByYear
.
I användargränssnittet ser den här omvandlingen ut som bilden nedan:
Dataflödesskriptet för den här omvandlingen finns i kodfragmentet nedan.
MoviesYear aggregate(
groupBy(year),
avgrating = avg(toInteger(Rating))
) ~> AvgComedyRatingByYear
MoviesYear
: Härledd kolumn som definierar kolumner för år och rubrik AvgComedyRatingByYear
: Aggregerad transformering för genomsnittlig klassificering av komedier grupperade efter år avgrating
: Namn på ny kolumn som skapas för att lagra det aggregerade värdet
MoviesYear aggregate(groupBy(year),
avgrating = avg(toInteger(Rating))) ~> AvgComedyRatingByYear
Relaterat innehåll
- Definiera fönsterbaserad aggregering med hjälp av fönstertransformeringen