Potřebujete přehledné dashboardy a analytiku nad vašimi daty, ale nechcete investovat do drahých proprietárních BI nástrojů ani udržovat složité ETL procesy? V tomto článku ukážeme, jak postavit jednoduché a cenově efektivní BI řešení pomocí materializovaných views a Metabase.
Hned na úvod je důležité říct – tento přístup není pro každého. Pokud pracujete s terabajty dat nebo provozujete komplexní datové prostředí, pravděpodobně budete potřebovat robustnější nástroje. Pokud ale máte data v řádu gigabajtů a desítek milionů záznamů, čtěte dál, toto řešení může být přesně to, co hledáte. Popisovaný přístup je postavený na PostgreSQL, ale základní koncept lze aplikovat i na jiné databázové technologie.
Architektura řešení
Aby BI vrstva fungovala spolehlivě a zároveň nezatěžovala produkční prostředí, je potřeba si připravit solidní datový základ. Klíčovým prvkem architektury je samostatná warehouse databáze, která slouží výhradně pro business intelligence. Data do ní proudí z replik primárních databází pomocí technologie dblink – ta umožňuje jedné PostgreSQL databázi připojit se ke druhé a číst z ní data, aniž by bylo nutné cokoli exportovat ručně.

Místo klasických ETL procesů se k transformaci a přípravě dat využívají materializované views. Na rozdíl od běžných databázových views, které data načítají pokaždé znovu při každém dotazu, materializované view výsledek dotazu fyzicky uloží. To přináší dvě zásadní výhody: analytické dotazy jsou výrazně rychlejší a primární databáze nejsou zatěžovány opakovanými čteními. Aby byla data aktuální, jejich pravidelná obnova probíhá automaticky na pozadí – v PostgreSQL k tomu poslouží rozšíření pg_cron.
Tyto materializované views zároveň fungují jako data marts – předpřipravené datové pohledy zaměřené na konkrétní oblast byznysu, jako jsou například prodeje, objednávky nebo uživatelé. Velkou výhodou je, že jsou přístupné přes běžné SQL dotazy, takže jakýkoliv BI nástroj s nimi umí pracovat bez nutnosti speciálních konektorů nebo složité konfigurace.
Metabase: BI nástroj, který nepotřebuje vývojáře
Jako BI nástroj jsme zvolili Metabase. Moderní a přehledné uživatelské rozhraní umožňuje vytvářet dashboardy každému, kdo se v datech alespoň trochu orientuje a vyzná se v SQL. Díky tomu si analytické pohledy může navrhnout přímo ten, kdo s daty pracuje a ví, co potřebuje vidět – bez nutnosti zapojení vývojářů.
Jakmile máte dashboardy připravené, lze je integrovat přímo do vaší aplikace. Metabase podporuje tzv. embedding, takže vygenerujete podpisový JWT token, pomocí kterého bezpečně ověříte přístup, a dashboard zobrazíte přímo ve svém UI pomocí Metabase HTML komponenty.
Závěr: jednoduchá architektura, výrazný dopad
Popsané řešení jsme nasadili pro zákazníka, který předtím používal nákladný proprietární BI nástroj. Výsledek předčil očekávání – řešení se osvědčilo jak po technické stránce, tak z pohledu každodenního používání.
Zákazník získal:
- desetinásobně nižší roční náklady oproti předchozímu řešení;
- výrazně rychlejší odezvu analytických dotazů i nad většími objemy dat díky materializovaným views;
- přehledné dashboardy přímo v administraci;
- dostupnost všem uživatelům bez nutnosti generovat a rozesílat reporty.
Nejlepší zpětná vazba přišla přímo od uživatelů. Jeden z nich po prvním pohledu na nové dashboardy prohlásil, že málem brečel štěstím. Bereme to jako potvrzení, že i relativně jednoduchá architektura může mít velmi konkrétní a viditelný dopad.
Ne každé BI musí začínat velkou platformou, složitými integračními procesy a vysokými licenčními náklady. Pokud jsou požadavky dobře vymezené a objem dat odpovídá možnostem databáze, může být kombinace PostgreSQL, materialized views a Metabase velmi efektivní cestou k rychlému a použitelnému reportingu.
