5

Pracuję w sytuacji, w której przechodzimy od posiadania wielu tabel faktów transakcyjnych na bardziej skomplikowany obraz z agregatami, migawkami itp. W przeszłości było kilka przypadków, w których dane musiały być agregowane przez miesiąc, ale poprzedni deweloperzy właśnie umieścili klucz w pierwszym dniu miesiąca, do którego należał, w kolumnie w tabeli faktów i wskazali na zwykły wymiar daty. Wydaje się to działać poprawnie, mamy hierarchie dzień/miesiąc/rok w kostkach dla każdego wymiaru daty, a użytkownicy robią dobrze, kiedy muszą patrzeć na rzeczy przez miesiąc.Jak zaprojektować skróconą tabelę wymiarów dla dat w magazynie wymiarowym i użyć w SSAS?

Kiedy czytam - głównie prace Kimball, ale także inne przewodniki - sugerujemy, że powinniśmy używać "skurczonego wymiaru" w tych przypadkach. The Kimball Group even specifically mention it in regards to a Month dimension. Ale tak naprawdę nie znajduję zbyt wielu informacji na temat ich implementacji poza tym artykułem i krótkich zapisów, które wydają się zmieniać niektóre jego części.


Jeden z moich szczególnych obaw jest to, że w tej chwili, osoby korzystające nasze kostki są przyzwyczajeni do jednego wymiaru data dla każdego innego rodzaju bieżąco z rok-miesiąc-dzień hierarchii, a oni po prostu tylko iść do poziomu miesiąca, kiedy to jest to, czego potrzebują. Jeśli spowoduje to powstanie osobnego wymiaru z hierarchią na jeden miesiąc, wydaje się, że może to być niepożądany bałagan. Ale czy to jest intencja?

Dwa ostatnie akapity w połączonym artykule są jedyną rzeczą, którą znalazłem, zajmującą się tym, jak to powinno działać w warstwie prezentacji, i po prostu nie rozumiem, co próbują opisać. Kilka przykładów ilustruje sposób, w jaki powinno to wyglądać w sześcianie. Zwykle po prostu próbuję i pomijam to, ale ramy czasowe są bardzo napięte. Więc ...

  • Jeśli to zrobię, jaki jest planowany sposób wyświetlania w module? Czy miałbym dwa oddzielne wymiary daty, z których jeden sprowadza się tylko do miesiąca?
  • Jeśli powyższe stwierdzenie jest poprawne, czy jest to naprawdę ważne, skoro ludzie mogą obecnie bez pytania szczęśliwie wyszukiwać rzeczy na poziomie miesięcznym? Czuję, że brakuje mi tego, czym są naprawdę korzyści. Widzę, że jest to bardziej semantycznie poprawne (jesteśmy na poziomie miesiąca, więc trzymanie pierwszego dnia miesiąca jest odjazdowe i pokazuje niepowiązane atrybuty), ale z użytkownikami, którzy już są do tego przyzwyczajeni, nie jestem przekonany, że to wystarczający powód, aby poświęć więcej czasu na to właśnie teraz. Widzę, że może on działać lepiej, ponieważ byłby to mniejszy wymiar, ale nie mamy problemów z wydajnością. Czy czegoś brakuje?
  • Jeśli wprowadzam zmiany, wszelkie wskazówki dotyczące uzyskania skurczonego wymiaru w module? Zwykle mogę kopać w Internecie, dopóki nie zawęzię czegoś do najlepszej pary opcji, ale naprawdę niewiele jest w pobliżu, a ja doceniłbym słuch od kogoś, kto już to zrobił. Nie szukając niczego olbrzymiego, ale coś, co napisano by trochę bardziej technicznie niż ten artykuł lub mini-przykład, prawdopodobnie dałoby mi poczucie większej jasności co do potrzeb i dlaczego. Artykuł o Kimball szczególnie mnie zirytował, gdy mówiłem o konieczności dołączenia do wymiaru bazowego do skróconego wymiaru, aby zobaczyć atrybuty.

