2017-05-18 4 views
0

Ich habe die folgenden Einrichtungen in meinem Datamart:Wie werden Dimensionen mit ähnlichen Attributen behandelt?

  • Ort:
  • Benutzer Enthält Informationen wie Land, Stadt, usw.: Enthält Informationen über einen Benutzer dazu gehört auch ihre Adresse, die enthält Land und Stadt

Diese beiden Dimensionen enthalten Attribute für Land und Stadt. Das Speichern der Attribute nur in der Standortdimension wäre sinnvoller, sodass wir keine Duplikate erstellen und die Standortinformationen des Benutzers abrufen können, indem Sie die Ersatzschlüssel der Tabellen über die Faktentabelle zusammenführen. Wenn Sie dies jedoch tun, erhöht sich der Aufwand, da mehrere Joins durchgeführt werden müssen.

Ich bin unerfahren mit dimensionaler Modellierung und Data Warehousing, so weiß ich nicht, welches besser Praxis ist:

  1. Lassen Sie beide der Dimensionen die gleichen Attribute enthalten
  2. die Attribute in der Put Tabelle, zu der es gehört (in diesem Fall Standortabmessung)

Antwort

0

Option 1 ist näher am Kimball Weg. Bei der Dimensionsmodellierung wird der Vermeidung von Datenduplizierung keine Priorität eingeräumt. In diesem Fall würden sie argumentieren, dass die Daten zu mehreren Tabellen gehören. Benutzer haben Informationen über ihre Adresse, so dass Informationen über einen Benutzer - es gehört dem Benutzer.

Wichtig ist, dass die Daten in der Benennung der Felder und der Art des Inhalts übereinstimmen - es liegt bei Ihnen als Verantwortlicher von ETL/DW, die Arbeit zu verrichten, um sicherzustellen, dass dies der Fall ist Fall.

Viele Leute gehen mit Option 2. Auf diese Weise weiß ich nicht die Natur Ihrer Tatsache (so könnte ich falsch liegen), aber es klingt wie, wenn Sie den Standort eines Benutzers wissen möchten, würden Sie habe einen Schlüssel von der Dimension und nicht von der Tatsache - was eine "Schneeflocken" -Struktur wäre. Diese sind nicht immer falsch, erlauben es Ihnen jedoch nicht, aus einem dimensionalen Modell das Beste herauszuholen.

+0

Nehmen wir an, ich versuche, die gekauften Produkte zu messen, kaufen Sie einen Benutzer (Kunde) an einem bestimmten Ort an einem bestimmten Tag. Meine Faktentabelle bildet diese Transaktionen ab. Eine der Fragen, die ich beantworten möchte, sind die verschiedenen Bereiche (Standorte), in denen Nutzer Produkte kaufen. – Amous

+0

Wenn es sich um den Standort des Benutzers und nicht des Geschäfts handelt, in dem er gekauft wurde, ist der Standort in der Benutzerdimensionstabelle enthalten. – Rich

+0

Ich interessiere mich mehr für den Standort des Produkts (z. B. wo das Produkt gekauft wurde). Wäre es in diesem Fall sinnvoll, den Standort in die Produktdimension aufzunehmen? Wenn es in der Produktdimension geht, brauche ich dann wirklich eine Standortdimension? – Amous

Verwandte Themen