Frage

Ich bin neu im Data Warehousing.Zuerst möchte ich genau wissen, ob meine Kopie von The Data Warehouse Toolkit auf dem Weg in mein Postfach ist (Schneckenpost :P).Aber ich studiere das ganze Zeug bereits anhand dessen, was ich im Internet finde.

Was ich jedoch im Internet nicht finde, ist, was zu tun ist, wenn man in einer DW scheinbar mehr als einen Fakt hat.In meinem Fall (Versicherung) erhalte ich Rückerstattungen, die nicht regelmäßig erfolgen.Ein Kunde kann drei Monate lang keine haben und dann zehn in denselben Monaten.Andererseits gibt es bei mir „Abonnementgebühren“ (ich bin mir nicht sicher, was der korrekte englische Begriff ist, aber Sie verstehen, worum es geht), die jeden Monat oder alle drei Monate erhoben werden.Das scheinen mir eindeutig zwei unterschiedliche Tatsachen zu sein.

Diese beiden sind durch einige Dimensionen, wie den Kunden oder das „Versicherungsprodukt“, irgendwie lose miteinander verbunden.Sind das nun zwei unterschiedliche Warehouses, auf denen ich zwei unterschiedliche Berichte erstellen und die Berichte dann außerhalb des DW verbinden muss?Oder gibt es eine Möglichkeit, dies so zu gestalten, dass es zu einem Single-Descent-DW passt?Oder sollte ich diese beiden Fakten in einem kombinieren?Dann würde ich wahrscheinlich die Granularität der Rückerstattungen verlieren.

In einem Blog, den ich gelesen habe, stand, dass ein DW immer eine Faktentabelle hat.Andere erwähnen den Schritt des Entwerfens der Faktentabellen mit einem S, aber es gibt keine klare Anweisung, ob zwischen ihnen eine Verbindung besteht oder ob es sich lediglich um unterschiedliche Komponenten desselben DW-Projekts handelt.

Kennt jemand einige Referenzen zu diesem genauen Teil des DW-Designs?

War es hilfreich?

Lösung

Nehmen Sie Ihre Fragen rückwärts.

Ein Data Warehouse kann mehr als eine Faktentabelle haben.Sie möchten jedoch Verknüpfungen zwischen Faktentabellen minimieren.Es ist in Ordnung, Fakteninformationen in verschiedenen Faktentabellen zu duplizieren.

Von den von Ihnen erwähnten Objekten:

Rückerstattung ist eine Tatsache.Der Zeitstempel ist die Dimension der Rückerstattungstatsache.

Die Abonnementgebühr ist eine Tatsache.Der Zeitstempel ist die Größe der Abonnementgebühr.

Eine Rückerstattung kann mehr als einmal erfolgen.Ich vermute, dass für jeden Kunden eine Abonnementgebühr anfällt.Es sieht also so aus, als hätten wir bisher zwei Faktentabellen: „Kunde“ und „Kundenrückerstattung“.

Wenn Sie wüssten, dass es höchstens drei Rückerstattungen geben kann (als Beispiel), würden Sie die Faktentabelle für Kundenrückerstattungen streichen und drei Rückerstattungsspalten in die Kundentabelle einfügen.

Sie erwähnen auch die Versicherung.Ein Kunde kann mehr als eine Police haben.Wir haben also eine dritte Faktentabelle.

Ein Data Warehouse wird normalerweise mit a entworfen Sternschema.Das Sternschema ist im Grunde eine Faktentabelle, die mit einer oder mehreren Dimensionstabellen verbunden ist.Sie werden wahrscheinlich mehr als einen Stern in einem Data Warehouse haben, da wir bereits drei Faktentabellen definiert haben.

Andere Tipps

Mir ist klar, dass ich auf einen alten Beitrag antworte, aber ich bin mit keiner der Antworten zufrieden.Ich habe das Gefühl, dass keiner von beiden die Frage beantwortet hat.

Ein Schema kann einen oder mehrere Fakten enthalten, diese Fakten sind jedoch nicht durch eine Schlüsselbeziehung verknüpft.Es empfiehlt sich, Faktentabellen nicht in einer einzelnen Abfrage zusammenzuführen, wie Sie es bei der Abfrage einer normalisierten/transaktionalen Datenbank tun würden.Aufgrund der Natur von Many-to-Many-Joins usw. wären die Ergebnisse bei einem Versuch falsch.

Die Antwort, nach der Sie suchen, ist, dass Sie einen Drill-Across durchführen müssen, was im Grunde bedeutet, dass Sie jede Faktentabelle (Schema) separat abfragen und die Ergebnisse zusammenführen.Dies kann mithilfe von SQL oder vorzugsweise über ein Berichts-/Analysetool erfolgen, das möglicherweise auf das Data Warehouse verweist.Anstatt die Antworten dazu zu duplizieren, verweise ich alle auf zwei sehr gute Artikel:

Drei Möglichkeiten zum Drill-Across von Chris Adamson

Und

Should of the Warehouse – Drilling Across von Ralph Kimball

Sie können so viele Faktentabellen haben, wie Sie möchten.In Ihrem Beispiel haben Sie möglicherweise etwas wie:

fact_ins_transaction

dimProdukt listet mehrere Produkte auf, darunter auch das Abonnement.dimTransactionType würde mögliche Transaktionen auflisten (Kauf, Rückerstattung, wiederkehrende Abonnementgebühr ...)

Angenommen, Sie sind an einer vereinfachten Abonnementberichterstattung interessiert, könnten Sie eine hinzufügen factSubscription so was:

fact_ins_subscription

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