Dela via


Aggregerad transformering

gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory

Aggregeringstransformeringen tillämpar aggregeringsfunktioner, till exempel Medelvärde, på kolumnvärden och kopierar resultatet till omvandlingsutdata. Förutom aggregatfunktioner erbjuder omvandlingen GROUP BY-satsen, som du kan använda för att specificera grupper som ska aggregeras.

Verksamhet

Aggregeringstransformeringen stöder följande åtgärder.

Operation Beskrivning
Gruppera efter Delar upp datauppsättningar i grupper. Kolumner av valfri datatyp kan användas för gruppering. Mer information finns i GROUP BY (Transact-SQL).
Summa Summerar värdena i en kolumn. Endast kolumner med numeriska datatyper kan summeras. Mer information finns i SUM (Transact-SQL).
Genomsnitt Returnerar medelvärdet av kolumnvärdena i en kolumn. Endast kolumner med numeriska datatyper kan beräknas i genomsnitt. Mer information finns i AVG (Transact-SQL).
Räkna Returnerar antalet objekt i en grupp. Mer information finns i COUNT (Transact-SQL).
Antal distinkta Returnerar antalet unika icke-inullade värden i en grupp.
Minimum Returnerar minimivärdet i en grupp. Mer information finns i MIN (Transact-SQL). Till skillnad från funktionen Transact-SQL MIN kan den här åtgärden endast användas med datatyper för numeriska data, datum och tid.
Maximal Returnerar det maximala värdet i en grupp. Mer information finns i MAX (Transact-SQL). Till skillnad från funktionen Transact-SQL MAX kan den här åtgärden endast användas med datatyper för numeriska data, datum och tid.

Den aggregerade omvandlingen hanterar null-värden på samma sätt som SQL Server-relationsdatabasmotorn. Beteendet definieras i SQL-92-standarden. Följande regler gäller:

  • I en GROUP BY-sats behandlas nullvärden som andra kolumnvärden. Om grupperingskolumnen innehåller mer än ett null-värde placeras null-värdena i en enda grupp.

  • I funktionerna COUNT (kolumnnamn) och COUNT (DISTINCT-kolumnnamn) ignoreras null-värden och resultatet exkluderar rader som innehåller null-värden i den namngivna kolumnen.

  • I funktionen COUNT (*) räknas alla rader, inklusive rader med null-värden.

Stora tal i aggregeringar

En kolumn kan innehålla numeriska värden som kräver särskild hänsyn på grund av deras stora värde- eller precisionskrav. Aggregeringsomvandlingen innehåller egenskapen IsBig, som du kan ställa in på utdatakolumner för att anropa särskild hantering av stora eller högprecisionsnummer. Om ett kolumnvärde kan överstiga 4 miljarder eller en precision utöver en flyttaldatatyp krävs, bör IsBig anges till 1.

Om du anger egenskapen IsBig till 1 påverkas utdata från aggregeringstransformeringen på följande sätt:

  • Datatypen DT_R8 används i stället för datatypen DT_R4.

  • Antal resultat lagras som DT_UI8 datatyp.

  • Distinkta antalvärden lagras som datatypen DT_UI4.

Not

Du kan inte ange IsBig till 1 för kolumner som används i åtgärderna GROUP BY, Maximum eller Minimum.

Prestandaöverväganden

