Lekcija 1Oblikovanje dimensijskega modela za analitiko: mapiranje dejstev in dimenzijRaziščite dimensijsko modeliranje za analitiko. Mapirali boste poslovne procese na dejanske tabele, določili dimenzije in zrno, obravnavali razmerja mnogo-proti-mnogim ter oblikovali sheme, ki podpirajo samopostrežno BI in zmogljive poizvedbe.
Identifying business processes and factsChoosing the grain of fact tablesDesigning conformed dimensionsHandling many-to-many relationshipsStar vs snowflake schema trade-offsLekcija 2fact_user_activity: polja sheme (event_id, user_id, course_id, event_type, timestamp, duration, device, session_id, ingestion_metadata)Modelirajte tabelo fact_user_activity za vedenjsko analitiko. Določimo vsako polje, izberemo zrno dogodka, zajamemo seje in naprave, shranimo metapodatke zajema in podpiramo lijake, angažiranost in poročanje o zadržanosti.
Defining the event-level grainModeling event_type and taxonomiesSession and device attributionUsing ingestion_metadata fieldsSupporting funnels and retentionLekcija 3Izpeljane metrike in agregacije: dnevno aktivni uporabniki (DAU), aktivni uporabniki na tečaj, stopnja dokončanja tečaja po državi, prihodki po tečaju in kohortiNaučite se graditi izpeljane metrike in agregacije iz dejanskih tabel. Izračunamo DAU, aktivnost na tečaj, stopnje dokončanja in prihodke kohort, s poudarkom na ponovljivih definicijah in učinkovitih vzorcih materializacije.
Defining DAU and MAU consistentlyActive users per course metricsCompletion rate by segment and countryRevenue by course and cohortMaterializing aggregates in warehousesLekcija 4Obravnava počasi spreminjajočih se dimenzij (SCD Tip 1/2) in potovanje skozi čas/različiceNaučite se upravljati počasi spreminjajoče se dimenzije in potovanje skozi čas. Primerjamo SCD Tip 1 in Tip 2, oblikujemo učinkovita območja datumov, shranimo metapodatke različic in uporabljamo funkcije skladišča za poizvedovanje zgodovinskih stanj dimenzij.
When to use SCD Type 1 vs Type 2Effective dates and current flagsImplementing SCD in SQL and dbtUsing warehouse time-travel featuresTesting historical dimension correctnessLekcija 5Svežina podatkov in strategije oknenja za KPI-je skoraj v realnem časuOblikujte strategije svežine za KPI-je skoraj v realnem času. Obravnavamo proračune zakasnitev, vodne oznake, oknenje za pretočne metrike, ravnanje s pozno prispelimi podatki in spremljanje svežine za zanesljive in uporabne nadzorne plošče.
Defining freshness and latency targetsWatermarks and late data handlingTumbling, sliding, and session windowsNear-real-time KPI computationMonitoring and alerting on freshnessLekcija 6Koraki čiščenja podatkov: razčlenjevanje, prisilitev tipov, normalizacija časovnih žigov, odstranjevanje podvojev, obogatitevNaučite se sistematično čistiti surove podatke pred modeliranjem. Obravnavamo razčlenjevanje polstrukturiranih polj, uveljavljanje tipov podatkov, normalizacijo časovnih žigov čez časovne pasove, odstranjevanje podvojev zapisov in obogatitev naborov z referenčnimi in iskalnimi podatki.
Parsing JSON, CSV, and nested fieldsType coercion and schema validationTimezone normalization and standardsRecord deduplication strategiesReference data joins for enrichmentLekcija 7dim_course: polja sheme (course_id, title, author_id, category, price, published_date)Oblikujte dimenzijo dim_course za analitiko tečajev. Določimo vsako polje, razpravljamo o nadomestnih ključeh, obravnavamo spremembe cen in kategorij ter modeliramo datume objave za natančno zgodovinsko in katalogsko poročanje.
Business meaning of each dim_course fieldNatural keys vs surrogate course_idHandling course price and category changesModeling published and unpublished statesIndexing dim_course for BI queriesLekcija 8dim_user: polja sheme (user_id, email_hash, signup_date, country, subscription_status, cohort)Oblikujte dimenzijo dim_user za analitiko uporabnikov in segmentacijo. Določimo vsako polje, hashiramo občutljive podatke, sledimo prijavam in kohortam ter modeliramo status naročnine za podporo rasti, zadržanosti in monetizaciji.
User identifiers and surrogate keysEmail hashing and privacy controlsModeling signup_date and cohortsSubscription_status lifecycleCountry and localization attributesLekcija 9Vzorci pretvorbe: ELT proti ETL, inkrementalne pretvorbe, serijske proti pretočnim pretvorbamRazumite osnovne vzorce pretvorbe in kdaj jih uporabiti. Primerjamo ETL in ELT, oblikujemo inkrementalne cevovode in kontrastiramo serijske in pretočne pretvorbe, s poudarkom na stroških, zakasnitvi, opazljivosti in operativnih kompromisih.
Comparing ETL and ELT architecturesDesigning incremental transformationsBatch processing pros and consStreaming and micro-batch patternsChoosing patterns by SLA and costLekcija 10Orodja za pretvorbe: dbt, Spark/Databricks, Beam/Flink, SQL okviri za pretvorbePreglejte ključna orodja za pretvorbo in kako izbrati med njimi. Primerjamo dbt, Spark, Databricks, Beam, Flink in SQL okvire, s poudarkom na razširljivosti, orkestraciji, testiranju in integraciji s sodobnimi skladi podatkov.
dbt for SQL-centric transformationsSpark and Databricks for big dataBeam and Flink for streaming jobsSQL-based transformation frameworksTool selection criteria and trade-offsLekcija 11fact_payments: polja sheme (payment_id, user_id, course_id, amount, currency, payment_method, status, timestamp, invoice_id)Modelirajte tabelo fact_payments za analitiko prihodkov. Določimo vsako polje, razpravljamo o idempotentnem zajemu, ravnanju z valutami, statusu plačil, vračilih in kako povezati plačila z uporabniki, tečaji in računi za spodnje poročanje.
Grain and primary key of fact_paymentsModeling payment status and lifecycleHandling multi-currency amountsLinking payments to users and coursesCapturing refunds and chargebacks