Aggregation (OLAP)

Aggregation (auch Konsolidierung oder Verdichtung) bezeichnet, im Zusammenhang mit der Verwaltung großer Datenmengen in einem Data-Warehouse, das Zusammenfassen einer Reihe von Fakten zu einem einzelnen Fakt. Beispielsweise lassen sich aus einer Menge von Zahlen der Mittelwert, das Minimum bzw. Maximum oder die Summe bestimmen. Solche Funktionen, die einer Menge von Zahlen einen einzelnen Wert zuordnen, nennt man Aggregationsfunktionen (oder Zusammenfassungsfunktionen). Das Ergebnis wird dann stellvertretend für die Quelldaten verwendet. Der umgekehrte Weg wird als Verfeinerung bezeichnet.

Aggregation und Verfeinerung sind Operationen des Online Analytical Processing (OLAP). Sie bilden einen OLAP-Würfel (englisch cube) auf einen kleineren (Aggregation) oder größeren (Verfeinerung) Würfel ab. Die Operationen finden entlang von Klassifikationspfaden statt und verändern somit die Klassifikationsstufen (auch: Konsolidierungsebenen) der einzelnen Dimensionen.

Die entsprechenden Operationen in einem DBMS werden auch als „Roll up“ und „Roll/Drill down“ bezeichnet. Eine einfache Aggregation ist in SQL mittels GROUP BY möglich.

Einige Multidimensionale Datenbanken verwenden eine memory-basierte Analyse. Sie ermöglichen durch die hohe Performance des Speichermediums und der begrenzten Datenmenge Aggregationen zum Zeitpunkt der Abfrage (Berechnung on-the-fly).

Beispiel

Ein Data-Warehouse enthält als einzelne Fakten Verkäufe nach Datum, Branche und Geschäft. Die Datumsdimension enthält einen Klassifikationspfad mit den Klassifikationsstufen Tag-Monat-Jahr-TOP. Durch Aggregation entlang dieses Pfades lässt sich bei Verwendung der Summenfunktion beispielsweise die Anzahl der Verkäufe nach Jahr, Branche und Geschäft ermitteln. Bei Aggregation auf die oberste Klassifikationsstufe TOP fällt die Datumsdimension zusammen; der Ergebniscube enthält die Gesamtanzahl der Verkäufe aller Zeiten nach Branche und Geschäft. Die Anwendung von Aggregat-Funktionen und ggfs. weiterer arithmetischer Operationen zur Ermittlung einer einzigen Zahl nennt man auch die Ermittlung einer Kennzahl oder eines Key Performance Indicators (KPI).

Aggregatfunktionen

Aggregatfunktionen sind Funktionen, die gewisse Eigenschaften zusammenfassen. Die bei einer Aggregation verwendeten Funktionen lassen sich unterteilen in

  • Distributive Funktionen: Summe (SUM), Anzahl (COUNT), Maximum (MAX), Minimum (MIN)...

Formal lässt sich eine distributive Funktion wie folgt beschreiben: Man teilt den zu aggregierenden Datenbestand in Partitionen auf und es sei das Attribut, welches aggregiert werden soll. Dann gibt es eine Funktion , die auf einer Menge derselben Ergebnisse wie operiert, und lässt sich darstellen als:

.

Dabei ist die Gesamtheit aller Attributwerte im Datenbestand und sind diejenigen Attributwerte, die in der Partition liegen.

Man berechnet also erst die Kardinalität der einzelnen Partitionen und summiert dann die Einzelergebnisse auf.

  • Algebraische Funktionen: Mittelwert (AVG), gestutzter Mittelwert (truncated AVG), Standardabweichung, Top-N...

Ganz analog zu vorher werden algebraisch Funktionen definiert, jedoch hat man hier größere Freiheit, was die Funktion betrifft, die auf den einzelnen Partitionen arbeitet. Musste man hier zuvor dieselbe Funktion anwenden, die auch auf dem gesamten Datenbestand angewendet wird, so kann man hier eine andere Funktion wählen. Damit besitzt eine algebraische Aggregationsfunktion folgende Darstellung:

.

Dabei ist eine Funktion, die auf einer Menge von Ergebnistupeln der Funktion operiert. und sind definiert wie oben.

Die Ausdrücke und bezeichnen dabei das erste beziehungsweise zweite Element eines 2-Tupels.

  • Holistische Funktionen: Median, Rang, Percentile, häufigster Wert...