Aggregeringstransformeringen innehåller en uppsättning egenskaper som du kan ange för att förbättra omvandlingens prestanda.

  • När du utför en gruppering efter ska du ange egenskaperna Nycklar eller NycklarSkala för komponenten och dess utdata. Med hjälp av Nycklar kan du ange det exakta antalet nycklar som omvandlingen förväntas hantera. (I det här sammanhanget refererar Nycklar till antalet grupper som förväntas bli resultatet av en grupp efter åtgärd.) Med Hjälp av KeysScale kan du ange ett ungefärligt antal nycklar. När du anger ett lämpligt värde för Nycklar eller Nyckelskala förbättrar du prestandan eftersom omvandlingen kan allokera tillräckligt med minne för de data som transformeringen cachelagrar.

  • När du utför en Distinkt antal åtgärden anger du egenskaperna CountDistinctKeys eller CountDistinctScale för komponenten. Med CountDistinctKeys kan du ange det exakta antalet nycklar som omvandlingen förväntas hantera för en operation med distinkta antal. (I det här sammanhanget refererar CountDistinctKeys till antalet distinkta värden som förväntas bli resultatet av en distinkt antal åtgärd.) Med CountDistinctScale kan du ange ett ungefärligt antal nycklar för en antal distinkt åtgärd. När du anger ett lämpligt värde för CountDistinctKeys eller CountDistinctScale kan du förbättra prestandan eftersom omvandlingen kan allokera tillräckligt med minne för de data som transformeringen cachelagrar.

Konfiguration av aggregerad transformering

Du konfigurerar aggregeringstransformeringen på transformerings-, utdata- och kolumnnivåerna.

  • På transformeringsnivå konfigurerar du aggregerad transformering för prestanda genom att ange följande värden:

    • Antalet grupper som förväntas bli resultatet av en gruppering efter operation.

    • Antalet distinkta värden som förväntas bli resultatet av en count distinct operation.

    • Den procentandel med vilken minne kan utökas under aggregeringen.

    Aggregeringstransformeringen kan också konfigureras för att generera en varning i stället för att misslyckas när värdet för en divisor är noll.

  • På utdatanivån konfigurerar du den aggregerade omvandlingen för prestanda genom att ange antalet grupper som förväntas bli resultatet av en grupp efter åtgärd. Aggregeringstransformeringen stöder flera utdata och var och en kan konfigureras på olika sätt.

  • På kolumnnivå anger du följande värden:

    • Den aggregering som kolumnen utför.

    • Jämförelsealternativen för aggregeringen.

Du kan också konfigurera aggregerad transformering för prestanda genom att ange följande värden:

  • Antalet grupper som förväntas bli resultatet av en -gruppering efter-operationen i kolumnen.

  • Antalet distinkta värden som förväntas bli resultatet av en Count distinct-åtgärd i kolumnen.

Du kan också identifiera kolumner som IsBig om en kolumn innehåller stora numeriska värden eller numeriska värden med hög precision.

Aggregate-transformationen är asynkron, vilket innebär att den inte förbrukar och publicerar data rad för rad. I stället förbrukar den hela raduppsättningen, utför sina grupper och sammansättningar och publicerar sedan resultatet.

Den här omvandlingen passerar inte några kolumner, men skapar nya kolumner i dataflödet för de data som publiceras. Endast de indatakolumner som aggregerade funktioner gäller för eller de indatakolumner som omvandlingen använder för gruppering kopieras till transformeringsutdata. En mängdtransformeringsindata kan till exempel ha tre kolumner: CountryRegion, Cityoch Population. Grupperingen sker med kolumnen CountryRegion och tillämpar funktionen Sum på kolumnen Population. Därför finns inte kolumnen City med i utdata.

Du kan också lägga till flera utdata i den aggregerade omvandlingen och dirigera varje aggregering till olika utdata. Om till exempel aggregeringstransformeringen tillämpar funktionerna Sum och Average kan varje aggregering dirigeras till olika utdata.

Du kan tillämpa flera aggregeringar på en enda indatakolumn. Om du till exempel vill ha sum- och genomsnittsvärdena för en indatakolumn med namnet Saleskan du konfigurera omvandlingen så att både sum- och genomsnittsfunktionerna tillämpas på kolumnen Sales.

Aggregeringstransformeringen har en indata och en eller flera utdata. Det stöder inte felutdata.

Du kan ange egenskaper via SSIS Designer eller programmatiskt.

