Frage

Ich bin mit der Erstellung eines Data-Warehouse für einen Kunden beauftragt. Die beteiligten Tabellen folgen nicht wirklich die traditionellen Beispiele gibt (Produkt / Bestellungen), so brauche ich etwas Hilfe begonnen. Der Kunde ist im Wesentlichen ein Bearbeitungszentrum für Fälle (ähnlich einen Rechtsfall). Jeder Tag werden neue Fälle in die DB im Rahmen der „Fälle“ Tabelle eingetragen. Jede Spalte enthält einige wenig Informationen auf den Fall bezogen. Wie der Fall bearbeitet wird, zusätzliche One-to-many-Tabellen mit Ereignissen Zusammenhang mit dem Fall bevölkern. Es gibt ganz wenige dieser Ereignistabellen, Beispieltabellen können sein: (Fall offen, Fall-dept1, case-Dept2, case-dept3, etc.). Jede dieser Tabellen hat eine caseid, die auf die „Fälle“ Tabelle ordnet zurück. Es gibt auch ein paar Lookup-Tabellen als auch beteiligt.

Zur Zeit beziehen sich die Reporting-Anforderungen zu Engpässen in den verschiedenen Stufen ausgesetzt wird und die Granularität ist in der Stunde Ebene für bestimmte Bereiche des Prozesses.

Ich kann zu viel hier fragen, aber ich interessiere mich für einige Richtung, wie ich sollte mein Setup Dim und Faktentabellen oder andere Vorschläge, die Sie vielleicht haben.

War es hilfreich?

Lösung

Ich schlage vor, Sie Kimball Bücher überprüfen, insbesondere diese eine , die sollten einige Beispiele müssen Sie Anwendungen für Ihr Problem Domain erhalten denken.

In jedem Fall müssen Sie entscheiden, ob ein dreidimensionales Modell auch geeignet ist. Es ist durchaus möglich, einen 3NF Datenbank ‚Enterprise Data Warehouse‘ mit verschiedenen Indizes oder Zusammenfassungen zu behandeln, oder was auch immer.

Ohne Ihr aktuelles Schema zu sehen, es ist wirklich schwer zu sagen. Klingt wie Sie sich mit mehreren Sterne-Modellen mit einigen angepassten Dimensionen zu binden zusammen enden. Sie könnten also einen Fall Dimension als eine Ihrer angepassten Dimensionen haben. Die Tatsachen voneinander Tabelle in Faktentabellen sein würden, die sowohl auf die angeglichene Dimension verbinden und alle anderen Dimensionen entsprechend die Tatsachen, so zum Beispiel, wenn es ein Mitarbeiter-ID für den Fall offen, Link, würde einen Mitarbeiter angepasst Dimension , aus der Fall-open-Faktentabelle. Diese glichene Dimension mehrmals verknüpft werden könnten aus mehreren Ihrer Tochter Faktentabellen.

Kimball Modellierungsmethode ist recht einfach und kann wie ein Rezept folgen. Sie müssen durch die Identifizierung alle Fakten, die Gruppierung sie in Faktentabellen, Identifizierung einzelner Dimensionen auf jeder Faktentabelle beginnen und diese dann gegebenenfalls in Maßtabellen Gruppierung und den Typ jeder Dimension zu identifizieren.

Andere Tipps

Die Faktentabelle ist der Fall, Fall und es ist ‚faktenlosen‘, dass es keinen numerischen Wert hat. Die Abmessungen wären Zeit, Ereignistyp, Fall und vielleicht ein paar andere, je nachdem, welche anderen Daten im System.

Sie müssen die Ereignistabellen in eine einzige Tatsache Tabelle konsolidieren, mit einer ‚Ereignistyp‘ Dimension gekennzeichnet. Der Durchlauf / Engpass Berichte werden Unterschiede zwischen den Ereigniszeiten für bestimmte Kombinationen von Ereignistypen auf einem bestimmten Fall zu berechnen.

Die Berichte sollten die Ereignis-Ereigniszeiten berechnen und möglicherweise sind sie in ein Histogramm. Sie können auch bestimmte Arten von Ereigniskombinationen und bringen das Etikett auf die Ereignisse von Interesse beschriften. Diese Ereignisse könnten dann die Zeit gegen sie aufgenommen haben, die Slice-and-Dice-Operationen mit einem OLAP-Tool auf den Zeiten erlauben würde.

Wenn Sie Benchmarks bestimmten Phasen des Lebenszyklus Progression wollen würden Sie eine Tabelle, die Fallart geht, Event-Typ1, Event-Typ-2-Benchmark-Zeit.

Mit etwas Massieren, könnten Sie in der Lage sein, ein Data-Mining-Toolkit zu verwenden oder auch eine einfache Regressionsanalyse Korrelationen zu erkennen zwischen Fall Attributen und Event-Ereigniszeiten (YMMV).

Wie jede andere Facette der Entwicklung, müssen Sie das Problem von den End-Anforderungen nähern ( „User Stories“, wenn man so will) zurück. Der konservativste Ansatz für ein Lager ist, einfach eine Kopie der Transaktionsdatenbank darstellen. Von dort durch die Anforderungen geführt, bestimmte Optimierungen vorgenommen werden, um die Leistung bestimmter Datenzugriffsmuster zu verbessern. Ich glaube, dass es wichtig ist, diese jedoch als Optimierungen zu sehen und nicht davon ausgehen, dass ein Data Warehouse automatisch eine komplexe Explosion jeder möglichen Dimension über jede Tatsache sein muss. Meine Erfahrung ist, dass für die meisten Zwecke eine unmittelbare Darstellung ist ausreichend oder sogar ideal für 90 +% der analytischen Abfragen. Im übrigen betrachten zunächst Indizes, indizierte Sichten, zusätzliche Statistiken oder andere Optimierungen, die ohne Auswirkungen auf die Strukturen hergestellt werden können. Dann, wenn die Aggregation oder andere redundanten Strukturen nötig sind, um die Leistung zu verbessern, sollten diese in eine „Data Mart“ Trennung (zumindest vom Konzept her), die davon eine Trennung zwischen primitiven Daten und Redundanzen zur Verfügung stellt. Schließlich, wenn die Anforderungen zu flüssig sind und die Aggregations Anforderungen schwer effizient auf diese Weise funktionieren, dann könnten Sie Großhandel Explosionen von Daten d Sternschema in Betracht ziehen. obwohl wiederum begrenzen diese auf den kleinsten Querschnitt der Daten wie möglich.

Hier ist, was ich mit im Wesentlichen kam. Thx NXC

Fact Ereignisse

EreignisID TimeKey CaseID

Dim Event

EreignisID EventDesc

Dim Zeit

TimeKey

Dim Regionen

regionId RegionDesc

Hüllen

CaseID RegionId

Dies kann der Fall sein, eine Lösung zu wählen, bevor Sie das Problem in Betracht gezogen haben. Nicht alle Datawarehouses passen in das Sternschema Modell. Ich sehe nicht, dass Sie hier alle Daten werden aggregiert. Bisher haben wir eine faktenlosen Faktentabelle und mindestens eine sich rasch verändernden Dimension (Fälle).

Mit Blick auf, was ich sehe so weit ich die zentrale Einheit in dieser Datenbank denken soll der Fall sein. Der Versuch, die Veranstaltung in der Mitte zu bleiben scheint nicht richtig. Versuchen Sie, es ist eine andere Art und Weise suchen. Vielleicht Fall, Events und Veranstaltungen Fall zu starten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top