ป้ายกำกับ: BI

Data Warehouse (คลังข้อมูล)Data Warehouse (คลังข้อมูล)

Data Warehouse (คลังข้อมูล) ถ้าอธิบายให้เห็นภาพง่ายที่สุด มันคือ “ห้างสรรพสินค้าขนาดใหญ่ที่จัดหมวดหมู่สินค้าไว้อย่างดี เพื่อให้คนมาเลือกซื้อไปใช้งาน” ต่างจากฐานข้อมูลทั่วไปที่เป็นเหมือน “ร้านขายชำหลังบ้านที่เน้นรับของเข้า-ออกรายวัน” ครับ


Data Warehouse คืออะไร?

Data Warehouse (DWH) คือระบบฐานข้อมูลรูปแบบหนึ่งที่ออกแบบมาเพื่อ การวิเคราะห์ข้อมูล (Analytics) และการทำรายงาน (Reporting) โดยเฉพาะ มันจะรวบรวมข้อมูลจากหลาย ๆ แหล่งในองค์กร (เช่น ระบบ ERP, CRM, ระบบหลังบ้าน เว็บไซต์ หรือแม้แต่ไฟล์ Excel) มารวมไว้ที่เดียวกัน

คุณสมบัติเด่น 4 ประการ (โดย W.H. Inmon บิดาแห่ง Data Warehouse)

  • Subject-Oriented: จัดเก็บข้อมูลตามหัวข้อหลักของธุรกิจ เช่น เรื่องยอดขาย (Sales), สินค้า (Product), หรือลูกค้า (Customer) ไม่ได้เก็บตามโมดูลของแอปพลิเคชัน
  • Integrated: มีการปรับปรุงข้อมูลให้เป็นมาตรฐานเดียวกัน เช่น ระบบหนึ่งเก็บเพศเป็น M/F อีกระบบเก็บเป็น 1/0 เมื่อเข้า DWH ต้องแปลงให้เป็นแบบเดียวกันทั้งหมด
  • Non-Volatile: ข้อมูลที่เข้า DWH แล้วจะเน้นอ่านและวิเคราะห์เป็นหลัก จะไม่มีการแก้ไข (Update) หรือลบ (Delete) บ่อย ๆ เหมือนระบบหน้าร้าน
  • Time-Variant: เก็บข้อมูลย้อนหลังเป็นเวลานาน (เช่น 5-10 ปี) เพื่อดูแนวโน้ม (Trend Analysis) ต่างจากระบบหน้าร้านที่มักสนใจแค่ข้อมูลปัจจุบัน

ความแตกต่างระหว่าง OLTP และ OLAP

ในการทำงานกับข้อมูล เราจะแบ่งระบบออกเป็น 2 ขาหลัก ๆ

คุณสมบัติOLTP (Online Transaction Processing)OLAP (Online Analytical Processing)
วัตถุประสงค์เน้นงานประจำวัน ทำงานกับข้อมูลปัจจุบัน (เช่น การบันทึกยอดซื้อขาย)เน้นการวิเคราะห์ หาข้อมูลเชิงลึก (Insight) และทำ Report
ตัวอย่างระบบฐานข้อมูลในระบบ App/Web, MySQL, SQL Server, Oracle ทั่วไปData Warehouse (เช่น BigQuery, Snowflake, Amazon Redshift)
ลักษณะ QueryINSERT, UPDATE ทีละแถว (Row-based) ทำงานเร็วมากSELECT ข้อมูลปริมาณมหาศาลเพื่อมา Aggregate (Sum, Avg, Count)
การออกแบบมักทำ Normalization (3NF) เพื่อลดความซ้ำซ้อนของข้อมูลมักทำ Denormalization (เช่น Star Schema) เพื่อให้ Query ได้เร็วที่สุด

สถาปัตยกรรมและกระบวนการทำงาน (Architecture)

กว่าข้อมูลจากระบบต่าง ๆ จะมาอยู่ใน Data Warehouse และพร้อมใช้ จะต้องผ่านกระบวนการที่เรียกว่า ETL / ELT ครับ

  1. Data Sources: แหล่งข้อมูลต้นทาง (App DB, Log files, Third-party API)
  2. Staging Area: พื้นที่พักข้อมูลชั่วคราว เพื่อทำการคลีนข้อมูลก่อน
  3. ETL / ELT Process:
    • Extract: ดึงข้อมูลมาจากแหล่งต่าง ๆ
    • Transform: คลีนข้อมูล แปลงรูปแบบ (Format) และจัดการกรณีข้อมูลสูญหาย หรือแทนค่าว่าง (เช่น การจัดการ '' หรือ NULL ให้เป็นมาตรฐานเดียวกัน)
    • Load: นำข้อมูลเข้าสู่ Data Warehouse
  4. Data Mart (ถ้ามี): คือ Data Warehouse ย่อย ๆ ที่ตัดแบ่งตามแผนก เพื่อให้ใช้งานง่ายขึ้น เช่น Data Mart สำหรับฝ่ายการตลาด, ฝ่ายการเงิน
  5. BI / Analytics: บอร์ดบริหาร หรือ Data Analyst นำข้อมูลไปใช้ต่อผ่านเครื่องมืออย่าง Power BI, Tableau หรือเขียน SQL เพื่อรันโมเดล AI

การออกแบบ Data Modeling สำหรับ คลังข้อมูล

ส่วนใหญ่ใน Data Warehouse จะนิยมใช้ Star Schema หรือ Snowflake Schema โดยจะแบ่งตารางออกเป็น 2 ประเภทหลัก

  • Fact Table: ตารางที่เก็บ “เหตุการณ์” หรือ “ตัวเลข” ที่เกิดขึ้น เช่น ตารางยอดขาย (เก็บยอดเงิน, จำนวนชิ้น, วันที่เกิดรายการ, Key ของลูกค้า)
  • Dimension Table: ตารางที่เก็บ “บริบท” หรือ “รายละเอียด” เพื่อเอาไว้ขยายความใน Fact Table เช่น รายละเอียดลูกค้า (ชื่อ, ที่อยู่, ช่วงอายุ), รายละเอียดสินค้า (ชื่อสินค้า, หมวดหมู่)

เทคโนโลยีในปัจจุบัน

ปัจจุบัน Data Warehouse ได้ย้ายขึ้นไปอยู่บน Cloud เป็นส่วนใหญ่ (Cloud Data Warehouse) เพราะขยายขนาด (Scale) ง่าย และคิดเงินตามการใช้งานจริง

  • Google BigQuery: ได้รับความนิยมสูงมากในฝั่ง Data Analytics เพราะเป็น Serverless และทำงานร่วมกับเครื่องมืออื่น ๆ ได้ดี
  • Snowflake: ยืดหยุ่นสูง แยกส่วนคำนวณ (Compute) กับส่วนเก็บข้อมูล (Storage) ออกจากกันชัดเจน
  • Amazon Redshift / Microsoft Azure Synapse: เหมาะกับองค์กรที่ใช้ Infra หลักบน AWS หรือ Azure อยู่แล้ว

Note

ในยุคนี้บางองค์กรยังมีการขยับไปใช้แนวคิด Data Lakehouse (เช่น Databricks) ที่เป็นการรวมข้อดีของ Data Lake (เก็บไฟล์ดิบได้ทุกประเภท) และ Data Warehouse (เขียน SQL และจัดการ Transaction ได้ดี) เข้าไว้ด้วยกันอีกด้วยครับ


อ่านเพิ่มเติม