Somo 1Kubuni muundo wa kiwango kwa uchambuzi: ramani ya fact na dimensionsChunguza uundaji wa kiwango kwa uchambuzi. Utarami michakato ya biashara kwenye meza za fact, ufafanue dimensions na grain, shughulikia uhusiano wa wengi-kwa-wengi, na ubuni schema zinazounga mkono BI ya kujitegemea na maswali yenye utendaji.
Kutambua michakato ya biashara na factKuchagua grain ya meza za factKubuni dimensions zilizosawazishwaKushughulikia uhusiano wa wengi-kwa-wengiMaeleano ya schema ya star dhidi ya snowflakeSomo 2fact_user_activity: vipengele vya schema (event_id, user_id, course_id, event_type, timestamp, duration, device, session_id, ingestion_metadata)Unda meza ya fact_user_activity kwa uchambuzi wa tabia. Tunaelezea kila uwanja, kuchagua grain ya tukio, kukamata vikao na vifaa, kuhifadhi metadata ya kuchukua, na kusaidia funnels, ushiriki, na ripoti ya uhifadhi.
Kufafanua grain ya kiwango cha tukioUundaji wa event_type na taxonomiesKutambua vikao na vifaaKutumia vipengele vya ingestion_metadataKusaidia funnels na uhifadhiSomo 3Vipimo vilivyotokana na muunganisho: watumiaji wanaofanya kazi kila siku (DAU), watumiaji wanaofanya kazi kwa kozi, kiwango cha kukamilisha kozi kwa nchi, mapato kwa kozi na kundiJifunze kujenga vipimo vilivyotokana na muunganisho na aggregations kutoka meza za fact. Tunahesabu DAU, shughuli kwa kozi, viwango vya kukamilisha, na mapato ya kundi, tukisisitiza ufafanuzi unaoweza kurudiwa na mifumo bora ya kumudu.
Kufafanua DAU na MAU kwa usawazikoVipimo vya watumiaji wanaofanya kazi kwa koziKiwango cha kukamilisha kwa sehemu na nchiMapato kwa kozi na kundiKumudu aggregates katika warehousesSomo 4Kushughulikia dimensions zinazobadilika polepole (SCD Type 1/2) na safari ya wakati/versioningJifunze jinsi ya kusimamia dimensions zinazobadilika polepole na safari ya wakati. Tuna linganisha SCD Type 1 na Type 2, kubuni anuwai za tarehe bora, kuhifadhi metadata ya toleo, na kutumia vipengele vya warehouse kuhoji hali za dimension za kihistoria.
Lini kutumia SCD Type 1 dhidi ya Type 2Tarehe bora na alama za sasaKutekeleza SCD katika SQL na dbtKutumia vipengele vya safari ya wakati ya warehouseKujaribu usahihi wa dimension za kihistoriaSomo 5Upya wa data na mikakati ya dirisha kwa KPI za karibu wakati halisiBuni mikakati ya upya kwa KPI za karibu wakati halisi. Tuna pisha bajeti za latency, watermarking, dirisha kwa vipimo vya streaming, kushughulikia data inayochelewa, na kufuatilia upya ili kuweka dashibodi ziwe za kuaminika na zenye hatua.
Kufafanua malengo ya upya na latencyWatermarks na kushughulikia data ya marehemuDirisha la tumbling, sliding, na vikaoHesabu ya KPI ya karibu wakati halisiUfuatiliaji na tahadhari juu ya upyaSomo 6Hatua za kusafisha data: kuchanganua, kulazimisha aina, kurekebisha timestamp, kuondoa mara mbili, uboreshajiJifunze jinsi ya kusafisha data ghafi kwa mpangilio kabla ya uundaji. Tuna pisha kuchanganua vipengele visivyo vya muundo, kulazimisha aina za data, kurekebisha timestamp katika majimbo ya wakati, kuondoa rekodi mara mbili, na kuboresha seti za data na marejeleo na data ya kutafuta.
Kuchanganua JSON, CSV, na vipengele vilivyochongwaKulazimisha aina na uthibitisho wa schemaKurekebisha wakati wa saa na viwangoMikakati ya kuondoa rekodi mara mbiliKuunganisha data ya marejeleo kwa uboreshajiSomo 7dim_course: vipengele vya schema (course_id, title, author_id, category, price, published_date)Buni dimension ya dim_course kusaidia uchambuzi wa kozi. Tunaelezea kila uwanja, kujadili funguo za badala, kushughulikia mabadiliko ya bei na kategoria, na kuunda tarehe za kuchapisha ili kuwezesha ripoti sahihi za kihistoria na katalogi.
Maana ya biashara ya kila uwanja wa dim_courseFunguo za asili dhidi ya course_id ya badalaKushughulikia mabadiliko ya bei na kategoria ya koziKuunda hali zilizochapishwa na zisizochapishwaKuingiza dim_course kwa maswali ya BISomo 8dim_user: vipengele vya schema (user_id, email_hash, signup_date, country, subscription_status, cohort)Buni dimension ya dim_user kwa uchambuzi wa watumiaji na kugawanya. Tunaelezea kila uwanja, hashing data nyeti, kufuatilia usajili na makundi, na kuunda hali ya usajili kusaidia ripoti ya ukuaji, uhifadhi, na monetization.
Vitambulisho vya watumiaji na funguo za badalaHashing barua pepe na udhibiti wa faraghaKuunda signup_date na makundiMzunguko wa maisha wa subscription_statusSifa za nchi na localizationSomo 9Mifumo ya mabadiliko: ELT dhidi ya ETL, mabadiliko ya kuongeza, mabadiliko ya batch dhidi ya streamElewa mifumo ya msingi ya mabadiliko na lini kuitumia. Tuna linganisha ETL na ELT, kubuni mifereji ya kuongeza, na kutofautisha mabadiliko ya batch na streaming, tukilenga gharama, latency, uwezekano wa kuona, na maelewano ya uendeshaji.
Kulinganisha usanifu wa ETL na ELTKubuni mabadiliko ya kuongezaFaida na hasara za kuchakata batchMifumo ya streaming na micro-batchKuchagua mifumo kwa SLA na gharamaSomo 10Zana za mabadiliko: dbt, Spark/Databricks, Beam/Flink, miundo ya mabadiliko inayotegemea SQLChambua zana kuu za mabadiliko na jinsi ya kuchagua kati yazo. Tuna linganisha dbt, Spark, Databricks, Beam, Flink, na miundo ya SQL, tukilenga uwezo wa kupanuka, kuratibu, kujaribu, na kuunganisha na magunia ya data ya kisasa.
dbt kwa mabadiliko yanayotegemea SQLSpark na Databricks kwa data kubwaBeam na Flink kwa kazi za streamingMiundo ya mabadiliko inayotegemea SQLViweka vya kuchagua zana na maelewanoSomo 11fact_payments: vipengele vya schema (payment_id, user_id, course_id, amount, currency, payment_method, status, timestamp, invoice_id)Unda meza ya fact_payments kwa uchambuzi wa mapato. Tunaelezea kila uwanja, kujadili kuchukua idempotent, kushughulikia sarafu, hali ya malipo, marejesho, na jinsi ya kuunganisha malipo kwa watumiaji, kozi, na ankara kwa ripoti ya chini.
Grain na ufunguo wa msingi wa fact_paymentsKuunda hali ya malipo na mzungukoKushughulikia kiasi cha sarafu nyingiKuunganisha malipo kwa watumiaji na koziKukamata marejesho na malipo ya ziada