wtorek, 2 kwietnia 2013

Kłótnia o tabelę przestawną, czyli architektura błota w praktyce

Część I: Co to jest Tabela Przestawna?

                        Panu Marcinowi Sz, analitykowi, nie informatykowi....

Link do następnej części cyklu

1. Wstęp - motto.

Wypowiedzi Pewnego Informatyka (wszystkie podkreślenia - KR):
Pierwsza – do mnie:
Pański kolega, zupełnie poważnie, tłumaczy ludziom różnicę miedzy OLAP'em a tabelą przestawną w Excelu (!). (…) Na kolejne porównanie proponuję SQL i Worda. 
Chyba powoli przekraczamy wszelkie granice absurdu.
O co chodziło? Pewien Analityk zadał mojemu koledze pytanie następującej treści:
„Zastanawiam się jaka jest różnica, patrząc z punktu widzenia użytkownika końcowego – analityka,  między funkcjonalnościami OLAP a funkcjonalnościami tabeli przestawnej w Excelu”.

A oto  Pana Informatyka konkurencyjne wyjaśnienie o zerowej zawartości absurdu, wypowiedź druga - do Pewnego Analityka:
Tabela przestawna to tylko kontrolka (do prezentacji danych, źródło danych nie ma znaczenia). OLAP to technologia. (…) Nie ma możliwości i nie można tego porównywać bo to zupełnie inne bajki.
– powiedział Pan Informatyk (dalej w tekście PI), traktując te trzy lakoniczne zdania jako odpowiedź Analitykowi i jednocześnie uzasadnienie swojej  tezy o „absurdzie” odpowiedzi Eksperta (mojego kolegi).

2. Dlaczego ten incydent jest taki ciekawy?

Kluczowe dwa zdania;
Tabela przestawna – to tylko kontrolka. OLAP – to technologia.
Drugie zdanie – to pozornie nic szczególnego. Później o tym. Dopiero w drugiej części, bo to nie tyle "inna bajka" ale inny rozdział tej samej bajki. (Przypis uczyniony po nieporozumieniu pełnym piany, 3 kwietnia).
Ale ta najkrótsza definicja tabeli przestawnej, jaką mi się udało usłyszeć w czasie mojej wieloletniej kariery informatycznej i analitycznej rodzi poważne pytanie:  Co to jest naprawdę Tabela Przestawna?

3. Spór o TP – jako ilustracja sporu o SOA

W tym incydencie ogniskuje się istota sporu o architekturę excelocentyczną (SOA), jako alternatywę architektury błota (MOA). Chłop swoje, baba swoje. Analityk swoje. Informatyk swoje.
Jeśli chodzi o Tabelę przestawną, z analitykiem jest łatwiej. Analitykowi można by rzecz całą skwitować, jak czytelnikowi Nowych Aten, dzieła księdza Benedykta Chmielowskiego, pierwszej polskiej encyklopedii powszechnej, które to  dzieło zawierało słynną definicję:
                Koń, jaki jest, każdy widzi.
Wówczas każdy szlachcic miał konia w stajni i mógł sobie obejrzeć. Wsiadał na niego codziennie i czuł każdym nerwem jego istotę a nawet, niektórzy, jego duszę.  Dla ludzi praktycznych tworzenie „naukowej” definicji konia nie miało więc sensu.
Podobnie z Tabelą Przestawną. Każdy analityk (no, może prawie każdy) codziennie jej używa, czuje jej istotę, przydatność i nie wie tylko, co by bez niej zrobił. Nie będzie pytał o jej definicje, tylko najwyżej o to, o co zapytał nasz Analityk:
Słyszałem o jakimś OLAPie. Ma on coś wspólnego z tabelą przestawną. Co mi to da, jeśli będę miał do tego dostęp?
(Uwaga teraz na ten ustęp, który nastąpi. Ten kursywą, w siedmiu krokach opisujący pewien proces. To opis procesu, w którym główną rolę sprawczą pełni Pan Informatyk. A nie zauważamy, ze najważniejszą, jednak, Analityk).

