// case study
Reporting profilových meraní
Analytický a reportingový systém 15 minútových profilových meraní
Pre Západoslovenskú distribučnú sme navrhli a popísali architektúru riešenia, ktoré biznis analytikom umožňuje prezerať, filtrovať a vizualizovať 15-minútové profilové odpočty z meraní. Kľúčovou prioritou návrhu bola maximálna prepoužiteľnosť existujúcich komponentov zákazníka a nulový dopad na prevádzku kritických produkčných systémov.
Zadanie
Zákazník disponuje rozsiahlym objemom 15-minútových profilových meraní, ktoré sa v reálnom čase importujú do prevádzkového systému (ODS). Analytici potrebovali nástroj, ktorý im tieto dáta sprístupní v zrozumiteľnej, vizuálnej podobe — vrátane agregovaných prehľadov, možnosti filtrovania a exportu na ďalšiu prácu.
Hlavné výzvy:
- Žiadne zaťaženie produkcie. Riešenie nesmie ovplyvniť výkon ani stabilitu hlavnej (master) inštancie prevádzkovej databázy.
- Veľký objem dát. Surové 15-minútové profily je potrebné spracovať a agregovať tak, aby boli vhodné na rýchlu vizualizáciu.
- Zapadnutie do existujúceho prostredia. Riešenie malo čo najviac využiť komponenty, ktoré už u zákazníka existujú alebo sa práve budujú (napríklad nový dátový sklad).
Riešenie
Navrhli sme modulárnu architektúru zloženú zo štyroch logických systémov, ktoré spolu tvoria ucelený dátový tok od zdroja až po vizualizáciu.
Read-only replika namiesto zásahu do produkcie
Ako zdroj dát sme zvolili read-only repliku prevádzkového systému (ODS), do ktorej sa v reálnom čase replikujú všetky zmeny z master inštancie pomocou natívnej PostgreSQL streaming replikácie. Vďaka tomu prebieha celé čítanie surových profilov mimo produkčnej databázy a jej prevádzka zostáva úplne nedotknutá.
Agregácia dát v dátovom sklade (EDW)
Do budovaného enterprise dátového skladu sme navrhli pridať samostatný datamart pre 15-minútové profily. Ten obsahuje vopred pripravené agregované prehľady, ktoré sú optimalizované práve pre rýchle prezeranie a vizualizáciu, takže webová aplikácia nemusí počítať agregácie za behu.
ETL procesy na prípravu agregátov
Sada ETL procesov číta surové profily z read-only repliky a vypočítané agregáty zapisuje do datamartu v dátovom sklade. Procesy bežia plánovane (cron) a starajú sa o priebežnú prípravu dát v takej štruktúre, akú vizualizačná vrstva potrebuje.
Webová aplikácia pre analytikov
Vrcholom riešenia je webová aplikácia, ktorá biznis analytikom prináša samotnú hodnotu. Aplikácia dopytuje dva zdroje súčasne — z repliky ODS získava surové 15-minútové profily a číselníky, z dátového skladu agregované prehľady. Používateľom umožňuje dáta prezerať, filtrovať a vizualizovať, a tiež exportovať do formátov CSV a SQLite na ďalšie spracovanie. Prístup prebieha bezpečne cez HTTPS.
Použité technológie
- PostgreSQL — produkčná databáza (master) aj jej HOT-standby read-only replika prepojené streaming replikáciou.
- Go — ETL procesy spúšťané cez cron, s pripojením do databázy cez knižnicu pgx.
- Spring Boot, jOOQ, Svelte — backend a frontend webovej aplikácie pre vizualizáciu.
- JDBC — prepojenie vizualizačnej vrstvy s dátovým skladom aj replikou ODS.
- Exporty do CSV a SQLite pre ďalšiu analytickú prácu používateľov.
Prínosy
- Nulový dopad na produkciu vďaka čítaniu z read-only repliky.
- Rýchla vizualizácia veľkých objemov dát vďaka predpočítaným agregátom v dátovom sklade.
- Vysoká prepoužiteľnosť existujúcej infraštruktúry zákazníka — riešenie nadväzuje na práve budovaný dátový sklad a využíva už existujúce systémy.
- Modularita — jednotlivé časti (replika, ETL, datamart, webová aplikácia) sú oddelené a dajú sa nezávisle rozvíjať či škálovať.
- Samostatnosť analytikov — možnosť filtrovať a exportovať dáta bez nutnosti zapájať IT pri každej požiadavke.