konto usunięte

Temat: Problemik początkującego

Witam!

Dopiero zaczynam przygodę z OLAP-em (Mondrian) Właśnie utkwiłem w martwym punkcie. Pomóżcie skierować myśl na dobre tory..

Mam kostkę o nazwie "Reklamacje", zawierającą m.in. wymiary takie jak
- data zgłoszenia
- towar
- kontrahent
- grupa serwisowa
...
miary m.in.
- ilość
- czas realizacji
- koszt
...

Poproszono mnie o dodanie do kostki informacji o wadach produktu.
I tu pojawia się kłopot, bowiem jedna pozycja (teraz pojedynczy wiersz w tabeli faktów) może mieć więcej niż jedną wadę. Jak to ugryźć?

konto usunięte

Temat: Problemik początkującego

nie znam możliwości OLAPa, ale teoretycznie kostka w kostce jest możliwa ? :)
Łukasz Kurowski

Łukasz Kurowski Usque Ad Finem

Temat: Problemik początkującego

M arcin M ędelski - G uz:
Witam!

Dopiero zaczynam przygodę z OLAP-em (Mondrian) Właśnie utkwiłem w martwym punkcie. Pomóżcie skierować myśl na dobre tory..

Mam kostkę o nazwie "Reklamacje", zawierającą m.in. wymiary takie jak
- data zgłoszenia
- towar
- kontrahent
- grupa serwisowa
...
miary m.in.
- ilość
- czas realizacji
- koszt
...

Poproszono mnie o dodanie do kostki informacji o wadach produktu.
I tu pojawia się kłopot, bowiem jedna pozycja (teraz pojedynczy wiersz w tabeli faktów) może mieć więcej niż jedną wadę. Jak to ugryźć?

Najlepiej jak proszący się wypowie, co chce osiągnąć w tej sytuacji... Może istnieje główny powód reklamacji i ten trzeba wskazać, może trzeba zbudować drugą tabelę faktów na poziomie powodów rozbijając miary wg jakiegoś klucza, może chce, żeby sklejać powody reklamacji do jednego wiersza po przecinku. Jak widać całkiem sporo może chcieć ;).

konto usunięte

Temat: Problemik początkującego

Łukasz Kurowski:

Najlepiej jak proszący się wypowie, co chce osiągnąć w tej sytuacji... Może istnieje główny powód reklamacji i ten trzeba wskazać, może trzeba zbudować drugą tabelę faktów na poziomie powodów rozbijając miary wg jakiegoś klucza, może chce, żeby sklejać powody reklamacji do jednego wiersza po przecinku. Jak widać całkiem sporo może chcieć ;).

Łukasz proszący nie jest w stanie sprecyzować. :-) On chce, żeby mu "dodać do kostki", żeby "mógł analizować pod kątem wad" :-) Kostka służy do analiz "ad hoc".
Myślałem o zaproponowanych przez Ciebie rozwiązaniach i tak:
- jeśli dodam mu listę po przecinkach (zaleta - da się zrobić w 5 minut :>), to nie będzie (?) mógł wygodnie wybrać reklamacji, w których występuje wskazana (jedna) wada
- chcąc rozbić miary wg klucza pojawia się problem z miarą "ilość"
* Jeśli ilości nie rozbijemy, OLAP zsumuje ilość wielokrotnie (gdy nie ustawimy fitra na wadę)
* Jeśli rozbijemy, uzyskamy zaniżoną (ułamkową) ilość wyrobów w przypadku ograniczenia wyświetlenia do pojedynczej wady

Intuicja podpowiada mi, że nie jest to rzadka sytuacja, a więc powinny na to być na to proste rozwiązania - np. coś w rodzaju ustawienia "Zezwalaj na wiele wartości" w polu typu "odnośnik" w Sharepoint, ograniczenie sumowania do określonego levelu, pole typu "set", "kostka w kostce", ... jak i czym?M arcin M ędelski - G uz edytował(a) ten post dnia 28.01.11 o godzinie 11:27
Łukasz Kurowski

Łukasz Kurowski Usque Ad Finem

Temat: Problemik początkującego

M arcin M ędelski - G uz:
Łukasz proszący nie jest w stanie sprecyzować. :-) On chce, żeby mu "dodać do kostki", żeby "mógł analizować pod kątem wad" :-) Kostka służy do analiz "ad hoc".
Myślałem o zaproponowanych przez Ciebie rozwiązaniach i tak:
- jeśli dodam mu listę po przecinkach (zaleta - da się zrobić w 5 minut :>), to nie będzie (?) mógł wygodnie wybrać reklamacji, w których występuje wskazana (jedna) wada