Ale inaczej z informatykiem. On Tabeli Przestawnej używa właśnie, tylko, jako kontrolki.
  1.     Najpierw w swojej „nadkontrolce” (w jakimś menejdżment studiou, ups, sorry, skompromitowałem się, w Business Intelidżens coś tam, naprawdę nie pamiętam, komputer z tymi bajerami akurat mam w naprawie...) do zarządzania serwerem analitycznym wyklika w pocie czoła kostkę OLAP. Co to jest kostka OLAP? Za chwilę krótko wyjaśnimy. To nic strasznego.
  2.     Potem kliknie w kontrolkę „Tabela Przestawna” i „podejrzy”, czy wszystko w porządku. Kilka chwil – i już wie. Zrobił swoje. Teraz niech się nad tym pastwi analityk.
  3.     Dostępu (w Excelu, tak, jak by chciał) do kostki wyklikanej przez informatyka – analityk nie dostanie. Albo – dostanie tylko na czas wdrożenia. Kiedy jeszcze bi – aj nie ruszył.
  4.     Potem – dostęp tylko w interface’ie (kontrolce) tabeli przestawnej bi – aja. Własnej kontrolce bi - aja. Bo bi – aj – to wielki pan, prawie, jak tuhaj – bej, ma własną kontrolkę Tabeli Przestawnej.
  5.   Jak analityk koniecznie chce, to może zawsze użyć innej kontrolki - „Excel”. Tuhaj bej ma i taką. Wówczas analityk otrzyma w Excelu piękną tabelkę prostokątną, z nagłówkami, której postać wynika z tego, jak obsłużył „kontrolkę” TP w tuhaj - beju.
  6.   Jak wejdziemy w szczegóły, to się okaże, że musi jeszcze wykonać mnóstwo czynności, które równają się ciągnięciu wózka inwalidzkiego po błocie. Ale później?
  7.    Później może już w Excelu robić, co chce. Na przykład użyć teraz Tabeli Przestawnej Excela, „jednego z najbardziej skomplikowanych narzędzi Excela”. „Niektórzy użytkownicy z niej nie korzystają, bo uważają, że jest …za skomplikowana.” To nie ja, to John Walkenbach. Mój jest tylko wielokropek.

To, co powyżej, to była właśnie architektura błota, MOA w działaniu.
A teraz ....

4. Co to jest Tabela Przestawna?

Analitykowi ten fragment właściwie nie jest potrzebny. Chyba, że początkujący. Aaa – to co innego. Ale i taki doświadczony niech poczyta. Będzie wiedział, jak ja tłumaczę, co to jest Tabela Przestawna – informatykowi. Bo jego wizja „kontrolki”, proszę wybaczyć szczerość, jest cokolwiek komiczna.
Akurat w tym wypadku, moim zdaniem , Wiki wygrywa z koryfeuszem Excela, Walkenbachem.
Definicja Wiki, jest lakoniczna, i co najważniejsze, przynajmniej w części oddaje najlepiej istotę rzeczy.
Tabela przestawna (terminologia arkusza Microsoft Excel) –  narzędzie analityczne arkusza kalkulacyjnego…

Dalszy ciąg już nie jest tak dobry. Ale zatrzymajmy się nad tym określeniem „narzędzie analityczne arkusza”. I przypomnijmy wzmiankę o nim Johna: „Jedno z najbardziej skomplikowanych”.
Spróbujmy więc sami dopowiedzieć resztę. Mamy do czynienia z jednym z najbardziej skomplikowanych narzędzi analitycznych, jednej z najbardziej zaawansowanych, najbogatszych funkcjonalnie, najbardziej elastycznych platform analizy biznesowej. Najbardziej rozpowszechnionych. I, w pewnych kręgach, najbardziej pogardzanego i usilnie wypieranego. Ale to już szczegół poza protokółem.
Do czego służy owo narządzie analityczne?

Jeśli odwołamy się do tego tekstu, który objaśnia naturę tabeli faktów, jako punktu wyjścia do ich analizy, najprościej będzie powiedzieć, że