Dialogrutan Avancerad redigerare visar de egenskaper som kan anges programmatiskt. Om du vill ha mer information om de egenskaper som du kan ange i dialogrutan Avancerad redigerare eller programmatiskt klickar du på något av följande avsnitt:

Om du vill ha mer information om hur du anger egenskaper klickar du på något av följande avsnitt:

Aggregatera värdena i en datauppsättning med hjälp av Aggregate-transformationen

Redigeraren för aggregerad transformering (fliken Sammansättningar)

Använd fliken Aggregeringar i dialogrutan Verktyget för aggregeringstransformering för att ange kolumner för aggregering och aggregeringsegenskaper. Du kan använda flera sammansättningar. Den här omvandlingen genererar inte några felutdata.

Not

Alternativen för nyckelantal, nyckelskala, distinkt nyckelantal och distinkt nyckelskala gäller på komponentnivå när de anges på fliken Avancerat, på utdatanivån när den anges i den avancerade visningen av fliken sammansättningar och på kolumnnivån när den anges i kolumnlistan längst ned på fliken sammansättningar.

I den aggregerade transformationen refererar nycklar kod och nycklar kod till antalet grupper som förväntas bli resultatet av en gruppera-efter-åtgärd kod. Count distinct keys och Count distinct scale syftar på antalet distinkta värden som förväntas bli resultatet från en distinkt räkning operation.

Alternativ

Avancerat/Grundläggande
Visa eller dölj alternativ för att konfigurera flera aggregeringar för flera utdata. Som standard är avancerade alternativ dolda.

Aggregationsnamn
I den avancerade visningen skriver du ett vänligt namn för aggregeringen.

gruppera efter kolumner
På skärmen Avancerat väljer du kolumner för gruppering med hjälp av listan Tillgängliga indatakolumner enligt beskrivningen nedan.

Tangent Skala
På skärmen Avancerat kan du ange det ungefärliga antalet nycklar som aggregeringen kan skriva. Som standard är värdet för det här alternativet Ospecificerad. Om både Key Scale- och Keys-egenskaperna är inställda har värdet för Keys företräde.

Värde Beskrivning
Ospecificerad Egenskapen Key Scale används inte.
Låg Aggregering kan skriva cirka 500 000 nycklar.
Mellan Aggregering kan skriva cirka 5 000 000 nycklar.
Hög Aggregering kan skriva fler än 25 000 000 nycklar.

nycklar
På skärmen Avancerat kan du ange det exakta antalet nycklar som aggregeringen kan skriva. Om både nyckelskala och nycklar anges, har nycklar företräde.

De tillgängliga indatakolumnerna
Välj i listan över tillgängliga indatakolumner med kryssrutorna i den här tabellen.

Indatakolumn
Välj i listan över tillgängliga indatakolumner.

Utgångsalias
Skriv ett alias för varje kolumn. Standardvärdet är namnet på indatakolumnen. Du kan dock välja valfritt unikt, beskrivande namn.

Åtgärd
Välj i listan över tillgängliga åtgärder med hjälp av följande tabell som en guide.

Operation Beskrivning
GroupBy Delar upp datauppsättningar i grupper. Kolumner med valfri datatyp kan användas för gruppering. Mer information finns i GROUP BY.
summa Summerar värdena i en kolumn. Endast kolumner med numeriska datatyper kan summeras. Mer information finns i SUM.
genomsnitt Returnerar medelvärdet av kolumnvärdena i en kolumn. Endast kolumner med numeriska datatyper kan beräknas i genomsnitt. Mer information finns i AVG.
Antal Returnerar antalet objekt i en grupp. Mer information finns i COUNT.
CountDistinct Returnerar antalet unika icke-inullade värden i en grupp. Mer information finns i COUNT och Distinct.
minsta Returnerar minimivärdet i en grupp. Begränsad till numeriska datatyper.
högsta Returnerar det maximala värdet i en grupp. Begränsad till numeriska datatyper.