Holistische Funktionen sind Aggregationsfunktionen, für die keine der beiden vorhergehenden Definitionen zutrifft.

Aggregierbarkeit

Anforderungen an die Dimensionen

  • Überlappungsfreiheit der Zuordnung von Klassifikationsknoten. Beispiel: die Fachrichtung eines Studenten ist nicht überlappungsfrei, denn man kann nicht ausschließen, dass ein Student für mehrere Fachrichtungen eingeschrieben ist.
  • Vollständigkeit der Zerlegung pro Klassifikationsstufe. Beispiele: Die Postleitzahl vom Hauptwohnsitz eines Einwohners ist nicht vollständig, denn es gibt auch Einwohner, die keinen festen Wohnsitz haben. Sie erfordern die Erweiterung der Dimension um eine null-Ausprägung oder eine 'sonstige'-Ausprägung.
  • Typverträglichkeit von Fakt und Aggregatfunktion. Beispiel: für Durchschnittswerte ist eine nochmalige Durchschnittsbildung auf einer höheren Aggregationsebene meist nicht möglich.

Datentypen der Fakten sind

  • voll aggregierbar, wenn alle Fakten, die einen Fluss eines Gutes in einer bestimmten Zeiteinheit quantitativ beschreiben. Hier sind alle Aggregat-Funktionen sinnvoll einsetzbar. Beispiele: Umsatz, Kosten, Stromverbrauch, Warenausgang.
  • teilaggregierbar, wenn alle Fakten, bei denen einige Aggregat-Funktionen nicht oder nur eingeschränkt eingesetzt werden können. Das sind 1. alle Fakten vom Typ Stück oder Bestand. Sie beschreiben eine vorhandene Menge zu einem bestimmten Zeitpunkt. Beispiel: Anzahl der Einwohner, Hochwasserpegel, Kontostand. Diese Fakten können nicht über die Zeit-Dimension summiert werden. Über andere Dimensionen, die den Bezug zum selben Zeitpunkt erhalten, können sie schon summiert werden. 2. gibt es noch weitere Gründe, die die Anwendung einiger Aggregat-Funktionen einschränken. Beispiele: Schulnoten, Datumsangaben, Durchschnittswerte. Hier sind Summierung grundsätzlich nicht sinnvoll oder überhaupt nicht definiert. Die meisten anderen Aggregat-Funktionen können schon angewendet werden.
  • nicht aggregierbar, wenn alle Fakten, bei denen überhaupt keine Aggregatfunktionen sinnvoll eingesetzt werden können. Beispiel: Warengruppen, Postleitzahlen, Kontonummern, Nachnamen. Wenn für den Datentyp keine Ordnung (Sortierbarkeit) definiert ist, dann sind noch nicht einmal die Funktionen Maximum und Minimum anwendbar.

Dimensionshierarchie und Aggregationspfade

Dimensionen lassen sich oft als Hierarchien gliedern.

Wenn jeder Knoten funktional abhängig ist von seinen Vorgängern, dann kann sich ein linearer Aggregationspfad ergeben. Beispiel:

Tag --- Monat --- Quartal --- Jahr

Es kann vorkommen, dass in einer Dimension unterschiedliche Aggregationspfade möglich sind. Beispiel:

Tag --- Woche --- Jahr
Tag --- Monat --- Jahr

Es gibt zwei verschiedene Aggregationspfade, um vom Tag zum Jahr zu führen. Beide liefern dasselbe Ergebnis. Von der Woche kann man jedoch nicht zum Monat gelangen und auch umgekehrt nicht.

An diesem Beispiel wird auch deutlich, dass unterschiedliche Aggregationspfade oft die Gefahr beinhalten, dass die Ergebnisse doch nicht exakt übereinstimmen. Wenn der Jahreswechsel nicht gleichzeitig mit dem Wechsel einer Woche zusammenfällt, dann kann es bei den beiden Aggregationspfaden zu Abweichungen kommen. Für die Behandlung der letzten Woche im Jahr muss eine eindeutige Handhabung gefunden werden, sonst ist der Aggregationspfad Tag --- Woche --- Jahr falsch.

Siehe auch

Literatur

  • Lenz und Shoshani: Summarizability in OLAP and Statistical Databases. SSDBM, 1997.