Tabela Przestawna służy do:

  • wieloaspektowej, wielowymiarowej i hierarchicznej analizy 
  • wszystkich dostępnych cech 
  • pewnego zbioru faktów.


Tabela 1 Fakty zebrane w tabeli


Każdy wiersz tabeli – to pojedynczy FAKT.
Kolumna „Wartość” jest miarą tabeli faktów. Jej istnienie jest warunkiem istnienia FAKTU.
Miara może być dowolną funkcją, ale najczęściej – to suma kolumny.
Jeśli odfiltrujemy rekordy dla jakiejś wartości cechy (np. dla roku 2010-tego), otrzymamy sumę kolumny dla wartości cechy - Rok – równej 2010. 
Jeśli dołożymy drugi filtr – nazwę towaru – „Śruba M 8x30”, otrzymamy sumę kolumny dla dwóch wartości cech – roku „2010” i towaru – „śruba M 8x30”.

Dodając kolejne filtry zawężamy pole analizy do coraz bardziej szczególnego przypadku – np. dwa pierwsze znaki kodu pocztowego (pewien obszar terytorium Polski). I tak dalej, bez końca. Im więcej cech opisuje fakt, tym dokładniejszą analizę, dotyczącą bardziej szczególnego przypadku możemy przeprowadzić.
Można sobie również wyobrazić fakt opisany większą liczbą miar. Oprócz wartości sprzedaży, dodajmy koszt własny sprzedaży opisanej przez wiersz oraz marżę. Będziemy mogli przeprowadzać trzy analizy określane przez ten sam zestaw cech, albo po prostu jedną kompleksową analizę pod trzema różnymi kątami, z miarą złożoną z trzech składników.

Jak tabela przestawna ułatwia taka analizę?
Kolumny „Data”, „Mc”, „Rok”, KodPocztowy”, „Kod2”, „Nazwa” – to cechy poszczególnych faktów.
Tabela przestawna (Niżej prezentowana w tabeli 2) umożliwia szybkie i różnorodne ustawianie tych cech, jako etykiet wierszy (w Tabeli 2 – Nazwy towarów), kolumn (w tabeli 2 – Rok) oraz „stron”, czyli wartości filtru (w tabeli 2 – Kod2). 

W środku tabeli (w tzw. polu Dane) na przecięciu kolumn wierszy i kolumn Tabela Przestawna podaje wartości funkcji agregującej miarę tabeli faktów dla konkretnych kombinacji cech.
Przykładowo – Dla pozycji etykiety wiersza: Śruba M 8x30 w roku 2010 suma wartości (sprzedaży) wyniosła  1 207,71 zł.

Tabela 2 Przykład analizy tabeli faktów. Etykiety wierszy: Nazwy towarów, Etykiety kolumn: Rok, Strony: Kod2

Taką tabelę możemy skonstruować myszką w ciągu kilku chwil, niezależnie od liczby rekordów w tabeli faktów. Tabela faktów może również zawierać prawie dowolną liczbę kolumn z określonymi cechami tych faktów ( a także z innymi miarami).

Specjalista od inteligentnego klikania myszą może więc w ciągu paru minut uzyskać jeden z kilku, kilkunastu czy kilkudziesięciu wariantów – kombinacji cech faktów opisanych wartościami ich miar.
I ten opis – to nie tyle wierzchołek góry lodowej, co raczej przyjazna powłoka rogu obfitości. Obfitości udogodnień (np. automatyczne budowanie hierarchii czasu, automatyczne generowanie tabel dla wszystkich wartości „stron”), funkcjonalności (np. Drill – down dla każdej liczby, wyjątkowo efektywna współpraca z zewnętrznymi źródłami danych), formatowań (np. format liczb dla wartości miar w środku tabeli), funkcji (np. pola wyliczane, funkcja WeżDaneZTabeli) oraz wykresów i ustawień.

Narzędzie analizy dla użytkowników, którzy nie wypuszczają myszki z ręki. Szkoda, że część z nich nie używa tego narzędzia, bo się go …. obawia.