Pierwsze dwa punkty są bardzo duże, ponieważ wiedziałbym, czy muszę wprowadzić zmiany w hurtowni danych, i jeśli je otrzymam, będę bardzo zadowolony z odpowiedzi na te pytania, nawet jeśli nie może pokryć trzeciego punktu.

+2

Poszedłem na trening Kimball i zapytałem Joy o to. Zasadniczo powiedziała, że ​​zakładają, że dobre narzędzie analityczne ma funkcje drążenia poza funkcją drążenia. Stos MSBI nie zapewnia tej funkcji natywnie z SSAS. Tak więc mini wymiary nie będą działać tak, jak sugerują, że powinny. Z tego powodu nie używam ich z SSAS, o ile nie zapewniają one jeszcze dobrej użyteczności. Problem z powiązaniem Twojego faktu z istniejącym wymiarem daty jest prawdopodobnie poziom szczegółowości (dzień), który nie ma zastosowania do fakt na poziomie miesiąca. – mmarie

+1

Masz rację, skończyłbyś z pełnym wymiarem daty, a następnie z wymiarem miesiąca. Będziesz musiał zaktualizować swoje nazwiska, aby odpowiednio odzwierciedlać ich zawartość. Alternatywą do mini-wymiaru jest zmierzenie zakresu tak, aby nie wyświetlały się, gdy wykonasz drążenie do niewłaściwego poziomu. (To moja sugestia, nie Joy.) – mmarie

+0

@mmarie - Dzięki, to świetna informacja. Prawdopodobnie wyjaśnia, dlaczego ludzie unikali ich używania tutaj i dlaczego staram się znaleźć informacje! To, co powiedziałeś, wydaje się być bardzo cenną informacją, nawet jeśli istnieją inne możliwe sposoby - jakąkolwiek szansę na zapisanie jej jako odpowiedzi? Mogę nie zaakceptować od razu tylko po to, aby zobaczyć, czy dostaniemy jakieś inne przemyślenia, ale zdecydowanie przegłosujemy, ponieważ było to już pomocne. –

Odpowiedz

4

To nie jest odpowiedź, ani nie jest to repozytorium Cognos fanboi. Dla porównania chcę podkreślić, jak fakty z wielu ziaren są modelowane w innych narzędziach.

http://www-01.ibm.com/support/knowledgecenter/SSWGNW_8.0.0/com.ibm.swg.im.cognos.ug_best.8.4.0.doc/ug_best_id1339multi-factmulti-grainquery.html%23multi-factmulti-grainquery

http://www.cognoise.com/index.php?topic=17992.0

W pierwszym linku:

  • Miesięczna tabela ma klucz miesiąc i jest połączony z miesiąca w tabeli kalendarzowego
  • Dzienna tabela ma klucz dnia i jest dołączony do tej samej tabeli kalendarza.
  • To, co link nie pokazuje, oznacza, że ​​zdefiniowano on hierarchię poziomów za kulisami, aby narzędzie automatycznie wie, nie podwoić liczyć dane miesięcznym poziomem
  • Rezultatem jest narzędziem automatycznie potrafi zakasać fakty

Nie jestem ekspertem, ale SSAS wygląda na to, że nie obsługuje tego rodzaju funkcji.

Jeśli tak jest, to wydaje mi się, że nie ma sensu modelowanie danych "poprawnie". Przez poprawne rozumowanie przypisuję określony miesiąc do faktu, który jest zdefiniowany tylko na poziomie miesięcznym.

Do tej pory nie widzę problemu z modelowaniem tego przez przypisanie konkretnego dnia w miesiącu. Jeśli tabela faktów jest na tym samym poziomie (co miesiąc), to wiemy, że data w tabeli reprezentuje miesiąc. Przynajmniej możesz chcieć wprowadzić przymus kontroli, który zapewni, że będzie pierwszy w tym miesiącu, więc nie ma dwuznaczności.

Rezultatem jest obserwowanie miesięcznych i codziennych faktów na poziomie miesięcznym, wszystko jest spójne. Obserwując codzienne i comiesięczne fakty na poziomie dziennym, na początku miesiąca widać dużą porcję. Jeśli możesz użyć SSAS, aby ukryć miarę na tym poziomie .. problem rozwiązany.