1. leckeDimenziós modell tervezése analitikára: tények és dimenziók leképezéseFedezd fel a dimenziós modellezést analitikára. Leképezed üzleti folyamatokat ténytáblákra, meghatározzák dimenziókat és szemcsességet, kezeled sok-a-sok kapcsolatokat, és tervezel sémákat önkiszolgáló BI és hatékony lekérdezések támogatására.
Üzleti folyamatok és tények azonosításaTénytáblák szemcsességének kiválasztásaMegfelelő dimenziók tervezéseSok-a-sok kapcsolatok kezeléseStar vs snowflake séma kompromisszumok2. leckefact_user_activity: séma mezők (event_id, user_id, course_id, event_type, timestamp, duration, device, session_id, ingestion_metadata)Modellezd a fact_user_activity táblát viselkedési analitikára. Meghatározzuk minden mezőt, kiválasztjuk esemény szemcsességet, rögzítjük munkameneteket és eszközöket, tárolunk beviteli metaadatokat, és támogatjuk a szűrőket, elköteleződést, megőrzést.
Esemény-szintű szemcsesség meghatározásaEseménytípus modellezése és taxonómiákMunkamenet és eszköz hozzárendelésBeviteli metaadat mezők használataSzűrők és megőrzés támogatása3. leckeSzármaztatott metrikák és aggregációk: napi aktív felhasználók (DAU), kurzushoz aktív felhasználók, kurzuskészültség országonként, bevétel kurzushoz és kohorszhozTanuld meg származtatott metrikák és aggregációk építését ténytáblákból. Számítjuk DAU-t, kurzusspecifikus aktivitást, elkészültségi rátákat, kohorsz bevételt, hangsúlyozva reprodukálható definíciókat és hatékony materializálási mintákat.
DAU és MAU konzisztens meghatározásaAktív felhasználók kurzushoz metrikáiElkészültségi ráta szegmens és ország szerintBevétel kurzushoz és kohorszhozAggregátumok materializálása raktárakban4. leckeLassúan változó dimenziók kezelése (SCD Type 1/2) és időutazás/verziókezelésTanuld meg lassúan változó dimenziók és időutazás kezelését. Összehasonlítjuk SCD Type 1 és 2-t, tervezünk hatékony dátumtartományokat, tárolunk verzió metaadatokat, és használjuk raktár funkciókat történelmi dimenzió állapotok lekérdezésére.
SCD Type 1 vs Type 2 használataHatékony dátumok és aktuális zászlókSCD implementálása SQL-ben és dbt-benRaktár időutazás funkciók használataTörténelmi dimenzió helyesség tesztelése5. leckeAdatfrissesség és ablakolási stratégiák közel valós idejű KPI-khozTervezz frissességi stratégiákat közel valós idejű KPI-khoz. Lefedjük késleltetési költségvetéseket, vízjeleket, streaming metrikák ablakolását, késői adatok kezelését, és frissesség monitorozását dashboardok megbízhatóságának fenntartására.
Frissesség és késleltetés célok meghatározásaVízjelek és késői adatkezelésTumbling, sliding és session ablakokKözel valós idejű KPI számításFrissesség monitorozás és riasztás6. leckeAdattisztítási lépések: parsolás, típuskényszerítés, időbélyeg normalizálás, deduplikálás, gazdagításTanuld meg nyers adatok szisztematikus tisztítását modellezés előtt. Lefedjük félstruktúrált mezők parsolását, adattípusok kényszerítését, időbélyegek időzóna szerinti normalizálását, rekord deduplikálását és hivatkozási adatokkal való gazdagítást.
JSON, CSV és beágyazott mezők parsolásaTípuskényszerítés és séma validálásIdőzóna normalizálás és szabványokRekord deduplikálási stratégiákHivatkozási adat csatlakozások gazdagításhoz7. leckedim_course: séma mezők (course_id, title, author_id, category, price, published_date)Tervezd meg a dim_course dimenziót kurzustanulmányok támogatására. Meghatározzuk minden mezőt, megvitatjuk helyettesítő kulcsokat, kezeljük árváltozásokat és kategóriákat, modellezzük publikálás dátumokat pontos történelmi és katalógus jelentésekhez.
Minden dim_course mező üzleti jelentéseTermészetes vs helyettesítő course_idKurzusár és kategória változások kezelésePublikált és nem publikált állapotok modellezésedim_course indexelése BI lekérdezésekhez8. leckedim_user: séma mezők (user_id, email_hash, signup_date, country, subscription_status, cohort)Tervezd meg a dim_user dimenziót felhasználói analitikára és szegmentációra. Meghatározzuk minden mezőt, hashelünk érzékeny adatokat, követjük regisztrációkat és kohorszokat, modellezzük előfizetés állapotot növekedés, megőrzés, monetizáció jelentések támogatására.
Felhasználói azonosítók és helyettesítő kulcsokEmail hashelés és adatvédelmi vezérlőkRegisztráció dátum és kohorsz modellezésElőfizetés állapot életciklusOrszág és lokalizációs attribútumok9. leckeTranszformációs minták: ELT vs ETL, inkrementális transzformációk, batch vs stream transzformációkÉrtsd meg a mag transzformációs mintákat és alkalmazásukat. Összehasonlítjuk ETL és ELT-t, tervezünk inkrementális pipelineokat, és kontrasztáljuk batch és streaming transzformációkat költség, késleltetés, megfigyelhetőség, üzemeltetési kompromisszumokra fókuszálva.
ETL és ELT architektúrák összehasonlításaInkrementális transzformációk tervezéseBatch feldolgozás előnyei és hátrányaiStreaming és mikro-batch mintákMinták kiválasztása SLA és költség alapján10. leckeTranszformációs eszközök: dbt, Spark/Databricks, Beam/Flink, SQL-alapú transzformációs keretrendszerekÁttekintjük a kulcs transzformációs eszközöket és választásukat. Összehasonlítjuk dbt-t, Sparkot, Databrickset, Beamet, Flinket és SQL keretrendszereket skálázhatóságra, orchestrációra, tesztelésre és modern adatstack integrációra fókuszálva.
dbt SQL-központú transzformációkraSpark és Databricks nagyadatokraBeam és Flink streaming feladatokraSQL-alapú transzformációs keretrendszerekEszközválasztási kritériumok és kompromisszumok11. leckefact_payments: séma mezők (payment_id, user_id, course_id, amount, currency, payment_method, status, timestamp, invoice_id)Modellezd a fact_payments táblát bevételi analitikára. Meghatározzuk minden mezőt, megvitatjuk idempotens bevitelt, pénznem kezelést, fizetés állapotot, visszatérítéseket, és fizetések összekapcsolását felhasználókkal, kurzusokkal, számlákkal jelentésekhez.
fact_payments szemcsesség és elsődleges kulcsFizetés állapot és életciklus modellezésTöbb pénznem összeg kezeléseFizetések felhasználókhoz és kurzusokhoz kapcsolásaVisszatérítések és visszautasítások rögzítése