Kto to pisze i dlaczego uważa, że może...

Moje zdjęcie
Doświadczony. Hmmm. Może docenisz tę cechę? Nie wiem, czy warto. Doświadczenie to głównie to, czego bym nie radził Tobie powtarzać. Ale i tak zrobisz, co zechcesz...

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?