Hurtownia danych

Centralne repozytorium danych zebranych z wielu źródeł, zoptymalizowane pod analizę i raportowanie. Nie służy do bieżących transakcji.

Hurtownia danych (ang. data warehouse, w skrócie DWH) to centralne repozytorium, do którego zlewasz dane z wielu źródeł — baz transakcyjnych, systemów CRM, plików CSV, API zewnętrznych — i przechowujesz je w formie zoptymalizowanej pod analizę oraz raportowanie. Kluczowe słowo: analizę. Hurtownia nie obsługuje bieżących transakcji (od tego są systemy OLTP), tylko odpowiada na pytania w stylu „ile sprzedaliśmy w Q3 w podziale na regiony i kategorie”. Dane są tu zwykle historyczne, uporządkowane i wcześniej oczyszczone.

Jak to działa i po co Ci to

Dane trafiają do hurtowni przez proces ETL (Extract, Transform, Load) albo nowszy ELT — wyciągasz je ze źródeł, czyścisz i ujednolicasz, a potem ładujesz do magazynu. Wewnątrz najczęściej stosuje się modelowanie wymiarowe: tabele faktów (np. pojedyncze transakcje sprzedaży) otoczone tabelami wymiarów (czas, produkt, klient). Ten układ nazywa się schematem gwiazdy (star schema) i powstał po to, żeby analityczne zapytania liczyły się szybko, a nie mieliły bazy godzinami.

Dzięki temu zespół BI odpytuje jedno spójne miejsce zamiast łączyć się z dziesięcioma produkcyjnymi bazami i przypadkiem ich nie zatkać. Hurtownia jest zoptymalizowana pod OLAP (analiza), a nie OLTP (pojedyncze, szybkie zapisy) — to fundamentalna różnica w podejściu.

Przykład z praktyki

Powiedzmy, że firma używa Snowflake jako hurtowni. Surowe dane z aplikacji lądują w bazie PostgreSQL, narzędzie typu dbt transformuje je do modelu gwiazdy, a analityk odpytuje gotowe tabele. Pytanie „przychód miesięczny per kategoria” sprowadza się do czegoś takiego:

SELECT d.month, p.category, SUM(f.amount) FROM fact_sales f JOIN dim_date d ON f.date_id = d.id JOIN dim_product p ON f.product_id = p.id GROUP BY 1, 2;

Z popularnych rozwiązań spotkasz też Google BigQuery, Amazon Redshift i Azure Synapse. Wszystkie łączy to samo: rozdzielają obciążenie analityczne od produkcyjnego.

Częste błędy i mity

  • Mylenie z data lake. Data lake trzyma surowe, nieustrukturyzowane dane „na zapas”. Hurtownia trzyma dane przetworzone, ze schematem (schema-on-write). To nie to samo, choć dziś coraz częściej łączy się je w lakehouse.
  • Pchanie tam zapytań transakcyjnych. Hurtownia nie jest od pojedynczych INSERT/UPDATE w czasie rzeczywistym — od tego masz bazę OLTP.
  • „Wrzucimy wszystko, posprzątamy potem”. Bez porządnego ETL i jasnego modelu danych hurtownia zamienia się w drogie wysypisko, któremu nikt nie ufa.

Pojęcia powiązane

Warto kojarzyć: ETL/ELT, data lake, lakehouse, OLAP kontra OLTP, schemat gwiazdy i płatka śniegu, data mart (wycinek hurtowni dla jednego działu), business intelligence oraz modelowanie wymiarowe.