Delen via


Samenvoegingstransformatie

van toepassing op:SQL Server SSIS Integration Runtime in Azure Data Factory

Met de statistische transformatie worden statistische functies, zoals Gemiddelde, toegepast op kolomwaarden en worden de resultaten gekopieerd naar de transformatie-uitvoer. Naast statistische functies biedt de transformatie de GROUP BY-component, die u kunt gebruiken om groepen op te geven die moeten worden samengevoegd.

Operations

De aggregeren transformatie ondersteunt de volgende bewerkingen.

Operation Description
Groeperen op Verdeelt gegevenssets in groepen. Kolommen van elk gegevenstype kunnen worden gebruikt voor groepering. Zie GROUP BY (Transact-SQL) voor meer informatie.
Som Hiermee worden de waarden in een kolom opgeteld. Alleen kolommen met numerieke gegevenstypen kunnen worden opgeteld. Zie SUM (Transact-SQL)voor meer informatie.
Average Retourneert het gemiddelde van de kolomwaarden in een kolom. Alleen kolommen met numerieke gegevenstypen kunnen worden gegemiddeld. Zie AVG (Transact-SQL)voor meer informatie.
Aantal Retourneert het aantal items in een groep. Zie COUNT (Transact-SQL)voor meer informatie.
Aantal uniek Retourneert het aantal unieke niet-nulwaarden in een groep.
Minimaal Retourneert de minimumwaarde in een groep. Zie MIN (Transact-SQL) voor meer informatie. In tegenstelling tot de functie Transact-SQL MIN, kan deze bewerking alleen worden gebruikt met numerieke, datum- en tijdgegevenstypen.
Maximum Retourneert de maximumwaarde in een groep. Zie MAX (Transact-SQL)voor meer informatie. In tegenstelling tot de functie Transact-SQL MAX, kan deze bewerking alleen worden gebruikt met numerieke, datum- en tijdgegevenstypen.

De statistische transformatie verwerkt null-waarden op dezelfde manier als de relationele SQL Server-database-engine. Het gedrag wordt gedefinieerd in de SQL-92-standaard. De volgende regels zijn van toepassing:

  • In een GROUP BY-component worden null-waarden behandeld als andere kolomwaarden. Als de groepeerkolom meer dan één null-waarde bevat, worden de null-waarden in één groep geplaatst.

  • In de functies COUNT (kolomnaam) en COUNT (DISTINCT-kolomnaam) worden null-waarden genegeerd en worden rijen met null-waarden in de benoemde kolom uitgesloten.

  • In de functie AANTAL (*) worden alle rijen geteld, inclusief rijen met null-waarden.

Grote getallen in aggregaties

Een kolom kan numerieke waarden bevatten waarvoor speciale aandacht nodig is vanwege hun grote waarde- of precisievereisten. De aggregatietransformatie bevat de eigenschap IsBig, die u kunt instellen op uitvoerkolommen om speciale verwerking van grote of hoge precisienummers aan te roepen. Als een kolomwaarde groter kan zijn dan 4 miljard of een precisie buiten een float-gegevenstype is vereist, moet IsBig worden ingesteld op 1.

Het instellen van de eigenschap IsBig op 1 is van invloed op de uitvoer van de aggregatietransformatie op de volgende manieren:

  • Het DT_R8 gegevenstype wordt gebruikt in plaats van het DT_R4 gegevenstype.

  • Het aantal resultaten wordt opgeslagen als het gegevenstype DT_UI8.

  • Afzonderlijke tellingsresultaten worden opgeslagen als het DT_UI4 gegevenstype.

Opmerking

U kunt IsBig niet instellen op 1 voor kolommen die worden gebruikt in de bewerkingen GROUP BY, Maximum of Minimum.

Prestatieoverwegingen

