Lekcja 1Projektowanie modelu wymiarowego dla analiz: mapowanie faktów i wymiarówEksploruj modelowanie wymiarowe dla analiz. Zmapujesz procesy biznesowe na tabele faktów, zdefiniujesz wymiary i ziarnistość, obsłużysz relacje many-to-many i zaprojektujesz schematy wspierające self-service BI i wydajne zapytania.
Identyfikacja procesów biznesowych i faktówWybór ziarnistości tabel faktówProjektowanie skonsonowanych wymiarówObsługa relacji many-to-manyKompromisy star vs snowflakeLekcja 2fact_user_activity: pola schematu (event_id, user_id, course_id, event_type, timestamp, duration, device, session_id, ingestion_metadata)Modeluj tabelę fact_user_activity dla analityki behawioralnej. Definiujemy każde pole, wybieramy ziarnistość zdarzenia, przechwytywanie sesji i urządzeń, przechowywanie metadanych ingestii oraz wspieranie lejeków, zaangażowania i raportów retencji.
Definiowanie ziarnistości na poziomie zdarzeniaModelowanie event_type i taksonomiiAtribucja sesji i urządzeńUżywanie pól ingestion_metadataWspieranie lejeków i retencjiLekcja 3Wyprowadzone metryki i agregacje: dzienni aktywni użytkownicy (DAU), aktywni użytkownicy na kurs, wskaźnik ukończenia kursu wg kraju, przychody wg kursu i kohortyNaucz się budować wyprowadzone metryki i agregacje z tabel faktów. Obliczamy DAU, aktywność na kurs, wskaźniki ukończenia i przychody kohortowe, podkreślając reprodukowalne definicje i efektywne wzorce materializacji.
Spójne definiowanie DAU i MAUMetryki aktywnych użytkowników na kursWskaźnik ukończenia wg segmentu i krajuPrzychody wg kursu i kohortyMaterializacja agregatów w magazynachLekcja 4Obsługa powoli zmieniających się wymiarów (SCD Type 1/2) i time-travel/wersjonowanieNaucz się zarządzać powoli zmieniającymi się wymiarami i time-travel. Porównujemy SCD Type 1 i Type 2, projektujemy zakresy dat efektywnego, przechowujemy metadane wersji i używamy funkcji magazynów do zapytań historycznych stanów wymiarów.
Kiedy używać SCD Type 1 vs Type 2Daty efektywne i flagi aktualneImplementacja SCD w SQL i dbtUżywanie funkcji time-travel magazynówTestowanie poprawności historycznych wymiarówLekcja 5Świeżość danych i strategie okienkowania dla near-real-time KPIProjektuj strategie świeżości dla near-real-time KPI. Omawiamy budżety opóźnień, watermarking, okienkowanie dla metryk streamingowych, obsługę opóźnionych danych i monitorowanie świeżości dla niezawodnych i użytecznych dashboardów.
Definiowanie celów świeżości i opóźnieńWatermarki i obsługa opóźnionych danychOkna tumbling, sliding i sesyjneObliczenia KPI near-real-timeMonitorowanie i alerty świeżościLekcja 6Kroki oczyszczania danych: parsowanie, wymuszanie typów, normalizacja znaczników czasu, deduplikacja, wzbogacanieNaucz się systematycznie czyścić surowe dane przed modelowaniem. Omawiamy parsowanie pól semi-strukturalnych, wymuszanie typów danych, normalizację znaczników czasu między strefami, deduplikację rekordów i wzbogacanie zbiorów danymi referencyjnymi i lookup.
Parsowanie JSON, CSV i zagnieżdżonych pólWymuszanie typów i walidacja schematuNormalizacja stref czasowych i standardyStrategie deduplikacji rekordówJoine'y danych referencyjnych dla wzbogacaniaLekcja 7dim_course: pola schematu (course_id, title, author_id, category, price, published_date)Projektuj wymiar dim_course wspierający analitykę kursów. Definiujemy każde pole, dyskutujemy klucze surrogate, obsługujemy zmiany cen i kategorii oraz modelujemy daty publikacji dla dokładnych raportów historycznych i katalogowych.
Znaczenie biznesowe każdego pola dim_courseKlucze naturalne vs surrogate course_idObsługa zmian cen i kategorii kursówModelowanie stanów opublikowanych i nieopublikowanychIndeksowanie dim_course dla zapytań BILekcja 8dim_user: pola schematu (user_id, email_hash, signup_date, country, subscription_status, cohort)Projektuj wymiar dim_user dla analityki użytkowników i segmentacji. Definiujemy każde pole, haszujemy wrażliwe dane, śledzimy rejestracje i kohorty oraz modelujemy status subskrypcji wspierając raporty wzrostu, retencji i monetyzacji.
Identyfikatory użytkowników i klucze surrogateHashowanie emaili i kontrole prywatnościModelowanie signup_date i kohortCykl życia subscription_statusAtrybuty kraju i lokalizacjiLekcja 9Wzorce transformacji: ELT vs ETL, przyrostowe transformacje, batch vs stream transformacjeZrozum podstawowe wzorce transformacji i kiedy je stosować. Porównujemy ETL i ELT, projektujemy przyrostowe potoki i kontrastujemy transformacje batch i streamingowe, skupiając się na kosztach, opóźnieniach, obserwowalności i kompromisach operacyjnych.
Porównanie architektur ETL i ELTProjektowanie przyrostowych transformacjiZalety i wady przetwarzania batchWzorce streamingowe i mikro-batchWybór wzorców wg SLA i kosztówLekcja 10Narzędzia do transformacji: dbt, Spark/Databricks, Beam/Flink, frameworki transformacji SQLPrzegląd kluczowych narzędzi transformacyjnych i jak między nimi wybierać. Porównujemy dbt, Spark, Databricks, Beam, Flink i frameworki SQL, skupiając się na skalowalności, orkiestracji, testowaniu i integracji z nowoczesnymi stosami danych.
dbt dla transformacji SQL-centrycznychSpark i Databricks dla big dataBeam i Flink dla zadań streamingowychFrameworki transformacji oparte na SQLKryteria wyboru narzędzi i kompromisyLekcja 11fact_payments: pola schematu (payment_id, user_id, course_id, amount, currency, payment_method, status, timestamp, invoice_id)Modeluj tabelę fact_payments dla analityki przychodów. Definiujemy każde pole, dyskutujemy idempotentną ingestię, obsługę walut, status płatności, zwroty oraz linkowanie płatności do użytkowników, kursów i faktur dla raportów downstream.
Ziarnistość i klucz główny fact_paymentsModelowanie statusu i cyklu życia płatnościObsługa kwot wielowalutowychLinkowanie płatności do użytkowników i kursówPrzechwytywanie zwrotów i chargebacków