🎯 Definicja
Data Warehouse Semantyczny to podejście do budowy hurtowni danych, w którym kluczową rolę odgrywa Warstwa Semantyczna (Semantic Layer). Jest to warstwa abstrakcji między fizycznymi tabelami a użytkownikiem biznesowym. Zamiast zmuszać analityka do pisania JOIN i SUM(CASE...), wystawiamy mu gotowe pojęcia biznesowe: “Przychód”, “Klient”, “Marża”.
🔑 Kluczowe punkty
- Jeden język: Biznes i IT mówią tym samym językiem. Definicja “Przychodu” jest w kodzie (np. w dbt Semantic Layer) i jest jedynym źródłem prawdy.
- Headless BI: Różne narzędzia (Excel, Tableau, Power BI) łączą się do tej samej warstwy semantycznej, więc pokazują te same liczby (kliec duplikatów logiki w każdym raporcie).
- Zdarzenia (Events): Nowoczesne podejście często opiera modelowanie na zdarzeniach (“Klient kupił”), a nie tylko stanach (“Tabela zamówień”).
📚 Szczegółowe wyjaśnienie
Tradycyjnie:
Tabela SQL → Analityk pisze SQL w Tableau → Analityk pisze inny SQL w Pythonie → Wyniki się różnią.
Semantycznie:
Tabela SQL → Semantic Layer (dbt/Cube) definiuje: Metric: Revenue = SUM(amount) WHERE status='paid' → Tableau i Python pytają o Revenue. Wynik jest zawsze identyczny.
Wspiera to koncepcję Data Mesh i Kontrakty Danych, gdzie produktem nie jest surowa tabela, ale właśnie ten semantyczny model.
💡 Przykład zastosowania
Firma retail. Definicja “Sprzedaży Całkowitej”. Czy wliczamy zwroty? Czy wliczamy VAT? Czy wliczamy koszty wysyłki? W Semantic Layer definiujesz to raz. Gdy CEO patrzy na dashboard w telefonie, a CFO na Excela – widzą dokładnie tą samą liczbę, bo oboje “piją” z tego samego semantycznego kranu.
📌 Źródła
- “The Rise of the Semantic Layer” - Benn Stancil.
- dbt Semantic Layer Documentation.
👽 Brudnopis
- Semantyka to “tłumacz” między tabelami bazy danych (trudne) a językiem biznesu (łatwe).
- Narzędzia: dbt MetricFlow, Google Looker (LookML), Cube.js, AtScale.