2 Stimmen

SSAS 2012 Verwendung eines Dimensionwerts zum Filtern anderer Dimensionstabellen

Ich habe eine Kundentabelle und mehrere andere Dimensionstabellen, die eine Kunden-ID enthalten.

Was ich gerne hätte, sind die Dimensionstabellen, die nach der Auswahl des Top-Level-Kunden gefiltert sind.

Also, wenn ich habe:

Kunden
Id | Name

DimensionA
Id | KundenId | Wert1
Id | KundenId | Wert2

DimensionB
Id | KundenId | Wert3
Id | KundenId | Wert4

Tatsache
Id | DimensionBId | Faktwert1 ...
Id | DimensionBId | Faktwert2 ...

... ist es möglich, dass die Kunden-ID gefiltert und durch die Dimensionenwerte bis zur Faktentabelle durchläuft?

Oder muss ich immer Kunde mit Fakt in der Dimensionen-Nutzung verknüpfen? Ich sehe, wie ich Kunde über DimensionA mit Fakt verknüpfen könnte, aber ich kann es nur mit einer Zwischentabelle verknüpfen, nicht mit zwei oder mehr.

Oder muss ich tatsächlich die Kunden-ID auch in der Faktentabelle haben?

Jede Hilfe wäre dankbar erhalten.

2voto

Athanasios Kataras Punkte 23111

Alles hängt vom Schema ab, das Sie für Ihr Data Warehouse verwenden.

Ich denke, dass das Sternschema die beste Option ist, die Sie haben.

Wenn Sie es verwenden, müssen Sie eine customer_id in der Faktentabelle haben und diese über die Dimensionsnutzung verknüpfen. Das Gleiche gilt für Dimension A und Dimension B (die Faktentabelle muss eine entsprechende ID für Dimension A und Dimension B haben).

Wenn Sie das auf diese Weise tun, brauchen Sie die Kundend-ID weder in Dimension A noch in Dimension B. Die Verknüpfung wird über die Faktentabelle erreicht.

Andernfalls überlegen Sie dies: Brauchen Sie wirklich 2 Dimensionen? Da die beiden Dimensionen fast identisch sind, wäre es nicht besser, wenn Sie ein neues Feld namens Typ hinzufügen, wobei Typ A und B in Ihrer Datenquellentabelle wäre und den Typ zu Ihrer Hierarchie hinzufügen? Das würde viele Probleme lösen und Ihr Schema viel konsistenter machen!!!

Hier ist ein Link von der Seite von Ralph Kimball Kimball's_Site_Link, der auf eine viel bessere Weise als meine erklärt, was was ist. Sie werden den letzten Absatz sehr informativ finden!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X