2017-04-27 3 views
0

Eine Frage in Bezug auf dimensionale Modellierung und Rollenspiel. Wir haben eine Adressdimension, die "Rollenspiele" ist. Wir erhalten Adressen aus verschiedenen Quellen einschließlich CRM-Systemen. Adressen können auch unterschiedlicher Art sein, wie z. B. Adresse einer Firma, Einzelperson usw. Aus der Dimension Rollenrelevante Adresse kann eine einzelne Adresse in verschiedenen Fakten als Adresse eines Unternehmens und Adresse zur Abrechnung gekennzeichnet werden.Umgang mit Adresse Dimension und Rolle spielen es in mehreren Fakten

Es gibt verschiedene Faktentabellen und sie haben verschiedene Schlüssel, die Adressdaten enthalten. Fact_Sales würde Schlüssel wie Customer_Address_Key, Company_Head_Office_Address_Key haben. Ich glaube also, dass wir die Adressen in diesen Fakten spielen.

Frage:

Unser Lead Data Architect hat eine Sorge um dieses. • Wir erfassen viele Adressen aus einer Reihe von Systemen. Wie würden wir herausfinden, woher diese Adressen kamen und welche Art von Adressen diese sind, ohne zu den Faktentabellen zu gehen?

Ich würde immer noch vorschlagen, die Fakten durchzugehen, aber ich würde gerne die breitere Gemeinschaft da drüben konsultieren, bevor ich mit den Füßen auf den Boden gehe.

Gibt es einen besseren Weg, dies zu tun, vielleicht eine separate Tabelle, die die Kombination von Address_Key, Address_Type_Key und Source_Key definiert.

Bitte lassen Sie mich wissen, wenn Sie weitere Klärung oder Bilder benötigen usw.

Prost Nithin

Antwort

2

Es klingt wie in der Situation, die Sie haben, dass Sie nur Spalten für die Art der Adresse umfassen sollte und die Quelle der Adresse in der Adressdimension selbst, also steht es alleine und du musst nicht über eine Tatsache gehen, um zu wissen, was es ist. Sie würden keine separate Tabelle mit Schlüsseln benötigen, wie Sie erwähnt haben - die Daten können in der Dimension sicher denormalisiert werden.

Als beiseite:

Obwohl viele Menschen tun, um eine Adresstabelle haben, die getrennt ist, würde der Ansatz von der Kimball Gruppe sein, nicht zu haben haben ‚Adresse‘ oder Standort Dimension als Mehrzweck-Dimension, die allein steht - Es stellt einen Teil dessen dar, was etwas anderes beschreibt (wie ein Unternehmen oder ein Kunde oder sogar ein "Lieferort"). Stattdessen hätten Sie die Dimension (z. B. Kunde) und innerhalb dieser Dimension würden Sie eine Anzahl von Adressfeldern haben, die entsprechend benannt sind (CustomerAddress1, CustomerAddress2, CustomerCity). Sie können die Adresse aus Gründen der Einfachheit hinter den Kulissen zentral verwalten, wobei die anderen Dimensionen über Ansichten oder weitere ETL gebildet werden, aber in der Darstellung des Sternschemas würde die Adresstabelle nicht separat gesehen werden. Die Adressen sind immer noch insofern konform, als sie dasselbe genannt werden und dasselbe bedeuten.

Jedoch gehen viele Menschen mit einem separaten Adresstabelle, wie Sie

-1

getan haben Es ist sehr vernünftig Quelle als Attribut der Dimension erweitert. Die größere Frage ist, wie wählen Sie die "aktuelle" Adresse für einen Kunden, wenn Sie mehrere Quellen haben. Dort werden die Dinge schwierig werden.

Sie benötigen die aktuelle Kundenadresse, um unabhängig von der Quelle, von der sie erfasst wurde, dasselbe in Ihrem Unternehmen zu verwenden. Ich würde dies als eine konforme Dimension bezeichnen.Sie müssen alle Adressquellen derselben Struktur "anpassen", damit Sie sie als einzelne Dimension verwenden können.

In der großen Mehrheit Ihrer Fakten ist die Quelle der Adresse irrelevant. Sie müssen nur wissen, dass es sich um die aktuelle Adresse handelt. Möglicherweise verfügen Sie über ein kleineres Modell, das eine Analyse der Quelle der Kundenadresse bereitstellen kann.

Der schwierige Teil ist zu entscheiden, welche Quelle am vertrauenswürdigsten ist, wenn die Adresse in mehreren Quellen ist. Sie müssen die Quelle und das Datum der letzten Aktualisierung berücksichtigen. Mit anderen Worten, wird die primäre Quelle immer noch bevorzugt, wenn eine weniger vertrauenswürdige Quelle ein jüngeres Update hat.

Typ ist normalerweise nur ein Attribut der Adresse. Wenn Ihre Adresse jedoch für mehrere Dinge verwendet werden kann (physisch, Versand, Abrechnung usw.), muss dies möglicherweise durch die Rollenspielbeziehung definiert werden. Für andere Analytics auf Adresse können Sie Stadt/Zustand & Reißverschluss in unterschiedliche Maße zerreißen, wenn Sie Sachen nach geographischem Standort abbrechen müssen. Ich würde empfehlen, Stadt & Staat als eine Einheit zu verwenden. Wenn Sie Stadt als von Staat getrennt behandeln, erhalten Sie lustige Ergebnisse, wenn Sie nach Städten suchen, die in mehreren Bundesstaaten existieren.

Verwandte Themen