Frage

Wir machen eine komplexe Bit Datenakkumulation. Unser Kunde schickt uns ein paar Sachen, die zwei Dimensionen (Zeit und eine Business Unit) umfasst. Die Zeit ist meistens Jahr-Monat. Die Business Unit Dimension hat nur einige Attribute:. Einen Namen und ein paar Kategorien, auf die BU für Berichts- und Analysezwecke gehören

Die Dinge, die sie uns schicken enthält einige aktuelle Statusinformationen (Daten und Codes). Diese scheinen Tatsache artig. Sie senden auch einige Informationen, die die Beziehung mit der Business Unit charakterisiert (meist zusätzlicher Codes). diese sind wiederum einzigartig für die Business Unit und Zeit.

Schließlich haben sie uns Sachen schicken, die eindeutig additive Tatsachen sind. Es umfasst Währung und zählt die richtigen Einheiten haben.

Soll ich vermengen diese qualitativen Informationen in einer einzigen Tatsache Tabelle mit dem Zusatzstoff Fakt? Oder soll ich trenne die qualitativen Sachen aus den quantitativen Sachen (die nur mit Zählungen verwendet werden) (die mit Summe verwendet werden können)?

War es hilfreich?

Lösung

Nur Dinge in der Faktentabelle setzen, wenn sie degeneriert sind (was ein hoher Kardinalität / Einzigartigkeit Probleme in Ihrer Dimension, wo es um die Dimension eine 1-1 Beziehung mit der Faktentabelle nimmt). Kimball empfiehlt die Versuchung zu vermeiden alles andere als degenerierte Dimensionen setzen in den Tatsachen (eindeutige Auftragsnummer, zum Beispiel).

Sie können immer setzen diese in dem, was Kimball fordert eine „Junk“ Dimension. Alle diese Codes können einfach in einen Junk-Dimension in einen Topf geworfen werden. Die meisten Tage, würde in der Faktentabelle als Schlüssel in die Datumsdimension in einer bestimmten Rolle (in der Regel mit einem natürlichen int Schlüssel der Form YYYYMMDD - eines der wenigen Male, die wir nicht über eine Nicht-Identität bedeutungslos Ersatzschlüssel verwenden)

Ich mag zu naiv den Stern als alle Fakten betrachten und dann die Spalten, in die gehen Dimensionen einfach durch Bequemlichkeit bestimmt wird. Man sollte nicht unbedingt, sie als entsprechend eine bestimmte Geschäftseinheit betrachten -. Erinnern, der Stern ist keine ERD-Stil normalisiert OLTP-Datenbank

Andere Tipps

Wenn die Daten sowohl in direktem Zusammenhang mit den Zusatz Tatsache und ist nicht etwas, was Sie wollen, werden die Gruppierung / Sortieranlagen / Suche auf, dann ist es in der Tat Tisch setzen in Ordnung ist.

Beachten Sie jedoch, dass nicht additiven Daten in der Faktentabelle wird entweder Roll-ups verhindern oder wird eine verlustbehaftete Operation werden.

Brad Wilson beschreibt genau die Gefahr, dass sie zu Ihrer Faktentabelle hinzufügen. In der Vergangenheit habe ich Junk-Attribute auf meine Faktentabelle später Refactoring erfordert nur hinzugefügt.

  

Die Dinge, die sie uns schicken enthält einige   Aktuelle Statusinformationen (Termine und   Codes). Diese scheinen Tatsache artig. Sie   auch einige Informationen senden,   charakterisiert die Beziehung   die Business Unit (meist zusätzliche   Codes). diese sind wiederum eindeutig die   Geschäftseinheit und Zeit.

Welche Geschäftszweck dienen die Daten? Offhand, ich würde empfehlen, diese ihre eigenen Dimensionen zu machen und beschreiben sie genau.

Wie flüchtig sind die zusätzlichen Codes, die kommen? Wenn das Korn Ihrer Faktentabelle Datum und BU ist, warum können sie nicht in der BU Dimension einbezogen werden und wie sich langsam ändernden Attribute behandelt?

Ohne weitere Details kann ich keine feste Empfehlung machen, aber diese würden die ersten Fragen sein würde ich mich fragen.

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