jämförelseflaggor
Om du väljer Gruppera efteranvänder du kryssrutorna för att styra hur omvandlingen utför jämförelsen. Information om alternativ för strängjämförelse finns i Jämföra strängdata.

Antal unika skala
Du kan också ange det ungefärliga antalet distinkta värden som aggregeringen kan skriva. Som standard är värdet för det här alternativet Ospecificerad. Om både CountDistinctScale och CountDistinctKeys anges har CountDistinctKeys företräde.

Värde Beskrivning
Ospecificerad Egenskapen CountDistinctScale används inte.
Låg Sammansättning kan skriva cirka 500 000 distinkta värden.
Mellan Sammansättning kan skriva cirka 5 000 000 distinkta värden.
Hög Sammansättning kan skriva mer än 25 000 000 distinkta värden.

Räkna distinkta nycklar
Du kan också ange det exakta antalet distinkta värden som aggregeringen kan skriva. Om både CountDistinctScale och CountDistinctKeys anges har CountDistinctKeys företräde.

Redigeraren för aggregerad transformering (fliken Avancerat)

Använd fliken Avancerat i dialogrutan Redigeraren för aggregerad transformering för att ange komponentegenskaper, ange sammansättningar och ange egenskaper för indata- och utdatakolumner.

Not

Alternativen för nyckelantal, nyckelskala, distinkt nyckelantal och distinkt nyckelskala gäller på komponentnivå när de anges på fliken Avancerat, på utdatanivån när den anges i den avancerade visningen av fliken sammansättningar och på kolumnnivån när den anges i kolumnlistan längst ned på fliken sammansättningar.

I den aggregerade transformeringen syftar nycklarna och nycklarna på antalet grupper som förväntas bli resultatet av en gruppera efter operation. Räkna distinkta nycklar och Räkna distinkt skala refererar till antalet distinkta värden som förväntas bli resultatet av en distinkta antals operation.

Alternativ

Nycklars skala
Du kan också ange det ungefärliga antalet nycklar som aggregeringen förväntar sig. Omvandlingen använder den här informationen för att optimera den ursprungliga cachestorleken. Som standard är värdet för det här alternativet Ospecificerad. Om både Skala för nycklar och Antal nycklar anges, prioriteras Antal nycklar.

Värde Beskrivning
Ospecificerad Egenskapen Keys scale används inte.
Låg Sammanställning kan skriva cirka 500 000 nycklar.
Mellan Ackumulering kan skriva cirka 5,000,000 nycklar.
Hög Aggregering kan skriva fler än 25 000 000 nycklar.

Antal nycklar
Du kan också ange det exakta antalet nycklar som aggregeringen förväntar sig. Omvandlingen använder den här informationen för att optimera den ursprungliga cachestorleken. Om både Skalning av nycklar och Antal nycklar anges, har Antal nycklar högre prioritet.

Räkna distinkt skala
Du kan också ange det ungefärliga antalet distinkta värden som aggregeringen kan skriva. Som standard är värdet för det här alternativet Ospecificerad. Om både Count distinct scale och Count distinct keys anges, har Count distinct keys företräde.

Värde Beskrivning
Ospecificerad Egenskapen CountDistinctScale används inte.
Låg Sammansättning kan skriva cirka 500 000 distinkta värden.
Medium Sammansättning kan skriva cirka 5 000 000 distinkta värden.
Hög Sammansättning kan skriva mer än 25 000 000 distinkta värden.

Räkna distinkta nycklar
Du kan också ange det exakta antalet distinkta värden som aggregeringen kan skriva. Om både Count distinct scale och Count distinct keys anges, har Count distinct keys (Antal distinkta nycklar) företräde.

Automatisk utökningsfaktor
Använd ett värde mellan 1 och 100 för att ange den procentandel med vilken minne kan utökas under aggregeringen. Som standard är värdet för det här alternativet 25%.

Se även

Dataflöde
Integration Services-omvandlingar