การออกแบบโมเดลแบบ Star Schema
Star schema แยกตารางข้อเท็จจริง (fact) ออกจากตารางมิติ (dimension) เพื่อให้การวิเคราะห์สะอาดและเข้าใจง่ายขึ้น.
เริ่มอ่านตรงนี้ก่อน
อธิบายแบบง่าย
การออกแบบโมเดลแบบ Star Schema คือเรื่องที่ช่วยให้เราใช้ทำรายงานและ dashboard จากข้อมูลได้ถูกทางขึ้น
ระดับ
เหมาะกับคนที่เริ่มลงมือทำแล้ว
ใช้เมื่อไหร่
คุณต้องการรายงานที่ทำงานเร็วและเข้าใจง่าย
อ่านแล้วทำอะไรต่อ
ตาราง FactSales เก็บค่า Amount (ยอดเงิน) และ Quantity (จำนวน) ส่วนตาราง DimProduct เก็บ Category (หมวดหมู่) Brand (ยี่ห้อ) และ Product Name (ชื่อสินค้า)
เห็นภาพ: ทริคนี้เป็นยังไง
ทุกคอลัมน์อยู่ในตารางเดียว ชื่อสินค้าและหมวดซ้ำกันทุกแถวที่ขายสินค้านั้น พอจะกรองตามหมวดหรือเทียบช่วงเวลา ตัวเลขมักเพี้ยนและรายงานช้าเมื่อข้อมูลโต
ตารางข้อเท็จจริงเก็บแค่ Amount กับ Quantity ส่วนรายละเอียดอยู่ในตารางมิติแยก ค่าไม่ซ้ำ กรองง่าย measure ให้ผลเหมือนกันทุกภาพ และรายงานทำงานเร็วขึ้น
ใช้ตอนไหน?
- คุณต้องการรายงานที่ทำงานเร็วและเข้าใจง่าย
- คุณมีข้อมูลยอดขาย/คำสั่งซื้อ/เหตุการณ์ พร้อมกับมิติอย่างลูกค้า สินค้า และวันที่
- คุณต้องการ measure (ค่าที่คำนวณใน Power BI) ที่ให้ผลสม่ำเสมอเหมือนกันในทุกภาพ
ถ้าเทียบกับ Excel
กล่องนี้ช่วยแปลคำ Power BI ให้โยงกับงาน Excel ที่คุ้นอยู่แล้ว.
ใน Excel
เหมือนแยกตารางรายการขายออกจากตารางสินค้า ลูกค้า และวันที่ แทนที่จะยัดทุกอย่างไว้ชีตเดียว
ใน Power BI
Fact table เก็บตัวเลขเหตุการณ์ ส่วน dimension table เก็บคำอธิบายเพื่อ filter และ group
จำแค่นี้ก่อน
ตารางใหญ่แบนๆ อาจดูง่ายตอนแรก แต่จะทำให้ DAX และ report สับสนเมื่อโตขึ้น
ต่อไปทำอะไร
ต่อไปค่อยเริ่มดู DAX CALCULATE หรือการวาง KPI บน report
ความหมาย
star schema (โครงตารางแบบดาว) คือการแยกเหตุการณ์ที่วัดค่าได้ไปไว้ในตารางข้อเท็จจริง (fact table) และแยกฟิลด์ที่ใช้บรรยายรายละเอียดไปไว้ในตารางมิติ (dimension table) แล้วเชื่อมเข้าหากันด้วยความสัมพันธ์ระหว่างตาราง
หน้าตาของโมเดล
ตารางข้อเท็จจริงชี้ออกไปหาตารางมิติ และตารางมิติทำหน้าที่กรองตารางข้อเท็จจริง
DimDate -> FactSales <- DimProduct
DimCustomer -> FactSales <- DimStoreตัวอย่างการใช้
โมเดลยอดขาย
ตาราง FactSales เก็บค่า Amount (ยอดเงิน) และ Quantity (จำนวน) ส่วนตาราง DimProduct เก็บ Category (หมวดหมู่) Brand (ยี่ห้อ) และ Product Name (ชื่อสินค้า)