Czemu miałby nie móc wybrać? Nie znam tego narzędzia, ale założenie warunku na sprawdzenie, czy podana wartość występuje w ciągu znaków może jest.
- chcąc rozbić miary wg klucza pojawia się problem z miarą "ilość"
* Jeśli ilości nie rozbijemy, OLAP zsumuje ilość wielokrotnie (gdy nie ustawimy fitra na wadę)
* Jeśli rozbijemy, uzyskamy zaniżoną (ułamkową) ilość wyrobów w przypadku ograniczenia wyświetlenia do pojedynczej wady

Możesz dodać obie wersje miary i próbować przetłumaczyć jak stosować jedną i drugą :).

konto usunięte

Temat: Problemik początkującego

Jeżeli możliwych wad jest mało (~10) i są one znane z góry, to możesz stworzyć wymiar zawierający wszystkie możliwe kombinacje wad. Będzie ich 2^n, więc dla 10 wad tabela wymiaru będzie stosunkowo mała (1024 wartości). Pozycje w tabeli wymiaru mogą mieć po 1 atrybucie dla każdej wady, co umożliwi filtrowanie zarówno po zestawie wad, jak i po poszczególnych wadach.

Wymiaru wad nie musisz tworzyć od razu, a np. dodawać nowe wiersze w sytuacji, gdy pojawia się nowa kombinacja wad.

W przypadku gdy możliwych wad jest dużo i ich typy mogą nie być znane z góry, powinieneś zastosować tzw. bridge dla multivalued dimension, z jakim masz tu do czynienia. Tworzysz tabelę dla poszczególnych wad oraz tabelkę łączącą tabelę faktów z tabelą wad - będzie ona zawierała klucz grupy wad i klucz konkretnej wady, przyporządkowując w ten sposób wady do konkretnej grupy wad i grupę wad do konkretnej reklamacji. Nie znam wspomnianego przez Ciebie narzędzia, ale przypuszczam, że z takim rozwiązaniem sobie raczej nie poradzi.

Polecam Ci "The Data Warehouse Toolkit" Ralpha Kimballa, strona 262 - znajdziesz tam dokładniejszy opis, tego o czym wspomniałem po wyżej.Marcin Choiński edytował(a) ten post dnia 29.01.11 o godzinie 01:49

konto usunięte

Temat: Problemik początkującego

Moja propozycja:
- osobna tablica faktów - wady z produktów - na pewno przyda się do innych analiz
- oznaczenie tzw. głównej pozycji np. wg kosztów naprawy
- jeśli zajdzie potrzeba skopiowanie części atrybutów z głównej wady do reklamacji

Ten sam problem występuje często więc warto sobie opanować jak to rozwiązywać np. pozycje na fakturze, osoby na umowie i podobne zagadnienia.

A prawda jest taka ze zawsze znajdzie się ktoś komu dane przypisanie nie będzie pasowało. Jeśli zrobisz wg wartości ktoś powie że powinno być tylko wg kosztów materiałów, ktoś inny powie że najważniejsze są koszty robocizny i zawsze znajdzie się szaleniec co stwierdzi że najważniejsze są usterki powodujące niemożliwość działania i masz sam określić "dobry" algorytm ich oznaczania. Wiec w końcu i tak szaleńca odeślesz do faktów wg. podziału na konkretna wadę a resztę przekonasz to tego co zrobiłeś.

konto usunięte

Temat: Problemik początkującego

Grzegorz Niemczyk-Szyszka:
Moja propozycja:
- osobna tablica faktów - wady z produktów - na pewno przyda się do innych analiz

Chyba raczej 'tabela' faktów...
- oznaczenie tzw. głównej pozycji np. wg kosztów naprawy
- jeśli zajdzie potrzeba skopiowanie części atrybutów z głównej wady do reklamacji

To jest trochę hack, wariacja na temat tabeli mostkowej, o której wspomniałem, a kopiowanie atrybutów w ramach DWH woła wręcz o pomstę do nieba...
Ten sam problem występuje często więc warto sobie opanować jak to rozwiązywać np. pozycje na fakturze, osoby na umowie i podobne zagadnienia.

Pozycje na fakturze są z reguły pozycjami w tabeli faktów, a numer faktury wymiarem zdegenerowanym, to chyba najbardziej klasyczny przypadek i nie jest to analogia do tej sytuacji. Tutaj jest klasyczny przypadek wielowartościowego wymiaru, gdzie nie możemy i nie chcemy schodzić niżej z granulacją, a mamy różne zestawy wartości dla pojedynczego wiersza tabeli faktów. Standardowe i poprawne rozwiązanie takiego problemu opisałem powyżej.

konto usunięte

Temat: Problemik początkującego

