OLAP (Online Analytical Processing) to sposób organizacji i przetwarzania danych nastawiony na szybkie, złożone zapytania analityczne: agregacje, podsumowania i raporty liczone na dużych zbiorach historycznych. Zamiast obsługiwać tysiące drobnych zapisów na sekundę (to działka systemów OLTP), OLAP odpowiada na pytania w stylu „jaka była sprzedaż per region, kwartał i kategoria produktu w ostatnich trzech latach” — i robi to w sekundy, a nie w trakcie przerwy na kawę.
Jak to działa
Sercem OLAP jest kostka danych (data cube) — wielowymiarowy model, w którym masz miary (np. przychód, liczba zamówień) oraz wymiary, po których je analizujesz (czas, lokalizacja, produkt). Dzięki temu zamiast pisać karkołomne JOIN-y po dziesiątkach tabel, „obracasz” danymi za pomocą typowych operacji: slice (wytnij jeden plaster, np. tylko rok 2025), dice (wybierz podkostkę po kilku wymiarach), drill-down (zejdź z poziomu roku do miesiąca i dnia) oraz roll-up (zwiń szczegóły do sumy).
Dane do OLAP zwykle trafiają z hurtowni (data warehouse) ułożonej w schemat gwiazdy lub płatka śniegu. Spotkasz trzy podejścia: MOLAP (dane wstępnie zagregowane w kostce, najszybsze), ROLAP (zapytania lecą wprost do relacyjnej bazy, skaluje się lepiej) oraz HOLAP, czyli hybrydę obu.
Przykład z praktyki
Załóżmy, że analizujesz sprzedaż w Apache Druid albo ClickHouse. Pytanie biznesowe „przychód per kraj i miesiąc” w SQL analitycznym wygląda tak:
SELECT kraj, DATE_TRUNC('month', data) AS miesiac, SUM(przychod) FROM sprzedaz GROUP BY kraj, miesiac;
W klasycznym OLAP (np. Microsoft Analysis Services) zamiast SQL użyjesz języka MDX, a kostka ma już te sumy policzone — odpowiedź jest natychmiastowa, bo silnik nie przelicza wszystkiego od zera.
Na co uważać
Najczęstszy mit: „OLAP to musi być ciężka kostka i dedykowany serwer”. Dziś kolumnowe bazy (ClickHouse, BigQuery, Druid) robią analitykę bez budowania klasycznych kostek. Drugi błąd to mieszanie ról — nie wciskaj raportów analitycznych do produkcyjnej bazy OLTP, bo jedno ciężkie zapytanie potrafi położyć aplikację. I pamiętaj: dane w OLAP są zwykle opóźnione (ładowane przez ETL), więc to nie jest narzędzie do podglądu stanu „na teraz”.
Pojęcia powiązane: OLTP, hurtownia danych, ETL, schemat gwiazdy, data cube, MDX, ClickHouse, BigQuery, business intelligence.