Aggregatfunktion - Aggregate function
In der Datenbankverwaltung ist eine Aggregatfunktion oder Aggregationsfunktion eine Funktion, bei der die Werte mehrerer Zeilen zu einem einzigen Summenwert gruppiert werden .
Zu den allgemeinen Aggregatfunktionen gehören:
Andere sind:
- Nanmean (Mittelwert ohne Berücksichtigung von NaN-Werten, auch bekannt als "nil" oder "null")
- Stddev
Formal nimmt eine Aggregatfunktion als Eingabe eine Menge , eine Multimenge (bag) oder eine Liste aus einem Eingabebereich I und gibt ein Element eines Ausgabebereichs O aus . Die Eingabe- und Ausgabedomänen können gleich sein, beispielsweise für SUM, oder können unterschiedlich sein, wie beispielsweise für COUNT.
Aggregatfunktionen kommen häufig in zahlreichen Programmiersprachen , in Tabellenkalkulationen und in der relationalen Algebra vor .
Die listaggFunktion, wie im SQL:2016- Standard definiert, aggregiert Daten aus mehreren Zeilen in einer einzigen verketteten Zeichenfolge.
Zerlegbare Aggregatfunktionen
Aggregatfunktionen stellen einen Engpass dar , da sie möglicherweise alle Eingabewerte gleichzeitig benötigen. Beim verteilten Rechnen ist es wünschenswert, solche Berechnungen in kleinere Teile aufzuteilen und die Arbeit, die normalerweise parallel gerechnet wird , über einen Divide-and-Conquer-Algorithmus zu verteilen .
Einige Aggregatfunktionen können berechnet werden, indem das Aggregat für Teilmengen berechnet und dann diese Aggregate aggregiert werden; Beispiele sind COUNT, MAX, MIN,und SUM. In anderen Fällen kann das Aggregat berechnet werden, indem Hilfszahlen für Teilmengen berechnet werden, diese Hilfszahlen aggregiert werden und schließlich die Gesamtzahl am Ende berechnet wird; Beispiele sind AVERAGE(Summe und Zählung verfolgen, am Ende dividieren) und RANGE(Max und Min verfolgen, am Ende subtrahieren). In anderen Fällen kann das Aggregat nicht berechnet werden, ohne die gesamte Menge auf einmal zu analysieren, obwohl in einigen Fällen Näherungen verteilt werden können; Beispiele sind DISTINCT COUNT, MEDIAN,und MODE.
Solche Funktionen werden als zerlegbare Aggregationsfunktionen oder zerlegbare Aggregatfunktionen bezeichnet . Die einfachste kann als selbstzerlegbare Aggregationsfunktionen bezeichnet werden , die als solche Funktionen f definiert sind, so dass es einen Zusammenführungsoperator gibt, so dass
wo ist die Vereinigung von Mehrfachmengen (siehe Monoid-Homomorphismus ).
Zum Beispiel SUM:
- , für einen Singleton;
- , was bedeutet, dass Merge einfach eine Addition ist.
COUNT:
- ,
- .
MAX:
- ,
- .
MIN:
- ,
- .
Beachten Sie, dass selbstzerlegbare Aggregationsfunktionen kombiniert werden können (formal das Produkt nehmend), indem man sie separat anwendet, so dass man zum Beispiel sowohl die SUMals auch COUNTgleichzeitig berechnen kann , indem man zwei Zahlen verfolgt.
Allgemeiner kann man eine zerlegbare Aggregationsfunktion f als eine definieren, die als die Zusammensetzung einer endgültigen Funktion g und einer selbstzerlegbaren Aggregationsfunktion h , ausgedrückt werden kann . Zum Beispiel = / und = − .
AVERAGESUMCOUNTRANGEMAXMIN
Im MapReduce- Framework sind diese Schritte als InitialReduce (Wert auf einzelnem Datensatz/Singleton-Set), Combine (binäre Zusammenführung auf zwei Aggregationen) und FinalReduce (letzte Funktion auf Hilfswerten) und Verschieben der zerlegbaren Aggregation bekannt, bevor die Shuffle-Phase bekannt ist als InitialReduce-Schritt,
Zerlegbare Aggregationsfunktionen sind in der Online-Analyseverarbeitung (OLAP) wichtig , da sie die Berechnung von Aggregationsabfragen anhand der vorab berechneten Ergebnisse im OLAP-Cube statt anhand der Basisdaten ermöglichen. Zum Beispiel ist es einfach COUNT, MAX, MIN,und SUMin OLAP zu unterstützen, da diese für jede Zelle des OLAP-Würfels berechnet und dann zusammengefasst ("aufgerollt") werden können, aber es ist schwierig zu unterstützen MEDIAN, da das für jede Ansicht separat berechnet werden muss .
Andere zerlegbare Aggregatfunktionen
Um den Durchschnitt und die Standardabweichung aus aggregierten Daten zu berechnen, müssen für jede Gruppe verfügbar sein: die Summe der Werte (Σx i = SUM(x)), die Anzahl der Werte (N=COUNT(x)) und die Summe der Quadrate der Werte (Σx i 2 = SUM(x 2 )) jeder Gruppe.
AVG:
- .
oder
- .
oder nur wenn COUNT(X)=COUNT(Y)
- .
SUM(x2): Die Quadratsumme der Werte ist wichtig, um die Standardabweichung von Gruppen zu berechnen
STDDEV:
Für eine endliche Population mit gleichen Wahrscheinlichkeiten an allen Punkten gilt
Dies bedeutet, dass die Standardabweichung gleich der Quadratwurzel der Differenz zwischen dem Mittelwert der Quadrate der Werte und dem Quadrat des Mittelwerts ist.
- .
- .
Siehe auch
- Kreuztabellierung aka Kreuztabelle
- Datenbohrung
- Data-Mining
- Datenverarbeitung
- Extrahieren, transformieren, laden
- Falten (Funktion höherer Ordnung)
- Gruppieren nach (SQL) , SQL-Klausel
- OLAP-Würfel
- Online analytische Verarbeitung
- Pivot-Tabelle
- Relationale Algebra
- Nutzenfunktionen auf unteilbare Güter#Aggregate von Nutzenfunktionen
- XML für die Analyse
- Aggregat-IQ
Verweise
Zitate
Literaturverzeichnis
- Yu, Yuan; Gunda, Pradeep Kumar; Isard, Michael (2009). Verteilte Aggregation für datenparalleles Computing: Schnittstellen und Implementierungen . ACM SIGOPS 22. Symposium zum Thema Betriebssystemprinzipien. ACM . S. 247–260. doi : 10.1145/1629575.1629600 .
- Jesus, Paulo; Baquero, Carlos; Almeida, Paulo Sergio (2011). „Eine Übersicht über verteilte Datenaggregationsalgorithmen“. arXiv : 1110.0725 [ cs.DC ].
- Zhang, Chao (2017). Symmetrische und asymmetrische Aggregatfunktion in Massively Parallel Computing (Technischer Bericht).
Weiterlesen
- Grabisch, Michel; Marichal, Jean-Luc; Mesiar, Radko; Pap, Endre (2009). Aggregationsfunktionen . Enzyklopädie der Mathematik und ihrer Anwendungen. 127 . Cambridge: Cambridge University Press . ISBN 978-0-521-51926-7. Zbl 1196.00002 .
- Oracle-Aggregatfunktionen: MAX, MIN, COUNT, SUM, AVG Beispiele