Suchen...
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

Zeitarten

Im Blogbeitrag „Vom richtigen Umgang mit der Zeit in BI-Datenmodellen“ wurde bereits auf die Problematik Zeit eingegangen. Unsere Empfehlung, nur eine Zeitdimension in ein OLAP-Modell aufzunehmen steht natürlich nach wie vor.

Heute lesen Sie anhand eines Beispiels, wie man diverse Zeitinformationen in ein BI-Modell aufnehmen kann.

Hintergrund

Im Modell soll ein Handelsunternehmen abgebildet werden. Vier Zeitinformationen sind bei allen Händlern von besonders großer Bedeutung:

  • Bestelldatum
  • Lieferdatum tatsächlich sowie vereinbart
  • Verkaufsdatum

Beim Bestellvorgang wird meist auch ein Liefertermin vereinbart, zu dem der Händler dann auch Platz zur Einlagerung vorhalten muss bzw. eine Weiterverteilung in Filialen o. ä. organisiert haben muss.

Weicht das Lieferdatum vom vereinbarten Termin ab, kann es beim Händler zu Problemen kommen: Kein Lagerplatz, Kollision mit anderen Lieferungen etc.

Auch das Verkaufsdatum muss der Händler u. U. mit Preisanpassungen, Werbung o. a. verkaufsfördernden Maßnahmen immer im Auge behalten.

Wir können uns also der Forderung nach Abbildung von mehreren Zeitinformationen nicht verschließen.

Modellüberlegungen

Wie können unsere vier Zeitinformationen abgebildet werden? Je nach Blickwinkel ist die (vergleichende) Umsatzbetrachtung über jede einzelne dieser vier Zeitinformationen sinnvoll und angebracht.

Die zu verarbeitenden Datenvolumina vervielfachen sich mit jeder neuen Zeitbetrachtung.

Diese Informationen können mehr oder weniger sinnvoll via Measures, Measuregroups oder eine Zusatzdimension modelliert werden.

Measures

Die Abbildung der Informationen über vier (Umsatz-)Measures – also z. B. Umsatz nach Bestelldatum, Umsatz nach Lieferdatum und Umsatz nach Verkaufsdatum etc. – kann ohne Weiteres in das Modell eingebaut werden. Die Measures werden wie gewohnt angelegt. Es muss bei der Befüllung des Würfels nur darauf geachtet werden, welche unserer vier Zeitinformationen je Measure mit den Perioden “verlinkt” wird.

Die Darstellung fordert dem Anwender aber einiges an Kreativität ab. Ein und dieselbe Umsatzinformation ist mehrfach vorhanden. Die Frage, welcher Umsatz nun der “Richtige” sei, wird schnell aufkommen. Alle Berechnungen, die auf den Umsatzinformationen basieren, müssen mehrfach abgelegt werden. Vergleiche sind schwierig.

Die Aufnahme weiterer Zeitinformationen erfordert neue Measures und damit eine weitere Vervielfachung der Berechnungen etc.

Man denke jetzt noch kurz über so typische Handelskennzahlen wie Bestände oder Warenbewegungen nach. Für jede dieser Kennzahlen müsste erneut nachgedacht werden, inwieweit die o.g. Zeitinformationen relevant oder besser sinnvoll sind.

Das Modell wird sehr schnell unübersichtlich und schwer wartbar.

Measuregroups

Es ist weiterhin möglich, je eine MeasureGroup je Zeitinformation anzulegen – z.B. “Betrachtung nach Bestelldatum”, “Betrachtung nach Verkaufsdatum” etc.

Die Modellierung ist mit dem Measureansatz sowohl von der Komplexität als auch vom Pflegeaufwand vergleichbar.

Zusatzdimension

Das Modell wird um eine Dimension “Zeitarten” ergänzt. Elemente dieser Dimension sind die abzubildenden Betrachtungen “nach Bestelldatum”, “nach tats. Lieferdatum”, “nach vereinb. Lieferdatum” und “nach Verkaufsdatum”.

Mit Hilfe von DeltaMaster Modeler wird diese Dimension einfach eingefügt:

Bei der Datenbefüllung des Modells ist darauf zu achten, dass auch hier die richtige “Verlinkung” zur Periodendimension vorgenommen wird.

Im Beispiel wurden die Teilabfragen je Zeitart mittels union zu einer großen Abfrage verbunden:

CREATE view [dbo].[V_AllData] as
SELECT  o.OrderID,
              o.LieferantID,
              d.ArtikelID,
              1 as Wertart,
              1 as Periodenansicht,
              1 as Kumulation,
              1 as Zeitart, -- Bestelldatum

              o.Bestelldatum as Periode,


              d.Menge,
              d.Preis,
              d.Menge*    d.Preis as Wert,
              o.Erfasser

FROM [dbo].[T_Import_Orders] o
left join dbo.T_Import_Orderdetails d
on o.OrderID=d.orderid

union all

SELECT  o.OrderID,
              o.LieferantID,
              d.ArtikelID,
              1 as Wertart,
              1 as Periodenansicht,
              1 as Kumulation,
              2 as Zeitart, -- Lieferdatum tats.

              d.Lieferdatum as Periode,

              d.Menge,
              d.Preis,
              d.Menge*    d.Preis as Wert,
              o.Erfasser
FROM [dbo].[T_Import_Orders] o
left join dbo.T_Import_Orderdetails d
on o.OrderID=d.orderid
union all
...

 

Natürlich können weitere Zeitinformationen nachträglich sehr leicht durch Ergänzung neuer Elemente in die Dimension und Erweiterung der Befüllung aufgenommen werden.

Alle Berechnungen müssen nur einmal angelegt werden. Das Modell bleibt übersichtlich und wartungsfreundlich.