Dela via


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.

Aggregera transformeringsgrupp efter inställningar

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.

Aggregerade inställningar

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() eller first() 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.

Deduplicering

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:

Gruppera efter exempel

Samlingsexempel

Dataflödesskriptet för den här omvandlingen finns i kodfragmentet nedan.

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

Aggregera dataflödesskript

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