De aggregatiestransformatie bevat een set eigenschappen die u kunt instellen om de prestaties van de transformatie te verbeteren.

  • Wanneer u een group by-bewerking uitvoert, stelt u de eigenschappen Sleutels of KeysScale van het onderdeel en de uitvoer van het onderdeel in. Met sleutels kunt u het exacte aantal sleutels opgeven dat de transformatie naar verwachting moet verwerken. (In deze context verwijst Sleutels naar het aantal groepen dat naar verwachting het resultaat is van een group by-bewerking .) Met KeysScale kunt u een geschat aantal sleutels opgeven. Wanneer u een geschikte waarde opgeeft voor Sleutels of KeyScale, verbetert u de prestaties omdat de transformatie voldoende geheugen kan toewijzen voor de gegevens die in de transformatiecache worden opgeslagen.

  • Bij het uitvoeren van een distinct count-bewerking stelt u de eigenschappen CountDistinctKeys of CountDistinctScale van het onderdeel in. Met CountDistinctKeys kunt u het exacte aantal sleutels opgeven dat de transformatie naar verwachting moet verwerken voor een aantal afzonderlijke bewerkingen. (In deze context verwijst CountDistinctKeys naar het aantal afzonderlijke waarden dat wordt verwacht door een afzonderlijke tellingsbewerking .) Met CountDistinctScale kunt u een geschat aantal sleutels opgeven voor een aantal afzonderlijke bewerkingen. Wanneer u een geschikte waarde opgeeft voor CountDistinctKeys of CountDistinctScale, verbetert u de prestaties omdat de transformatie voldoende geheugen kan toewijzen voor de gegevens die door de transformatiecache worden opgeslagen.

Configuratie van aggregatietransformatie

Je configureert de aggregatietransformatie op transformatie-, uitvoer- en kolomniveau.

  • Op transformatieniveau configureert u de statistische transformatie voor prestaties door de volgende waarden op te geven:

    • Het aantal groepen dat naar verwachting het resultaat is van een group by-bewerking .

    • Het aantal afzonderlijke waarden dat naar verwachting het resultaat is van een aantal afzonderlijke bewerkingen.

    • Het percentage waarmee het geheugen kan worden uitgebreid tijdens de aggregatie.

    De aggregatietransformatie kan ook worden geconfigureerd om een waarschuwing te genereren in plaats van te falen wanneer de deler de waarde nul heeft.

  • Op uitvoerniveau configureert u de Aggregatietransformatie voor de prestaties door het aantal groepen op te geven dat naar verwachting het resultaat zullen zijn van een Group by-bewerking. De aggregatiestransformatie ondersteunt meerdere uitvoer en elke transformatie kan op een andere manier worden geconfigureerd.

  • Op kolomniveau geeft u de volgende waarden op:

    • De aggregatie die door de kolom wordt uitgevoerd.

    • De vergelijkingsopties van de aggregatie.

U kunt ook de statistische transformatie voor prestaties configureren door deze waarden op te geven:

  • Het aantal groepen dat naar verwachting het resultaat is van een group by-bewerking in de kolom.

  • Het aantal afzonderlijke waarden dat naar verwachting het resultaat is van een aantal afzonderlijke bewerkingen in de kolom.

U kunt kolommen ook identificeren als IsBig als een kolom grote numerieke waarden of numerieke waarden met hoge precisie bevat.

De aggregatietransformatie is asynchroon, wat betekent dat er geen gegevensrij per rij wordt gebruikt en gepubliceerd. In plaats daarvan wordt de hele rijenset gebruikt, worden de groeperingen en aggregaties uitgevoerd en worden de resultaten vervolgens gepubliceerd.

Deze transformatie doorloopt geen kolommen, maar maakt nieuwe kolommen in de gegevensstroom voor de gegevens die worden gepubliceerd. Alleen de invoerkolommen waarop statistische functies van toepassing zijn of de invoerkolommen die door de transformatie voor groepering worden gebruikt, worden gekopieerd naar de uitvoer van de transformatie. Een invoer voor een geaggregeerde transformatie kan bijvoorbeeld drie kolommen hebben: CountryRegion, City en Population. De transformatie wordt gegroepeerd op de kolom CountryRegion en past de functie Som toe op de kolom Bevolking . De uitvoer bevat daarom niet de kolom Plaats .

U kunt ook meerdere uitvoer toevoegen aan de aggregatietransformatie en elke aggregatie naar een andere uitvoer leiden. Als de statistische transformatie bijvoorbeeld de functies Som en Gemiddelde toepast, kan elke aggregatie worden omgeleid naar een andere uitvoer.

U kunt meerdere aggregaties toepassen op één invoerkolom. Als u bijvoorbeeld de som- en gemiddelde waarden voor een invoerkolom met de naam Sales wilt, kunt u de transformatie configureren om zowel de functies Som als Gemiddelde toe te passen op de kolom Verkoop .

De aggregatiestransformatie heeft één invoer en een of meer uitvoer. Er wordt geen foutuitvoer ondersteund.

U kunt eigenschappen instellen via SSIS Designer of programmatisch.

Het dialoogvenster Geavanceerde editor weerspiegelt de eigenschappen die programmatisch kunnen worden ingesteld. Klik op een van de volgende onderwerpen voor meer informatie over de eigenschappen die u kunt instellen in het dialoogvenster Geavanceerde editor of programmatisch:

Klik op een van de volgende onderwerpen voor meer informatie over het instellen van eigenschappen:

Waarden aggregeren in een gegevensset met behulp van de geaggregeerde transformatie

Editor voor aggregatietransformatie (tabblad Aggregaties)

Gebruik het tabblad Aggregaties van het dialoogvenster Aggregatietransformatieeditor om kolommen op te geven voor aggregatie- en aggregatie-eigenschappen. U kunt meerdere aggregaties toepassen. Deze transformatie genereert geen foutuitvoer.

Opmerking

De opties voor sleutelaantal, sleutelschaal, afzonderlijke sleutelaantallen en afzonderlijke sleutelschaal zijn van toepassing op het onderdeelniveau wanneer deze zijn opgegeven op het tabblad Geavanceerd , op het uitvoerniveau wanneer deze zijn opgegeven in de geavanceerde weergave van het tabblad Aggregaties en op kolomniveau wanneer deze zijn opgegeven in de kolomlijst onder aan het tabblad Aggregaties .

In de aggregatietransformatie verwijzen sleutels en schaal van sleutels naar het aantal groepen dat wordt verwacht als resultaat van een Groeperen op-bewerking. Aantal afzonderlijke sleutels en aantal afzonderlijke schaal verwijst naar het aantal afzonderlijke waarden dat naar verwachting het resultaat is van een afzonderlijke tellingsbewerking .

Options

Geavanceerd/ Basic
Opties weergeven of verbergen om meerdere aggregaties voor meerdere uitvoer te configureren. De geavanceerde opties zijn standaard verborgen.

Aggregatienaam
Typ in de weergave Geavanceerd een beschrijvende naam voor de aggregatie.

Groeperen op kolommen
Selecteer in de weergave Geavanceerd kolommen voor groepering met behulp van de lijst Beschikbare invoerkolommen , zoals hieronder wordt beschreven.

Toonsoort
Geef in de geavanceerde weergave desgewenst het geschatte aantal sleutels op dat door de aggregatie kan worden geschreven. Standaard is de waarde van deze optie niet opgegeven. Als zowel de eigenschappen Sleutelschaal als Sleutels zijn ingesteld, heeft de waarde van Sleutels voorrang.

Waarde Description
Onbepaald De eigenschap Sleutelschaal wordt niet gebruikt.
Low Aggregatie kan ongeveer 500.000 sleutels schrijven.
Gemiddeld Aggregatie kan ongeveer 5.000.000 sleutels schrijven.
High Aggregatie kan meer dan 25.000.000 sleutels schrijven.

Sleutels
Geef in het geavanceerde scherm desgewenst het exacte aantal sleutels op dat de aggregatie kan schrijven. Als zowel sleutelschaal als sleutels zijn opgegeven, hebben sleutels voorrang.

Beschikbare invoerkolommen
Selecteer in de lijst met beschikbare invoerkolommen met behulp van de selectievakjes in deze tabel.

Invoerkolom
Selecteer in de lijst met beschikbare invoerkolommen.

Uitvoeralias
Typ een alias voor elke kolom. De standaardwaarde is de naam van de invoerkolom; U kunt echter elke unieke, beschrijvende naam kiezen.

Operation
Kies uit de lijst met beschikbare bewerkingen met behulp van de volgende tabel als richtlijn.

Operation Description
GroupBy Verdeelt gegevenssets in groepen. Kolommen met elk gegevenstype kunnen worden gebruikt voor groepering. Zie GROUP BY voor meer informatie.
Sum Hiermee worden de waarden in een kolom opgeteld. Alleen kolommen met numerieke gegevenstypen kunnen worden opgeteld. Zie SUM voor meer informatie.
Gemiddeld Retourneert het gemiddelde van de kolomwaarden in een kolom. Alleen kolommen met numerieke gegevenstypen kunnen worden gegemiddeld. Zie AVG voor meer informatie.
Aantal Retourneert het aantal items in een groep. Zie COUNT voor meer informatie.
CountDistinct Retourneert het aantal unieke niet-nulwaarden in een groep. Zie COUNT en Distinct voor meer informatie.
Minimum Retourneert de minimumwaarde in een groep. Beperkt tot numerieke gegevenstypen.
Maximum Retourneert de maximumwaarde in een groep. Beperkt tot numerieke gegevenstypen.

Vergelijkingsvlagmen
Als u Groeperen op kiest, gebruikt u de selectievakjes om te bepalen hoe de transformatie de vergelijking uitvoert. Zie Tekenreeksgegevens vergelijken voor meer informatie over de vergelijkingsopties voor tekenreeksen.