Marcin, konkretnie i na temat - wielkie dzięki.
Niestety pomysł z tabelą 2^n (w moim przypadku n silnia, bo wad może być 1..n) odpada - tablica możliwych wad liczy kilkadziesiąt pozycji, podzielonych na kategorie.
Struktura mojej bazy SQL jest taka jak opisałeś, tj. bridge pomiędzy tabelą wad a tabelą reklamacji produktu. Odnoszę wrażenie, że problem tkwi w narzędziu (freeware...) Można gdzieś zobaczyć, jak komercyjne narzędzia radzą sobie z takim "multivalued dimension"?

konto usunięte

Temat: Problemik początkującego

M arcin M ędelski - G uz:
w moim przypadku n silnia, bo wad może być 1..n

Tak dla ścisłości ;-)

Skoro możliwych wad jest n, to możliwych ich zestawów (1 do n elementowych) jest tyle ile możliwych podzbiorów zbioru n-elementowego, czyli 2^n. Ściślej rzecz ujmując będzie ich 2^n-1, bo zakładamy że dla reklamacji istnieje przynajmniej 1 wada (bo inaczej skąd reklamacja), stąd nie uwzględniamy zbioru pustego.

n! to liczba możliwych permutacji zbioru n-elementowego...
Niestety pomysł z tabelą 2^n (w moim przypadku n silnia, bo wad może być 1..n) odpada - tablica możliwych wad liczy kilkadziesiąt pozycji, podzielonych na kategorie.
Struktura mojej bazy SQL jest taka jak opisałeś, tj. bridge pomiędzy tabelą wad a tabelą reklamacji produktu. Odnoszę wrażenie, że problem tkwi w narzędziu (freeware...) Można gdzieś zobaczyć, jak komercyjne narzędzia radzą sobie z takim "multivalued dimension"?

Nie widziałem nigdy w akcji mechanizmu, który wspierałby to out of the box z nazwy (co nie znaczy, że go nie ma). Sprowadza się to do zabawy SQLem, albo klikologią w ramach danego narzędzia (i tak pod spodem wyjdzie SQL). Najlepiej jednak samemu trzymać nad wszystkim kontrolę i przygotować sobie odpowiedni widok zmaterializowany i do niego dobijać się klikologią.Marcin Choiński edytował(a) ten post dnia 30.01.11 o godzinie 14:59
Łukasz Kurowski

Łukasz Kurowski Usque Ad Finem

Temat: Problemik początkującego

n! to liczba możliwych kombinacji zbioru n-elementowego...

Chyba permutacji...

konto usunięte

Temat: Problemik początkującego

Łukasz Kurowski:
n! to liczba możliwych kombinacji zbioru n-elementowego...

Chyba permutacji...

Jasne, prze_kombinowałem_ ;)

konto usunięte

Temat: Problemik początkującego

Marcin dzięki jeszcze raz.
Znalazłem już opis, jak to zrealizować w Pentaho - trochę przypomina to drapanie się lewą ręką za prawe ucho, ale da się
P.S. podzbiorów rzeczywiście jest 2^n -1 - późna godzina była :)

konto usunięte

Temat: Problemik początkującego

M arcin M ędelski - G uz:
Marcin dzięki jeszcze raz.

Cieszę się, że mogłem trochę pomóc.
Znalazłem już opis, jak to zrealizować w Pentaho - trochę przypomina to drapanie się lewą ręką za prawe ucho, ale da się

Czy mógłbyś podesłać tutaj jakiś link, ew. opisać odpowiednią klikologię w Pentaho. Być może niedługo będę wdrażał tą platformę, więc z chęcią skorzystam z wiedzy :)
P.S. podzbiorów rzeczywiście jest 2^n -1 - późna godzina była :)

Co racja, to racja :)

konto usunięte

Temat: Problemik początkującego

Potraktowałem temat, jako motywację do zapoczątkowania na portalu BI.PL cyklu materiałów na temat modelowania wielowymiarowego. Pierwszy materiał inspirowany tym wątkiem jest tutaj:

http://bi.pl/publications/art/60-modelowanie-wielowart...

konto usunięte

Temat: Problemik początkującego

Marcin Choiński:
Czy mógłbyś podesłać tutaj jakiś link, ew. opisać odpowiednią klikologię w Pentaho. Być może niedługo będę wdrażał tą platformę, więc z chęcią skorzystam z wiedzy :)

Da się to zrobić za pomocą "Virtual Cube" ("kostka-w-kostce"), jednak wymaga nieco hackowania

http://forums.pentaho.com/showthread.php?63081-Variati...

Tymczasowo wykpiłem się dodając listę wad po przecinkach jako wartość, bo były istotniejsze tematy.

Pozdrowienia



Wyślij zaproszenie do