"Turn data into insight — slice it, dice it, drill into it."
OLAP Cube คือการมองข้อมูลหลายมิติ โดยแต่ละ "เซลล์" เก็บค่าของ เมตริก (Measure) ที่ตรงกับค่ามิติจำนวนหนึ่ง
แต่ละมิติมี ลำดับชั้น (Hierarchy) ที่ใช้ย่อ/ขยายมุมมองได้
ตัด "ชิ้น" หนึ่งมิติให้คงที่ เช่น ดูยอดขายเฉพาะ เดือนมกราคม เท่านั้น
เลือกชุดย่อยของหลายมิติ เช่น ยอดขายสินค้าหมวด "อิเล็กทรอนิกส์" ภาคเหนือ ใน Q1
ย่อระดับ (เดือน→ปี) หรือขยายระดับ (ปี→เดือน) ตามลำดับชั้น
หมุนแกนเพื่อดูมิติใหม่บนแถว/คอลัมน์ แบบ Pivot Table
จากข้อมูลยอดขายสามมิติ (เวลา, สินค้า, ที่ตั้ง) จงระบุว่าแต่ละคำถามใช้ operation ใด:
คำถาม A → Slicing 🔪
ตัดเพียงมิติเวลาให้คงที่ที่ "กันยายน" มองทุกสินค้าและที่ตั้ง
คำถาม B → Dicing 🎲
เลือกชุดย่อยหลายมิติ: หมวด=เครื่องดื่ม, ที่ตั้ง=ภาคกลาง, เวลา=Q1–Q2
คำถาม C → Drill-down 🔍
ขยายลำดับชั้นเวลาจากปีลงสู่เดือน (Roll-up คือไปทางตรงข้าม)
MOLAP, ROLAP, HOLAP — แต่ละแบบต่างกันที่วิธีจัดเก็บและประมวลผล
Multidimensional OLAP
Relational OLAP
Hybrid OLAP
Star Schema ถูกออกแบบมาให้เหมาะกับการทำ OLAP โดยตรง
ใช้ GROUP BY ร่วมกับฟังก์ชัน Window / ROLLUP / CUBE:
-- Slicing: เฉพาะเดือนมกราคม
SELECT region, SUM(amount) AS revenue
FROM fct_orders f JOIN dim_store s ON f.store_key = s.store_key
WHERE f.order_date BETWEEN '2025-01-01' AND '2025-01-31'
GROUP BY region;
-- Roll-up: ยอดขายตามปี + หมวด (ด้วย ROLLUP)
SELECT YEAR(order_date), category, SUM(amount)
FROM fct_orders f JOIN dim_product p ON f.product_key = p.product_key
GROUP BY ROLLUP(YEAR(order_date), category);
สร้างแดชบอร์ดเบื้องต้นจากตาราง Gold ของโครงการ และเขียนคำสั่ง OLAP:
ClickHouse เป็นฐานข้อมูล Columnar OLAP ยอดนิยมสำหรับการวิเคราะห์แบบเรียลไทม์บนข้อมูลขนาดใหญ่