Aantal afzonderlijke schaal
Geef desgewenst het geschatte aantal afzonderlijke waarden op dat door de aggregatie kan worden geschreven. Standaard is de waarde van deze optie niet opgegeven. Als zowel CountDistinctScale als CountDistinctKeys zijn opgegeven, heeft CountDistinctKeys voorrang.

Waarde Description
Onbepaald De eigenschap CountDistinctScale wordt niet gebruikt.
Low Aggregatie kan ongeveer 500.000 afzonderlijke waarden schrijven.
Gemiddeld Aggregatie kan ongeveer 5.000.000 afzonderlijke waarden schrijven.
High Aggregatie kan meer dan 25.000.000 afzonderlijke waarden schrijven.

Aantal unieke sleutels
Geef desgewenst het exacte aantal afzonderlijke waarden op dat door de aggregatie kan worden geschreven. Als zowel CountDistinctScale als CountDistinctKeys zijn opgegeven, heeft CountDistinctKeys voorrang.

Editor voor aggregaattransformatie (tabblad Geavanceerd)

Gebruik het tabblad Geavanceerd van het dialoogvenster Aggregate Transformation Editor om onderdeeleigenschappen in te stellen, aggregaties op te geven en eigenschappen van invoer- en uitvoerkolommen in te stellen.

Opmerking

De opties voor sleutelaantal, sleutelschaal, afzonderlijke sleutelaantallen en afzonderlijke sleutelschaal zijn van toepassing op het onderdeelniveau wanneer deze zijn opgegeven op het tabblad Geavanceerd , op het uitvoerniveau wanneer deze zijn opgegeven in de geavanceerde weergave van het tabblad Aggregaties en op kolomniveau wanneer deze zijn opgegeven in de kolomlijst onder aan het tabblad Aggregaties .

In de aggregatietransformatie verwijzen sleutels en schaal van sleutels naar het aantal groepen dat wordt verwacht als resultaat van een Groeperen op-bewerking. Aantal afzonderlijke sleutels en aantal afzonderlijke schaal verwijst naar het aantal afzonderlijke waarden dat naar verwachting het resultaat is van een afzonderlijke tellingsbewerking .

Options

Schaal van sleutels
Geef desgewenst het geschatte aantal sleutels op dat door de aggregatie wordt verwacht. De transformatie gebruikt deze informatie om de oorspronkelijke cachegrootte te optimaliseren. Standaard is de waarde van deze optie niet opgegeven. Als zowel de schaalvan sleutels als het aantal sleutels is opgegeven, heeft het aantal sleutels voorrang.

Waarde Description
Onbepaald De eigenschap Sleutelsschaal wordt niet gebruikt.
Low Aggregatie kan ongeveer 500.000 sleutels schrijven.
Gemiddeld Aggregatie kan ongeveer 5.000.000 sleutels schrijven.
High Aggregatie kan meer dan 25.000.000 sleutels schrijven.

Aantal sleutels
Geef desgewenst het exacte aantal sleutels op dat door de aggregatie wordt verwacht. De transformatie gebruikt deze informatie om de oorspronkelijke cachegrootte te optimaliseren. Als zowel de schaalvan sleutels als het aantal sleutels is opgegeven, heeft het aantal sleutels voorrang.

Aantal afzonderlijke schaal
Geef desgewenst het geschatte aantal afzonderlijke waarden op dat door de aggregatie kan worden geschreven. Standaard is de waarde van deze optie niet opgegeven. Als zowel de schaal van aantal afzonderlijke sleutels als het aantal afzonderlijke sleutels zijn opgegeven, heeft aantal afzonderlijke sleutels voorrang.

Waarde Description
Onbepaald De eigenschap CountDistinctScale wordt niet gebruikt.
Low Aggregatie kan ongeveer 500.000 afzonderlijke waarden schrijven.
Gemiddeld Aggregatie kan ongeveer 5.000.000 afzonderlijke waarden schrijven.
High Aggregatie kan meer dan 25.000.000 afzonderlijke waarden schrijven.

Afzonderlijke sleutels tellen
Geef desgewenst het exacte aantal afzonderlijke waarden op dat door de aggregatie kan worden geschreven. Als zowel de schaal van aantal afzonderlijke sleutels als het aantal afzonderlijke sleutels zijn opgegeven, heeft aantal afzonderlijke sleutels voorrang.

Automatische uitbreidingsfactor
Gebruik een waarde tussen 1 en 100 om het percentage op te geven waarmee het geheugen kan worden uitgebreid tijdens de aggregatie. De waarde van deze optie is standaard 25%.

Zie ook

gegevensstroom
Integration Services-transformaties