Wyobraź sobie, że mamy dwie różne wiadomości: Cardatalog CarStatuslog

Cardatalog Zawiera dane, które mają bezpośrednią stosunek do samochodu i odpowiedniej osoby i zawiera dane o samochodzie.

CarStatuslog Zawiera dane o tym samym samochodzie, jak wspomniano powyżej, które miały klienta w kłodzie. Ale tym razem dane są statusem. Dla pola, takiego jak: "czyszczenie": "NOTLEANED" lub "Oczyszczone".

Oba komunikaty dziennika zawierają car_id. Czy stworzymy jeden stół faktyczny z kluczami zagranicznymi do samochodu i osoby i mają ryzyko, że osoba jest null, ponieważ nie jest to podane. Rozprzestrzeniony?

Przypadek użytkowy byłby: uzyskać dane dla określonego samochodu, w tym stany, które miały i imię i nazwisko.

Jestem nowy w magazynowaniu danych i mam nadzieję, że ktoś może mi pomóc w tej kwestii?

0
Rvh 21 luty 2019, 16:03

2 odpowiedzi

Najlepsza odpowiedź

Standardowa praktyka w magazynowaniu danych jest wykonanie manekina dla tabel wymiarowych, które służy do dopasowania danych "nieznanych". Zapobiega to nulls w kluczach obcych w tabeli faktów.

W zależności od przypadku użycia możesz mieć wiele typów danych "nieznanych". Na przykład można użyć klucza -1 dla "nieznanego" i -2 dla "nie dotyczy danych wymiarowych.

Zobacz także: HTTPS: // www.ckiimballgroup.com/2010/10/design-tip-128-Selecting-default-Values-for-Nulls/.

2
saritonin 21 luty 2019, 15:42

Potrzebujesz dims jako Car Dim, Osoba Dim, Status_DIM (jako wartości czyszczenia, nie oczyszczane "lub" oczyszczone) i date_dim. Person_dim może mieć rzędu "nieznanej" nazwy, gdy otrzymasz nazwę osoby zerowej.

DIM i fakt, że stoły mają związek rodzic / dziecko, co oznacza, że musisz załadować dane w słabym pierwszym (DIM to rodzic), a następnie ładować do tabeli faktów (Dziecko).

Załaduj Dim Ids z powyższych dims w tabeli faktów na podstawie danych, które otrzymujesz. Upewnij się, że 2 kłody masz w nich pola data, dzięki czemu można dołączyć do obu dzienników na karcie Car_id i gdy data w obu kłody pasuje do tego samochodu_d. Jeśli dostaniesz scenariusz, gdy w Cardatalog nie istnieje Car_id, ale nie w CarStatuslog, musisz utworzyć wiersz "nieznanego statusu" w Status_dim, dzięki czemu można go użyć w tabeli faktów. Powodzenia!

1
Sam Kaz 21 luty 2019, 20:43