Bardzo możliwe, że wszystko to, albo większość, nasz PI wie. Ale ja mam do niego, na zakończenie tej części rozważań, tylko jedno pytanie:
Czy opisany proces analizy dowolnego zbioru faktów, opisanych pewnym zestawem ich miar i cech (atrybutów) jest kompletny, co do istoty? Czy też istnieje jakiś istotny element, który tutaj nie istnieje i dopiero „technologia OLAP” ten element zawiera? Jaki jest to element i na czym polega jego rola, że ta technologia, to inna bajka niż tabela przestawna?

Być może będzie tu jakaś dyskusja, ale być może będę musiał jednak ciągnąć wątek sam. Bo czasem bywa tak, że szybciej się rzuca pogardliwe uwagi niż pisze sensowne wyjaśnienia.
(Przyp.13 stycznia 2014. Dyskusji nie było, patrz komentarze niżej, ale wniosek jest. Odpowiedź na ostatnie pytanie można sformułować: nie ma istotnej różnicy.)

Zostawiając Pana Informatyka z tym pytaniem, jestem teraz winny Analitykom wyjaśnienie, czym jest kostka OLAP.

5. Czym jest kostka OLAP?

Otóż rozumiejąc istotę „szerokiej” tabeli faktów, pojęcia cechy (i jej synonimów - atrybutu, kryterium, wymiaru …), miary, analizy wielowymiarowej, wreszcie  - tabeli przestawnej, pojęcie kostki staje się dziecinnie proste. Otóż kostka OLAP jest, w pewnym sensie, ignorując cały informatyczny i matematyczny sztafaż, taka tabelą przestawną w pigułce. Tabelą przestawną zapakowaną do torby z suszonym popcornem, mieszczącej się w kieszeni. Ale mającą właściwość takiego rośnięcia, że czasem nie wystarcza wielki kubas.  Kubas pachnącego i gorącego popcornu, który uwielbiają dzieciaki podczas seansu  Shreka ileś tam.

Czy one muszą znać tajniki zaawansowanej technologii suszenia, prasowania i pakowania kukurydzy w torby oraz ich prażenia, i półautomatycznego napełniania kubasów, żeby docenić jej smak? A czy te dzieciaki potrafią odróżnić dobry popcorn od spleśniałego?
Czy dobrze wytłumaczyłem istotę kostki OLAP, opierając się na idei Tabeli Przestawnej?
Jeśli tak, to ….
Stosunek objętości tego punktu w stosunku do poprzedniego jest jednocześnie dowodem na to, że kostka OLAP i Tabela przestawna – to w gruncie rzeczy skrzaty z tej samej bajki.

Prawda?

