Lecția 1Proiectarea modelului dimensional pentru analitică: mapare fapte și dimensiuniExplorați modelarea dimensională pentru analitică. Veți mapa procesele business pe tabele fact, defini dimensiuni și granulație, gestiona relații many-to-many și proiecta scheme care suportă BI self-service și interogări performante.
Identificarea proceselor business și faptelorAlegerea granulației tabelelor factProiectarea dimensiunilor conformeGestionarea relațiilor many-to-manyCompromisuri schemă star vs snowflakeLecția 2fact_user_activity: câmpuri schemă (event_id, user_id, course_id, event_type, timestamp, duration, device, session_id, ingestion_metadata)Modelați tabelul fact_user_activity pentru analize comportamentale. Definim fiecare câmp, alegem granulația eveniment, capturăm sesiuni și dispozitive, stocăm metadate ingestie și suportăm funnels, engagement și raportare retenție.
Definirea granulației la nivel evenimentModelarea event_type și taxonomiiAtribuire sesiune și dispozitivFolosirea câmpurilor ingestion_metadataSuport funnels și retențieLecția 3Metrici derivate și agregări: utilizatori activi zilnic (DAU), utilizatori activi pe curs, rată finalizare curs pe țară, venit pe curs și cohortÎnvățați să construiți metrici derivate și agregări din tabele fact. Calculăm DAU, activitate pe curs, rate finalizare și venit cohort, subliniind definiții reproductibile și modele eficiente de materializare.
Definirea consistentă DAU și MAUMetrice utilizatori activi pe cursRată finalizare pe segment și țarăVenit pe curs și cohortMaterializarea agregărilor în depoziteLecția 4Gestionarea dimensiunilor cu schimbări lente (SCD Type 1/2) și time-travel/versionareÎnvățați cum să gestionați dimensiunile cu schimbări lente și time-travel. Comparăm SCD Type 1 și Type 2, proiectăm intervale date eficiente, stocăm metadate versiune și folosim funcționalități depozit pentru interogarea stărilor istorice ale dimensiunilor.
Când să folosiți SCD Type 1 vs Type 2Date eficiente și flag-uri curenteImplementare SCD în SQL și dbtFolosirea funcționalităților time-travel depozitTestarea corectitudinii dimensiunilor istoriceLecția 5Prospețime date și strategii fereastră pentru KPI-uri near-real-timeProiectați strategii prospețime pentru KPI-uri near-real-time. Acoperim bugete latență, watermarking, fereastră pentru metrici streaming, gestionare date târzii și monitorizare prospețime pentru a menține dashboard-urile fiabile și acționabile.
Definirea țintelor prospețime și latențăWatermark-uri și gestionare date târziiFerestre tumbling, sliding și sesiuneCalcul KPI-uri near-real-timeMonitorizare și alerte prospețimeLecția 6Pași curățare date: parsare, constrângere tipuri, normalizare timestamp, deduplicare, îmbogățireÎnvățați cum să curățați sistematic datele brute înainte de modelare. Acoperim parsarea câmpurilor semi-structurate, impunerea tipurilor date, normalizarea timestamp-urilor pe fusuri orare, deduplicarea înregistrărilor și îmbogățirea seturilor de date cu date referință și lookup.
Parsare JSON, CSV și câmpuri nestedConstrângere tipuri și validare schemăNormalizare fus orar și standardeStrategii deduplicare înregistrăriJoin-uri date referință pentru îmbogățireLecția 7dim_course: câmpuri schemă (course_id, title, author_id, category, price, published_date)Proiectați dimensiunea dim_course pentru a suporta analizele cursurilor. Definim fiecare câmp, discutăm chei surrogate, gestionăm schimbări preț și categorie și modelăm datele publicare pentru raportare istorică și catalog precisă.
Semnificație business fiecare câmp dim_courseChei naturale vs surrogate course_idGestionarea schimbărilor preț și categorie cursModelare stări publicate și nepublicateIndexare dim_course pentru interogări BILecția 8dim_user: câmpuri schemă (user_id, email_hash, signup_date, country, subscription_status, cohort)Proiectați dimensiunea dim_user pentru analize utilizatori și segmentare. Definim fiecare câmp, hash-uim date sensibile, urmărim înscrieri și cohorte și modelăm status abonament pentru a suporta raportare creștere, retenție și monetizare.
Identificatori utilizatori și chei surrogateHash email și controale confidențialitateModelare signup_date și cohorteLifecycle subscription_statusAtribute țară și localizareLecția 9Modele transformare: ELT vs ETL, transformări incrementale, batch vs stream transformăriÎnțelegeți modelele de bază ale transformării și când să le aplicați. Comparăm ETL și ELT, proiectăm conducte incrementale și contrastăm transformările batch și streaming, concentrându-ne pe cost, latență, observabilitate și compromisuri operaționale.
Comparație arhitecturi ETL și ELTProiectarea transformărilor incrementalePro și contra procesare batchModele streaming și micro-batchAlegerea modelelor după SLA și costLecția 10Instrumente pentru transformări: dbt, Spark/Databricks, Beam/Flink, framework-uri transformare bazate SQLExaminați instrumentele cheie de transformare și cum să alegeți între ele. Comparăm dbt, Spark, Databricks, Beam, Flink și framework-uri SQL, concentrându-ne pe scalabilitate, orchestrare, testare și integrare cu stack-uri moderne de date.
dbt pentru transformări SQL-centriceSpark și Databricks pentru big dataBeam și Flink pentru joburi streamingFramework-uri transformare bazate SQLCriterii selecție instrumente și compromisuriLecția 11fact_payments: câmpuri schemă (payment_id, user_id, course_id, amount, currency, payment_method, status, timestamp, invoice_id)Modelați tabelul fact_payments pentru analize venituri. Definim fiecare câmp, discutăm ingestie idempotentă, gestionare monedă, status plată, rambursări și cum să legați plățile de utilizatori, cursuri și facturi pentru raportare downstream.
Granulație și cheie primară fact_paymentsModelare status plată și lifecycleGestionare sume multi-monedaLegarea plăților de utilizatori și cursuriCapturarea rambursărilor și chargeback-urilor