Na dwóch śledzonych przeze mnie blogach pojawiły się ostatnio prawie równocześnie dwa wpisy o nieco zbliżonej kolorystyce. Co prawda napisane w różnych językach oraz przez ludzi o kompletnie innych zainteresowaniach, ale obydwa niosą międy wierszami podobne przesłanie: nie warto ograniczać się w życiu do jednego zawodu, jednej branży, jednej pasji.
A jak to u mnie wygląda?
"Od zawsze" pasjonowały mnie komputery i programowanie. Okazuje się, że podobnie do matematyki czy grafiki, informatyka również jest taką "uniwersalną rampą" do różnych dziedzin ludzkiego życia. Dzięki temu, że wylądowałem w tej branży, miałem okazję zapoznać się szczegółowo z mnóstwem różnych rodzajów biznesów. Za każdym razem byłem zdumiony różnicą w percepcji danej firmy (czy branży) widzianej od środka oraz od zewnątrz.
Podobnie do wymienionych wyżej dwóch blogerów, ja również nie jestem ekspertem w żadnej z dziedzin, które zaraz wymienię, niemniej jednak dzięki pracy w IT udało mi się nakarmić swoją ciekawość w takich oto działkach:
- Zautomatyzowana produkcja żywności
- Bankowość korporacyjna i detaliczna
- Obsługa inwestycji
- Ubezpieczenia
- Poker
- Produkcja i sprzedaż mebli kuchennych
- Utrzymanie i konserwacja taboru kolejowego
- Szkolnictwo publiczne i prywatne
- Badania kliniczne
- Usługi internetowe i telekomunikacyjne
- Produkcja i sprzedaż odzieży
- Energetyka
Dość niezwykłe jest to, jak wymienione tu branże są do siebie podobne, gdy spojrzeć na nie z perspektywy danych komputerowych. Wszędzie mamy tabelki, cyferki, sumy oraz nieśmiertelne SELECT * FROM. Od czasu do czasu trafi się jakaś hurtownia danych (tu jest jeszcze więcej podobieństw!). Tu i ówdzie wyrośnie z kurzu i brudu jakiś prekambryjski system oparty o połączone ze sobą łykiem kamienne abakusy, niekompatybilny z czymkolwiek (czasem nawet sam ze sobą), od którego zależy przyszłość firmy.
Najciekawsze jednak w tym wszystkim jest przyjmowanie wiedzy o tym, jak dany biznes działa, jakie są w nim przepływy informacji, ludzi, towarów i pieniędzy. I tak dalej.
W sumie to cieszę się, że nie zostałem kowalem 😉
Pole morfogenetyczne naprawdę istnieje!
Ja bym raczej stawiał na dziadka Bernoulliego i jego Prawo Wielkich Liczb, ale, jak mawiają lokalni, whatever floats your boat 😉
Kiedyś wypiłem jedno piwo więcej niż powinienem i zapadłem w pewien rodzaj rozkminy, która doprowadziła mnie do pewnego wniosku, że w zasadzie wszytko, co robisz na komputerze (grafika, muzyka, wyszukiwanie porno) od strony maszyny w pewien sposób sprowadza się do SELECT * FROM. Oczywiście programy muzyczne, graficzne czy do montażu video nie korzystają z SQL, bo byłoby to nieefektywne, ale generalnie wszystko sprowadza się do odczytu danych, wykonaniu na nich pewnych funkcji i zapisaniu z powrotem. Gdzieś w międzyczasie pojawiają się bardziej skomplikowane algorytmy (np. do obróbki obrazu czy przetwarzania w przestrzeni 3D), ale w większości przypadków nie są niezbędne. Taka hurtownia danych wymaga co prawda ogarnięcie nieco więcej zależności między tabelami ale za to nie potrzebuje nawet linijki specjalistycznego algorytmu. Ot, dużo dodawania i kilka nieco bardziej skomplikowanych zapytań do bazy. Na dobrą sprawę taki Facebook też. Co prawda nie wiemy, jak działa algorytm do wyświetlania postów, ale możliwe, że nie jest bardzo skomplikowany tylko po prostu zakręcony i zaciemniony.
Nie jest to odpowiedź na cały wpis, bo generalnie moje zdanie na ten temat znasz (chociażby z mojego wpisu), ale odnośnie tego fragmentu bazodanowego. Tak mi się skojarzyło, bo jest sobota i właśnie schładzam browara…
Widziałem z bliska kilkanaście projektów hurtowni danych. Większość niedziałających lub działających tak, że lepiej byłoby je skasować, ale skoro już zainwestowano kupę kasy, to wszyscy udają, że jest fajnie. Głównie dlatego, że były prowadzone przez gości, którzy przeczytali książkę przy piwku i wydawało im się, że taka hurtownia to tylko parę SELECT-ów 😉
Widziałem też kilka takich, które działają do dziś i wszyscy są z nich zadowoleni. Te były prowadzone przez ekipę ludzi, którzy na temacie zjedli zęby.
Dlatego jeżeli uważasz, że hurtownia danych to tylko parę sprytnych SELECT-ów, to daj znać jak kiedyś będziesz komuś robił taką hurtownię. Będę wiedział, gdzie łapać klienta na poprawki :)))
Nie do końca się zrozumieliśmy. Przede wszystkim struktura bazy danych, jej logika i powiązania tablic muszą być sensownie przemyślane. Na pewno też jest coś więcej niż kilka sprytnych selectów (np. takich na 80 linii, które łączą wszystkie tablice joinami, groupami i innymi bajerami, który w życiu pewnie nigdy nie użyłem).
Pisząc o skomplikowanych algorytmach miałem na myśli raczej takie związane z wyższą fizyką (symulacja zjawisk fizycznych), matematyką i geometrią (przekształcenia 3D) czy inne fraktale służące do przetwarzania obrazu, sztucznej inteligencji (np. do rozpoznawania obiektów) czy innych wykorzystywanych w wyspecjalizowanych aplikacjach do montowania i compositingu czy nawet CAD.
Jedna hurtownię kiedyś poprawiałem (czyt. pisałem od nowa) właśnie po kimś takim, który obczajał SQL przy piwku. Chociaż wyszło mi to lepiej to dzisiaj mogę stwierdzić, że pewnie niewiele lepiej (to był mój pierwszy poważny projekt, jeszcze przed moim CMS-em). Hurtownia nadal działa (po 9 latach), ludzie jej używają, reklamacji nie mam. Ale gdybym miał do niej teraz usiąść, to pewnie zaprojektowałbym całkiem od zera i zrobił o niebo lepiej. A za kolejne 10 lat pewnie podobnie 🙂
Hurtownię w lepszym lub gorszym stopniu byłby w stanie ogarnąć sam, opisanych wyżej algorytmów absolutnie nie.
Zagadnienie hurtowni danych jest sformalizowane od lat; dziś już nie trzeb wymyślać koła, wystarczy skorzystać z gotowej, przemyślanej i przetestowanej metodologii (jest ich kilka do wyboru, każda ma swoje wady i zalety, choć wolę o nich myśleć bardziej jako o słabszych i silniejszych stronach).
I powodzenia życzę wszystkim, którym się wydaje, że hurtownię danych da się zdefiniować na poziomie stricte bazodanowym. To tylko fragment. Owszem, istotny, ale w oderwaniu od reszty komponentów raczej bezużyteczny.
Przepisałeś od nowa hurtownię danych? Sam?
No to szacun…
Nawiasem mówiąc to, że projekt działa 9 lat później, to miłe uczucie. Też mam kilka takich perełek, których powinienem się w zasadzie wstydzić, bo teraz zrobiłbym je kompletnie inaczej, ale które ciągle działają, o czym wiem od zadowolonych użyszkodników.
Hurtownia danych?! Wow!!! Już sama nazwa mnie zastanawia
No cóż. Nie każdy „siedzi” w branży, więc nie musisz znać tego pojęcia. Nawiasem mówiąc wprowadził je Bill Inmon (jeden z „Wielkich” świata komputerów) na cztery lata przed moimi urodzinami, a więc solidnie ponad 40 lat temu.
Ja w sumie nic nie umiem i w zasadzie nie zajmuję sie niczym sensownym i cieszę się, że jestem nikim. Nie zwracam uwagi i dzięki temu mogę robić co chcę … w czasie wolnym od nic nie robienia i bycia nikim 🙂
„Czas wolny od nicnierobienia” śmierdzi mi jakąś wątpliwej proweniencji rekurencją 😉
Myślenie biega swymi neuronami i czasem rekursja w świecie myśli własnych jest mocnym argumentem 🙂
I’m nobody! Who are you?
Are you nobody, too?
Then there’s a pair of us—don’t tell!
They’d banish us, you know.
How dreary to be somebody!
How public, like a frog
To tell your name the livelong day
To an admiring bog!