dataวันละคำ E - ETL

ETL (Extract-Transform-Load) คือ 3 ขั้นตอนในการเตรียมข้อมูลให้พร้อมใช้ ถ้าเปรียบเป็นการทำอาหารก็คือการนำวัตถุดิบจากหลายแหล่งมาจัดเตรียมใส่ตู้เย็นไว้ให้เชฟนั่นเอง

2025/12/31 แก้ไขแล้ว

... อ่านเพิ่มเติมถ้ามีคนถามว่า “ETL คืออะไร” ฉันมักตอบสั้นๆ ว่า ETL คือกระบวนการ “เตรียมข้อมูลให้พร้อมใช้งาน” ก่อนเอาไปทำรายงานหรือทำ Analytics/BI ซึ่งภาพรวมมันตรงตามชื่อเลย: Extract → Transform → Load 1) Extract (ดึงข้อมูลออกมา) ขั้นแรกคือการดึงข้อมูลจากแหล่งต่างๆ ออกมาก่อน เช่น ไฟล์ Excel จากทีมขาย, ข้อมูล JSON จาก API, ไฟล์ XML จากระบบเก่า หรือดึงจากฐานข้อมูลหลายก้อนรวมกัน จุดที่เจอบ่อยคือ “ข้อมูลกระจัดกระจาย” และรูปแบบไม่เหมือนกัน ทำให้ยังใช้ต่อไม่ได้ทันที 2) Transform (จัดระเบียบ/ปรับรูปแบบ/ทำความสะอาด) ขั้นนี้คือหัวใจของ ETL เพราะเป็นช่วงที่เราทำให้ข้อมูล “พูดภาษาเดียวกัน” เช่น - ปรับชนิดข้อมูล: วันที่จากข้อความให้เป็น Date, ตัวเลขที่มีคอมม่าให้เป็น Number - ทำความสะอาด: ลบแถวซ้ำ, เติมค่าว่าง, แก้สะกดชื่อจังหวัด/สินค้าให้มาตรฐาน - รวม/แยกคอลัมน์: แยกชื่อ-นามสกุล, รวมรหัสสินค้า+สาขาเป็นคีย์ - Mapping/Join: ผูกข้อมูลลูกค้าจากหลายระบบด้วย Customer ID ฉันชอบเปรียบว่าเป็นการ “ล้าง หั่น หมัก” วัตถุดิบก่อนเข้าครัว เพราะถ้าข้ามขั้นนี้ ต่อให้มีข้อมูลเยอะก็ทำรายงานแล้วเพี้ยนได้ง่าย (เช่น ยอดขายหายเพราะชื่อสาขาสะกดไม่ตรงกัน) 3) Load (โหลดเข้าแหล่งเก็บส่วนกลาง) เมื่อข้อมูลพร้อมแล้วก็โหลดเข้า “ที่เก็บส่วนกลาง” เช่น Data Warehouse, Database, หรือ Data Lake เพื่อให้ทีมอื่นๆ ดึงไปใช้ต่อได้ง่ายและเป็นแหล่งเดียวกัน (Single Source of Truth) ตรงนี้มักมีการกำหนดตารางปลายทาง, กฎการอัปเดต (เพิ่มใหม่/ทับของเดิม), และตรวจสอบคุณภาพหลังโหลดเสร็จ ตัวอย่างแบบเห็นภาพ สมมติเราต้องทำแดชบอร์ดยอดขายรายวัน - Extract: ดึงยอดขายจากไฟล์ Excel + รายการคืนสินค้าจาก JSON API - Transform: ทำรูปแบบวันที่ให้เหมือนกัน, รวมสกุลเงิน, ลบรายการซ้ำ, คำนวณยอดสุทธิ - Load: โหลดเข้าตารางยอดขายในฐานข้อมูลกลาง แล้วค่อยให้เครื่องมือ BI มาดึงไปทำกราฟ สรุปสั้นๆ อีกที: ETL คือ 3 ขั้นตอน Extract (ดึง) → Transform (จัดระเบียบ/ทำความสะอาด) → Load (อัปโหลดเข้าที่เก็บส่วนกลาง) เพื่อให้ข้อมูลพร้อมใช้งานจริง ถ้าเข้าใจภาพนี้ เวลาเจอคำว่า “etl” ในงาน data จะจับทางได้ทันทีว่าเรากำลังพูดถึงการเตรียมข้อมูลก่อนใช้งานนั่นเอง