OLAP a OLTP jsou dva fundamentálně odlišné přístupy k databázím. OLTP pro transakce, OLAP pro analytiku — pochopte rozdíly a zvolte správně.
OLTP — transakční zpracování¶
- Účel: čtení/zápis jednotlivých záznamů
- Uložení: řádkové (row-oriented)
- Dotazy: SELECT WHERE id = 123
- Příklady: PostgreSQL, MySQL, MongoDB
- Use cases: e-shop, bankovnictví, CRM
OLAP — analytické zpracování¶
- Účel: agregace nad velkými datasety
- Uložení: sloupcové (columnar)
- Dotazy: SELECT SUM(revenue) GROUP BY region
- Příklady: ClickHouse, DuckDB, Snowflake
- Use cases: reporting, dashboardy, ad-hoc analýza
-- OLTP: rychlé čtení jednoho záznamu
SELECT * FROM orders WHERE order_id = 12345; -- <1ms
-- OLAP: agregace přes miliony řádků
SELECT region, SUM(total_czk) AS revenue,
COUNT(DISTINCT customer_id) AS customers
FROM orders
WHERE order_date >= '2026-01-01'
GROUP BY region; -- <1s v ClickHouse
Proč ne jedna databáze pro obojí¶
Řádkové uložení je efektivní pro čtení celých řádků, sloupcové pro čtení vybraných sloupců. Fyzický layout dat nelze optimalizovat pro obojí současně.
Shrnutí¶
OLTP pro transakce (PostgreSQL), OLAP pro analytiku (ClickHouse). Moderní architektura odděluje oba workloady.
olapoltpdatabázearchitektura