Transformation für das Aggregieren
Die Transformation für das Aggregieren wendet Aggregatfunktionen, wie z. B. Average, auf Spaltenwerte an und kopiert die Ergebnisse in die Transformationsausgabe. Neben Aggregatfunktionen stellt diese Transformation die GROUP BY-Klausel bereit, mit der Sie Gruppen für das Aggregieren angeben können.
Die Transformation für das Aggregieren konfigurieren Sie auf der Transformations-, Ausgabe- und Spaltenebene.
- Auf der Transformationsebene konfigurieren Sie die Transformation für das Aggregieren auf Leistung. Hierzu geben Sie die Anzahl von Schlüsseln und Distinct Count-Schlüsseln an, die die Transformation verarbeiten soll, sowie den Prozentsatz, um den der Arbeitsspeicher während des Aggregierens erweitert werden kann. Für die Transformation für das Aggregieren kann auch konfiguriert werden, dass anstelle eines Fehlers eine Warnung generiert wird, wenn der Wert eines Divisors null ist.
- Auf der Ausgabeebene können Sie die Transformation für das Aggregieren auf Leistung konfigurieren, indem Sie die Anzahl von Schlüsseln angeben, die die Ausgabe enthalten soll. Die Transformation für das Aggregieren unterstützt mehrere Ausgaben, und jede kann unterschiedlich konfiguriert werden.
- Auf der Spaltenebene geben Sie die Aggregation an, die von der Spalte ausgeführt wird, sowie die Vergleichsoptionen der Aggregation. Sie können die Transformation für das Aggregieren auch für Leistung konfigurieren, indem Sie die Anzahl der Schlüssel und Distinct Count-Schlüssel in jeder Spalte festlegen und Spalten als IsBig identifizieren, wenn diese hohe numerische Werte oder numerische Werte mit hoher Genauigkeit enthalten.
Die Transformation für das Aggregieren ist asynchron. Das heißt, sie verwendet und veröffentlicht Daten nicht zeilenweise. Vielmehr verwendet sie das gesamte Rowset, führt Gruppierungen und Aggregationen aus und veröffentlicht dann die Ergebnisse.
Diese Transformation übergibt keine Spalten, sondern erstellt im Datenfluss für die veröffentlichten Daten neue Spalten. Nur die Eingabespalten, für die Aggregatfunktionen gelten, oder die Eingabespalten, die die Transformation zum Gruppieren verwendet, werden in die Transformationsausgabe kopiert. Angenommen, eine Transformation für das Aggregieren weist drei Spalten auf: CountryRegion, City und Population. Die Transformation gruppiert nach der CountryRegion-Spalte und wendet die Sum-Funktion auf die Population-Spalte an. Deshalb ist in der Ausgabe die City-Spalte nicht enthalten.
Sie können der Transformation für das Aggregieren auch mehrere Ausgaben hinzufügen und jede Aggregation an eine andere Ausgabe weiterleiten. Wendet beispielsweise die Transformation für das Aggregieren die Funktionen Sum und Average an, kann jede Aggregation an eine andere Ausgabe geleitet werden.
Auf eine einzelne Eingabespalte können mehrere Aggregationen angewendet werden. Wenn Sie z. B. die Summen und Mittelwerte für eine Eingabespalte mit dem Namen Sales haben wollen, können Sie die Transformation so konfigurieren, dass sie die Sum-Funktion und die Average-Funktion auf die Sales-Spalte anwendet.
Die Transformation für das Aggregieren weist je eine Eingabe und mindestens eine Ausgabe auf. Eine Fehlerausgabe wird nicht unterstützt.
Vorgänge
Die Transformation für das Aggregieren unterstützt die folgenden Vorgänge.
Vorgang | Beschreibung |
---|---|
Group By |
Unterteilt Datasets in Gruppen. Spalten eines beliebigen Datentyps können für das Gruppieren verwendet werden. Weitere Informationen finden Sie unter GROUP BY (Transact-SQL). |
Sum |
Summiert die Werte in einer Spalte. Nur Spalten mit numerischen Datentypen können summiert werden. Weitere Informationen finden Sie unter SUM (Transact-SQL). |
Average |
Gibt den Mittelwert der Werte in einer Spalte zurück. Nur für Spalten mit numerischen Datentypen kann der Mittelwert berechnet werden. Weitere Informationen finden Sie unter AVG (Transact-SQL). |
Count |
Gibt die Anzahl von Einträgen in einer Gruppe zurück. Weitere Informationen finden Sie unter COUNT (Transact-SQL). |
Count distinct |
Gibt die Anzahl von eindeutigen Werten ungleich NULL in einer Gruppe zurück. Weitere Informationen finden Sie unter Entfernen von Duplikaten mit DISTINCT. |
Minimum |
Gibt den kleinsten Wert in einer Gruppe zurück. Weitere Informationen finden Sie unter MIN (Transact-SQL). Im Gegensatz zur MIN-Funktion von Transact-SQL kann dieser Vorgang nur mit numerischen, Datums- und Zeitdatentypen verwendet werden. |
Maximum |
Gibt den größten Wert in einer Gruppe zurück. Weitere Informationen finden Sie unter MAX (Transact-SQL). Im Gegensatz zur MAX-Funktion von Transact-SQL kann dieser Vorgang nur mit numerischen, Datums- und Zeitdatentypen verwendet werden. |
Die Transformation für das Aggregieren behandelt NULL-Werte auf die gleiche Weise wie das relationale Datenbankmodul von SQL Server. Dieses Verhalten ist im SQL-92-Standard definiert. Dabei gelten die folgenden Regeln:
- In einer GROUP BY-Klausel werden NULL-Werte wie andere Spaltenwerte behandelt. Enthält die Gruppierungsspalte mehrere NULL-Werte, werden diese in einer Gruppe zusammengefasst.
- In den Funktionen COUNT (Spaltenname) und COUNT (DISTINCT-Spaltenname) werden NULL-Werte ignoriert. Das Ergebnis schließt Zeilen mit NULL-Werten in der benannten Spalte aus.
- In der COUNT (*)-Funktion werden alle Zeilen gezählt, auch Zeilen mit NULL-Werten.
Verarbeiten großer Zahlen in Aggregaten
Eine Spalte kann numerische Werte enthalten, die aufgrund ihres großen Wertes oder der Anforderungen an die Genauigkeit speziell berücksichtigt werden müssen. Die Transformation für das Aggregieren beinhaltet die IsBig-Eigenschaft, die Sie für Ausgabespalten festlegen können, um eine spezielle Handhabung großer oder sehr genauer Zahlen aufzurufen. Falls ein Spaltenwert u. U. 4 Milliarden überschreitet oder eine Genauigkeit über den float-Datentyp hinaus erforderlich ist, sollte IsBig auf 1 festgelegt werden.
Das Festlegen der IsBig-Eigenschaft auf 1 hat folgende Auswirkungen auf die Ausgabe der Transformation für das Aggregieren:
- Der DT_R8-Datentyp wird anstelle des DT_R4-Datentyps verwendet.
- Count-Ergebnisse werden als DT_UI8-Datentyp gespeichert.
- Distinct Count-Ergebnisse werden als DT_UI4-Datentyp gespeichert.
Hinweis: |
---|
Für Spalten, die für die Vorgänge GROUP BY, Maximum oder Minimum verwendet werden, können Sie IsBig nicht auf 1 festlegen. |
Überlegungen zur Leistung
Die Transformation für das Aggregieren enthält Eigenschaften, die Sie festlegen können, um die Leistung der Transformation zu optimieren.
- Legen Sie die Eigenschaften Keys und KeysScale für die Komponente und die Komponentenausgaben fest. Mithilfe von Keys, können Sie die genaue Anzahl von Schlüssel festlegen, die von der Transformation behandelt werden sollen. Mit KeysScale, können Sie eine ungefähre Anzahl von Schlüsseln festlegen. Wenn Sie einen Wert für Keys, festlegen, der bei Ausführen des Pakets von der Transformation empfangen wird, vermeidet die Transformation das erneute Organisieren zwischengespeicherter Gesamtsummen, um die Leistung zu verbessern.
- Legen Sie die Eigenschaften CountDistinctKeys und CountDistinctScale der Komponente fest. Mithilfe von CountDistinctKeys, können Sie die genaue Anzahl von Schlüssel festlegen, die von der Transformation für einen Count Distinct-Vorgang behandelt werden sollen. Mithilfe von CountDistinctScale können Sie eine ungefähre Anzahl von Schlüsseln für einen Count Distinct-Vorgang festlegen. Wenn Sie einen Wert für CountDistinctScale festlegen, der bei Ausführen des Pakets von der Transformation empfangen wird, vermeidet die Transformation außerdem das erneute Organisieren zwischengespeicherter Gesamtsummen, um die Leistung zu verbessern.
Konfigurieren der Transformation für das Aggregieren
Eigenschaften können Sie mit dem SSIS-Designer oder programmgesteuert festlegen.
Klicken Sie auf eines der folgenden Themen, um weitere Informationen zu den Eigenschaften zu erhalten, die Sie im Dialogfeld Transformations-Editor für Aggregieren festlegen können:
- Transformations-Editor für Aggregieren (Registerkarte Aggregationen)
- Transformations-Editor für Aggregieren (Registerkarte Erweitert)
Das Dialogfeld Erweiterter Editor enthält die Eigenschaften, die programmgesteuert festgelegt werden können. Klicken Sie auf eines der folgenden Themen, um weitere Informationen zu den Eigenschaften zu erhalten, die Sie im Dialogfeld Erweiterter Editor oder programmgesteuert festlegen können:
Klicken Sie auf eines der folgenden Themen, um weitere Informationen zum Festlegen von Eigenschaften zu erhalten:
- Vorgehensweise: Aggregieren von Werten in einem Dataset mithilfe der Transformation für das Aggregieren
- Vorgehensweise: Festlegen der Eigenschaften einer Datenflusskomponente mithilfe eines Komponenten-Editors
- Vorgehensweise: Festlegen der Eigenschaften einer Datenflusskomponente im Eigenschaftenfenster
- Vorgehensweise: Festlegen der Eigenschaften einer Datenflusskomponente mithilfe des erweiterten Editors
- Vorgehensweise: Festlegen von Sortierungsattributen für eine Ausgabe
Siehe auch
Konzepte
Erstellen eines Paketdatenflusses
SQL Server Integration Services-Transformationen