บทเรียนที่ 1การออกแบบโมเดลมิติสำหรับวิเคราะห์: การแมปข้อเท็จจริงและมิติสำรวจการสร้างโมเดลมิติสำหรับการวิเคราะห์ คุณจะได้แมปกระบวนการทางธุรกิจไปยังตารางข้อเท็จจริง กำหนดมิติและระดับความละเอียด จัดการความสัมพันธ์แบบหลายต่อหลาย และออกแบบสคีมาที่รองรับ BI แบบ self-service และการค้นหาประสิทธิภาพ
การระบุกระบวนการทางธุรกิจและข้อเท็จจริงการเลือกระดับความละเอียดของตารางข้อเท็จจริงการออกแบบมิติที่สอดคล้องกันการจัดการความสัมพันธ์หลายต่อหลายข้อดีข้อเสีย Star vs Snowflake schemaบทเรียนที่ 2fact_user_activity: ช่องข้อมูลสคีมา (event_id, user_id, course_id, event_type, timestamp, duration, device, session_id, ingestion_metadata)สร้างโมเดลตาราง fact_user_activity สำหรับวิเคราะห์พฤติกรรม เรากำหนดช่องข้อมูลแต่ละช่อง เลือกระดับความละเอียดของเหตุการณ์ จับภาพเซสชันและอุปกรณ์ เก็บข้อมูลเมตาดาต้าของการนำเข้า และรองรับการรายงาน funnel การมีส่วนร่วม และการคงอยู่
การกำหนดระดับความละเอียดระดับเหตุการณ์การสร้างโมเดล event_type และ taxonomyการกำหนดแหล่งที่มาเซสชันและอุปกรณ์การใช้ช่อง ingestion_metadataการรองรับ funnel และการคงอยู่บทเรียนที่ 3เมตริกอนุพันธ์และการรวมข้อมูล: ผู้ใช้活跃รายวัน (DAU), ผู้ใช้活跃ต่อคอร์ส, อัตราความสำเร็จคอร์สตามประเทศ, รายได้ต่อคอร์สและกลุ่มเรียนรู้การสร้างเมตริกอนุพันธ์และการรวมข้อมูลจากตารางข้อเท็จจริง เราคำนวณ DAU กิจกรรมต่อคอร์ส อัตราความสำเร็จ และรายได้ของกลุ่ม โดยเน้นนิยามที่สามารถทำซ้ำได้และรูปแบบการ materialize ที่มีประสิทธิภาพ
การกำหนดนิยาม DAU และ MAU อย่างสอดคล้องเมตริกผู้ใช้活跃ต่อคอร์สอัตราความสำเร็จตามเซกเมนต์และประเทศรายได้ต่อคอร์สและกลุ่มการ materialize การรวมข้อมูลในคลังข้อมูลบทเรียนที่ 4การจัดการมิติที่เปลี่ยนแปลงช้า (SCD Type 1/2) และ time-travel/เวอร์ชันเรียนรู้การจัดการมิติที่เปลี่ยนแปลงช้าและ time-travel เราสร้างเปรียบเทียบ SCD Type 1 และ Type 2 ออกแบบช่วงวันที่มีประสิทธิภาพ เก็บเมตาดาต้าเวอร์ชัน และใช้คุณสมบัติคลังข้อมูลในการค้นหาสถานะมิติทางประวัติศาสตร์
เมื่อไหร่ควรใช้ SCD Type 1 vs Type 2วันที่มีประสิทธิภาพและธงปัจจุบันการ implement SCD ใน SQL และ dbtการใช้คุณสมบัติ time-travel ของคลังข้อมูลการทดสอบความถูกต้องของมิติทางประวัติศาสตร์บทเรียนที่ 5ความสดใหม่ของข้อมูลและกลยุทธ์ windowing สำหรับ KPI แบบใกล้เคียง real-timeออกแบบกลยุทธ์ความสดใหม่สำหรับ KPI แบบใกล้เคียง real-time ครอบคลุมงบประมาณ latency watermarking windowing สำหรับเมตริกสตรีมมิง การจัดการข้อมูลล่าช้า และการตรวจสอบความสดใหม่เพื่อให้แดชบอร์ดน่าเชื่อถือและนำไปใช้ได้
การกำหนดเป้าหมายความสดใหม่และ latencyWatermarks และการจัดการข้อมูลล่าช้าTumbling, sliding, และ session windowsการคำนวณ KPI แบบใกล้เคียง real-timeการตรวจสอบและแจ้งเตือนความสดใหม่บทเรียนที่ 6ขั้นตอนการทำความสะอาดข้อมูล: การแยกวิเคราะห์ การบังคับประเภท การทำให้ timestamp ปกติ Deduplication การเสริมข้อมูลเรียนรู้การทำความสะอาดข้อมูลดิบอย่างเป็นระบบก่อนสร้างโมเดล ครอบคลุมการแยกวิเคราะห์ช่องกึ่งโครงสร้าง การบังคับประเภทข้อมูล การทำให้ timestamp ปกติข้าม time zone การ deduplicate บันทึก และการเสริมชุดข้อมูลด้วยข้อมูลอ้างอิงและ lookup
การแยกวิเคราะห์ JSON, CSV, และช่อง nestedการบังคับประเภทและการตรวจสอบสคีมาการทำให้ timezone ปกติและมาตรฐานกลยุทธ์การ deduplication บันทึกการ join ข้อมูลอ้างอิงสำหรับการเสริมบทเรียนที่ 7dim_course: ช่องข้อมูลสคีมา (course_id, title, author_id, category, price, published_date)ออกแบบมิติ dim_course เพื่อรองรับการวิเคราะห์คอร์ส เรากำหนดช่องข้อมูลแต่ละช่อง พูดคุยเกี่ยวกับ surrogate keys จัดการการเปลี่ยนแปลงราคาและหมวดหมู่ และสร้างโมเดลวันที่เผยแพร่เพื่อการรายงานทางประวัติศาสตร์และแคตตาล็อกที่ถูกต้อง
ความหมายทางธุรกิจของช่อง dim_course แต่ละช่องNatural keys vs surrogate course_idการจัดการการเปลี่ยนแปลงราคาและหมวดหมู่คอร์สการสร้างโมเดลสถานะเผยแพร่และไม่เผยแพร่การ indexing dim_course สำหรับการค้นหา BIบทเรียนที่ 8dim_user: ช่องข้อมูลสคีมา (user_id, email_hash, signup_date, country, subscription_status, cohort)ออกแบบมิติ dim_user สำหรับการวิเคราะห์และการแบ่งกลุ่มผู้ใช้ เรากำหนดช่องข้อมูลแต่ละช่อง hash ข้อมูลที่ละเอียดอ่อน ติดตามการสมัครและกลุ่ม และสร้างโมเดลสถานะสมัครสมาชิกเพื่อรองรับการรายงานการเติบโต การคงอยู่ และการสร้างรายได้
ตัวระบุผู้ใช้และ surrogate keysการ hash อีเมลและการควบคุมความเป็นส่วนตัวการสร้างโมเดล signup_date และกลุ่มวงจรชีวิต subscription_statusคุณสมบัติประเทศและการปรับให้เข้ากับท้องถิ่นบทเรียนที่ 9รูปแบบการแปลงข้อมูล: ELT vs ETL การแปลงแบบ incremental Batch vs Stream transformsเข้าใจรูปแบบการแปลงหลักและเมื่อไหร่ควรใช้ เราสร้างเปรียบเทียบ ETL และ ELT ออกแบบ pipeline แบบ incremental และเปรียบเทียบ batch กับ streaming transforms โดยมุ่งเน้นต้นทุน latency observability และ trade-off การดำเนินงาน
การเปรียบเทียบสถาปัตยกรรม ETL และ ELTการออกแบบการแปลงแบบ incrementalข้อดีข้อเสียของ batch processingรูปแบบ streaming และ micro-batchการเลือกรูปแบบตาม SLA และต้นทุนบทเรียนที่ 10เครื่องมือสำหรับการแปลงข้อมูล: dbt, Spark/Databricks, Beam/Flink, SQL-based transformation frameworksสำรวจเครื่องมือการแปลงหลักและวิธีเลือกใช้ เราสร้างเปรียบเทียบ dbt, Spark, Databricks, Beam, Flink, และ SQL frameworks โดยมุ่งเน้น scalability orchestration การทดสอบ และการรวมเข้ากับ modern data stacks
dbt สำหรับการแปลงแบบ SQL-centricSpark และ Databricks สำหรับ big dataBeam และ Flink สำหรับ streaming jobsSQL-based transformation frameworksเกณฑ์การเลือกเครื่องมือและ trade-offบทเรียนที่ 11fact_payments: ช่องข้อมูลสคีมา (payment_id, user_id, course_id, amount, currency, payment_method, status, timestamp, invoice_id)สร้างโมเดลตาราง fact_payments สำหรับวิเคราะห์รายได้ เรากำหนดช่องข้อมูลแต่ละช่อง พูดคุยเกี่ยวกับการนำเข้าที่ idempotent การจัดการสกุลเงิน สถานะการชำระเงิน การคืนเงิน และวิธีเชื่อมโยงการชำระเงินกับผู้ใช้ คอร์ส และใบแจ้งหนี้สำหรับการรายงาน
ระดับความละเอียดและ primary key ของ fact_paymentsการสร้างโมเดลสถานะและวงจรชีวิตการชำระเงินการจัดการจำนวนเงินหลายสกุลเงินการเชื่อมโยงการชำระเงินกับผู้ใช้และคอร์สการจับภาพการคืนเงินและ chargebacks