Lezione 1Progettazione modello dimensionale per analytics: mapping fatti e dimensioniEsplora modellazione dimensionale per analytics. Mapperai processi business su tabelle fact, definirai dimensioni e grain, gestirai relazioni many-to-many e progetterai schemi che supportano BI self-service e query performanti.
Identificazione processi business e fattiScelta grain tabelle factProgettazione dimensioni conformateGestione relazioni many-to-manyCompromessi star vs snowflake schemaLezione 2fact_user_activity: campi schema (event_id, user_id, course_id, event_type, timestamp, duration, device, session_id, ingestion_metadata)Modella la tabella fact_user_activity per analytics comportamentali. Definiamo ogni campo, scegliamo grain evento, catturiamo sessioni e device, memorizziamo metadata ingestione e supportiamo reporting funnel, engagement e retention.
Definizione grain livello eventoModellazione event_type e tassonomieAttribuzione sessione e deviceUso campi ingestion_metadataSupporto funnel e retentionLezione 3Metriche derivate e aggregazioni: utenti attivi giornalieri (DAU), utenti attivi per corso, tasso completamento per paese, revenue per corso e coorteImpara a costruire metriche derivate e aggregazioni da tabelle fact. Calcoliamo DAU, attività per corso, tassi completamento e revenue coorte, enfatizzando definizioni riproducibili e pattern materializzazione efficienti.
Definizione DAU e MAU consistentiMetriche utenti attivi per corsoTasso completamento per segmento e paeseRevenue per corso e coorteMaterializzazione aggregati in warehouseLezione 4Gestione dimensioni slowly changing (SCD Type 1/2) e time-travel/versioningImpara a gestire dimensioni slowly changing e time-travel. Confrontiamo SCD Type 1 e Type 2, progettiamo range date efficaci, memorizziamo metadata versione e usiamo feature warehouse per query stati storici dimensioni.
Quando usare SCD Type 1 vs Type 2Date efficaci e flag correntiImplementazione SCD in SQL e dbtUso feature time-travel warehouseTesting correttezza dimensioni storicheLezione 5Freschezza dati e strategie windowing per KPI near-real-timeProgetta strategie freschezza per KPI near-real-time. Copriamo budget latenza, watermarking, windowing per metriche streaming, gestione dati tardivi e monitoraggio freschezza per mantenere dashboard affidabili e actionable.
Definizione target freschezza e latenzaWatermark e gestione dati tardiviFinestre tumbling, sliding e sessionCalcolo KPI near-real-timeMonitoraggio e alerting freschezzaLezione 6Passi cleansing dati: parsing, coercizione tipo, normalizzazione timestamp, deduplicazione, arricchimentoImpara a pulire sistematicamente dati raw prima del modeling. Copriamo parsing campi semi-strutturati, imposizione tipi dati, normalizzazione timestamp tra time zone, deduplicazione record e arricchimento dataset con dati di riferimento.
Parsing JSON, CSV e campi nestedCoercizione tipo e validazione schemaNormalizzazione timezone e standardStrategie deduplicazione recordJoin dati riferimento per arricchimentoLezione 7dim_course: campi schema (course_id, title, author_id, category, price, published_date)Progetta dimensione dim_course per supportare analytics corsi. Definiamo ogni campo, discutiamo chiavi surrogate, gestiamo cambiamenti prezzo e categoria, e modelliamo date pubblicazione per reporting storico e catalogo accurato.
Significato business ogni campo dim_courseChiavi naturali vs surrogate course_idGestione cambiamenti prezzo e categoria corsoModellazione stati pubblicati e non pubblicatiIndici dim_course per query BILezione 8dim_user: campi schema (user_id, email_hash, signup_date, country, subscription_status, cohort)Progetta dimensione dim_user per analytics e segmentazione utenti. Definiamo ogni campo, hashiamo dati sensibili, tracciamo signup e coorti, e modelliamo stato subscription per supportare reporting crescita, retention e monetizzazione.
Identificatori utente e chiavi surrogateHashing email e controlli privacyModellazione signup_date e coortiLifecycle subscription_statusAttributi paese e localizzazioneLezione 9Pattern trasformazione: ELT vs ETL, trasformazioni incrementali, batch vs stream transformComprendi pattern trasformazione core e quando applicarli. Confrontiamo ETL e ELT, progettiamo pipeline incrementali e confrontiamo transform batch e streaming, focalizzandoci su costo, latenza, observability e compromessi operativi.
Confronto architetture ETL e ELTProgettazione trasformazioni incrementaliPro e contro batch processingPattern streaming e micro-batchScelta pattern per SLA e costoLezione 10Strumenti per trasformazioni: dbt, Spark/Databricks, Beam/Flink, framework trasformazione SQL-basedPanoramica sui principali tool trasformazione e come scegliere tra loro. Confrontiamo dbt, Spark, Databricks, Beam, Flink e framework SQL, focalizzandoci su scalabilità, orchestrazione, testing e integrazione con modern data stack.
dbt per trasformazioni SQL-centricheSpark e Databricks per big dataBeam e Flink per job streamingFramework trasformazione SQL-basedCriteri selezione tool e compromessiLezione 11fact_payments: campi schema (payment_id, user_id, course_id, amount, currency, payment_method, status, timestamp, invoice_id)Modella tabella fact_payments per analytics revenue. Definiamo ogni campo, discutiamo ingestione idempotente, gestione valuta, stato pagamento, rimborsi e come collegare pagamenti a utenti, corsi e fatture per reporting downstream.
Grain e chiave primaria fact_paymentsModellazione stato e lifecycle pagamentoGestione importi multi-valutaCollegamento pagamenti a utenti e corsiCattura rimborsi e chargeback