4 komentarze:

  1. Tutaj jakoś niechętnie komentują...
    Wolą hejtować na GL. Tam utrwaliła się tendencja do prawienia impertynecji.

    Dla pełnego obrazu, zamieszczam komentarz do tego wpisu przez jego bohatera, PI.
    Styl, poetyka, maniery są wręcz podręcznikowym przykładem metody dyskusji.
    Proszę sobie poczytać (następny komentarz)

    OdpowiedzUsuń
  2. Łukasz D.:

    I żeby tak po świętach od razu się kompromitować?
    Kostki nie tworzy się w Management Studio.

    No tak, plama niewywabialna. :) Trzeba coś tam Intelidżens, inaczej nie pójdzie :)

    I oczywiście TO jest najważniejsze? Bez jednego uśmieszku nawet?
    No a na temat to już nic?

    Szanowny PI, trochę wyrozumiałości....błagam ...

    A może jeszcze inaczej się skompromitowałem? To by było jednak ciekawsze ...

    To była nadzieja na poprawienie z Pańskiej strony. Pan natomiast dalej brnie...Ok. Pańska wola.

    I tak:

    1. Nie wytłumaczył Pan czym jest kontrolka. Oto link: http://pl.wikipedia.org/wiki/Wid%C5%BCet
    2. Ile zna Pan tabel przestawnych, nie będących elementem excela?
    3. Widział Pan "tabelę przestawną" w Management Studio 2012? Jak Pan to porówna do tej, która jest w Excelu?
    4. Dostępu (w Excelu, tak, jak by chciał) do kostki wyklikanej przez informatyka – analityk nie dostanie. Albo – dostanie tylko na czas wdrożenia. Kiedy jeszcze bi – aj nie ruszył.
    Poproszę o jakiś dowód, że tak jest.
    5. Jak analityk koniecznie chce, to może zawsze użyć innej kontrolki - „Excel”.
    Bzdura i kłamstwo. Excel nie jest kontrolką! Nie rozumie Pan co to kontrolka.
    6. Tabela faktów o której Pan pisze łamie zasady podawane przez MS dotyczące budowy hurtowni i tabel faktów. Wie Pan dlaczego?

    7. Miara może być dowolną funkcją, ale najczęściej – to suma kolumny.
    Że jak? Bzdura, bzdura i brednie.

    8. W środku tabeli (w tzw. polu Dane) na przecięciu kolumn wierszy i kolumn Tabela Przestawna podaje wartości funkcji agregującej miarę tabeli faktów dla konkretnych kombinacji cech.
    Znam taką tabelę przestawną, która umożliwia przedstawienie w polu danych dowolnych informacji, nawet takich, które nie są miarą. Pomijam wartość analityczną takiego działania. Ale sam fakt jest taki, że jest to możliwe. Co to oznacza?
    9. "Obfitości udogodnień (np. automatyczne budowanie hierarchii czasu, automatyczne generowanie tabel dla wszystkich wartości „stron”), funkcjonalności (np. Drill – down dla każdej liczby, wyjątkowo efektywna współpraca z zewnętrznymi źródłami danych), formatowań (np. format liczb dla wartości miar w środku tabeli), funkcji (np. pola wyliczane, funkcja WeżDaneZTabeli) oraz wykresów i ustawień. (KR)"

    Jeżeli tabela przestawna nie oferuje wymienionych funkcjonalności to co?

    10. "Czy opisany proces analizy dowolnego zbioru faktów, opisanych pewnym zestawem ich miar i cech (atrybutów) jest kompletny, co do istoty? Czy też istnieje jakiś istotny element, który tutaj nie istnieje i dopiero „technologia OLAP” ten element zawiera. Jaki jest to element i na czym polega jego rola, że ta technologia, to inna bajka niż tabela przestawna? (KR)"

    Pan cały czas nie rozumie różnicy między wizualizacją danych, a ich obróbką. Zaraz Panu wyjaśnię dlaczego.
    11. "Zostawiając Pana Informatyka z tym pytaniem, jestem teraz winny Analitykom wyjaśnienie, czym jest kostka OLAP. (KR)"

    Czym jest kostka OLAP?
    I to właśnie tłumaczy wszystko:
    a) Jest pięknym przykładem na Pańskie manipulacje
    b) Pokazuje w jaki sposób przerabia Pan wypowiedzi pod swoje potrzeby
    c) Uświadamia jak Pan najzwyczajniej w świecie kłamie i wprowadza w błąd swoich "słuchaczy"

    Dlaczego?

    Bo na początku była mowa o:

    Tabela przestawna to tylko kontrolka (do prezentacji danych, źródło danych nie ma znaczenia). OLAP to technologia. (…) Nie ma możliwości i nie można tego porównywać bo to zupełnie inne bajki.

    Pan sprowadził to do kostki. Odróżnia Pan koło samochodu od samochodu? Jeżeli to tak OLAP jest samochodem, a kostka OLAP to jego koło. Samochód bez kół nie pojedzie, ale to nie znaczy, że auto oferuje tylko koła. Rozumie Pan?

    12. "Otóż kostka OLAP jest, w pewnym sensie, ignorując cały informatyczny i matematyczny sztafaż, taka tabelą przestawną w pigułce. (KR)"

    Że jak?! A jak kieruje do niej zapytania MDX to czym jest ta kostka?

    13. Prawda? Kłamstwo."

    To jest wypowiedź w wersji merytorycznej.

    OdpowiedzUsuń
  3. A oto komentarz w wersji hard:
    Obaj panowie nie zamieszczają swoich fotografii. Czy to jest powód, że pozwalają sobie na taką odwagę cywilną?

    "Manipulacja a'la Rumiński... czyli jak "cytować", żeby całkowicie zakłamać treść cytowanej wypowiedzi.

    Takie rzeczy to jednak weszły niektórym w krew po tylu latach przeżytych w czasach komunistycznych."

    OdpowiedzUsuń
  4. Moja odpowiedź:

    Sprostuję tylko największe nieporozumienia. Pianę i kalumnie - (rekordowe) sobie (w zasadzie) daruję.
    To nie mój problem. Tylko dla zwykłych czytelników - wyjaśnienie.

    PI:
    "Znam taką tabelę przestawną, która umożliwia przedstawienie w polu danych dowolnych informacji, nawet takich, które nie są miarą. Pomijam wartość analityczną takiego działania. Ale sam fakt jest taki, że jest to możliwe. Co to oznacza?"

    Ja:
    Ten fakt nie jest żadnym ewenementem. Każde pole "szerokiej tabeli" można wstawić do obszaru "Dane" Tabeli przestawnej w Excelu. Oznacza to tylko tyle, że jest wówczas traktowane, jako miara. W postaci liczby wystąpień. (Nie sumy wartości, których wtedy nie ma)

    "10. Czy opisany proces analizy dowolnego zbioru faktów, opisanych pewnym zestawem ich miar i cech (atrybutów) jest kompletny, co do istoty? Czy też istnieje jakiś istotny element, który tutaj nie istnieje i dopiero „technologia OLAP” ten element zawiera. Jaki jest to element i na czym polega jego rola, że ta technologia, to inna bajka niż tabela przestawna?"

    PI:

    "Pan cały czas nie rozumie różnicy między wizualizacją danych, a ich obróbką. Zaraz Panu wyjaśnię dlaczego."

    Ja:
    Ja tu zadałem wyraźne pytanie o to, co wnosi „technologia OLAP” do opisanego procesu. A Pan na to nie odpowiedział, tylko spekuluje Pan na temat tego, co ja rozumiem.

    I ten proces został opisany nie tutaj, tylko we wpisie na moim blogu.
    (Tu był link do ninieszego wpisu)

    Podaję jeszcze raz, jednocześnie dziękując za wzmożone zainteresowanie, zwykłym, nie awanturującym się czytelnikom. :)

    To pytanie i opisany proces - odnosi się właśnie do technologii OLAP. Jest jej "konkurentem".

    Zależało mi, żeby Pan się odniósł do tego procesu i wskazał, co w technologii OLAP jest istotnie nowego w stosunku do opisanego procesu analizy wielowymiarowej w Excelu, przy pomocy Tabeli Przestawnej, zwanej przez Pana kontrolką, czego zresztą nie kontestuję. Tak, jak człowiek jest ssakiem.

    Zależało mi na spokojnej dyskusji, nie nowej awanturze przy akompaniamencie wrzasków mojego nadwornego trolla.

    A Pan? W imputowaniu kłamstwa przebił Pan swojego fana. Gratuluję.

    Ta moja odpowiedź jednocześnie unieważnia wszelkie
    tryumfalne posądzenia mnie o manipulację.

    "11. Zostawiając Pana Informatyka z tym pytaniem, jestem teraz winny Analitykom wyjaśnienie, czym jest kostka OLAP."
    PI:
    "Czym jest kostka OLAP?
    I to właśnie tłumaczy wszystko: (...)
    Ja:
    Dalszej piany nie czerpałem. Jestem przemoczony.
    Wyjaśniam jeszcze, że o "technologii OLAP" zamierzam się wypowiedzieć osobno. Nie zauważył Pan, że to była pierwsza część, czy Pan "manipuluje"?
    Jak Pan widzi, taki zarzut zawsze można odwrócić. Po prostu nie doczytał Pan, prawda?

    Takie są skutki nieprzespania swoich reakcji. WSTYD.

    OdpowiedzUsuń

 Wydawnictwo Helion - pliki przykładów z wydanych książek informatycznych, jak ściągnąć? Wpis nie sponsorowany Helion wydaje ważne dla mnie ...