ETL คืออะไร ?

กลไก ETL คืออะไร ?
ETL ย่อมาจาก Extract-Transform-Load ซึ่งเป็นลำดับของกลไก ETL เพื่อนำข้อมูลจากแหล่งข้อมูลที่ยังไม่พร้อมนำมาใช้งานเพื่อการวิเคราะห์มาทำให้พร้อมใช้งาน (Data Preperation) โดยอายุของชุดกลไก ETL นี้ไม่ต่ำกว่า 50 ปีมาแล้ว เกิดมาพร้อมกับการบัญญัติศัพท์ “Data Warehouse” ขึ้นโดย Bill Inmon - Wikipedia ตอนกลางยุค 70ส่วนประกอบชองชุดกลไก ETL
ETL ประกอบด้วย 3 กลไก ดังนี้- การสกัดข้อมูลจากแหล่งข้อมูล (Extract)
- การแปลงข้อมูลให้อยู่ในรูปแบบที่เหมาะสม (Transform)
- การโหลดข้อมูลไปยังปลายทาง (Load)

จึงกลายมาเป็นตัวย่อ ETL ตามลำดับของกลไก
ดังนั้นเมื่อพูดถึง ETL ในเวลานี้จะหมายถึง การสกัดข้อมูลจากต้นทาง แล้วทำการแปลงข้อมูลเพื่อให้พร้อมนำไปโหลดขึ้นปลายทางที่เป็น Data Warehouse ในรูปแบบ Dimensional Model นั่นเอง
Dimensional Model
ทั้ง ETL และ Data Warehouse แม้จะบัญญัติขึ้นนานแล้ว แต่ทำไมเพิ่งมาคุ้นหูเมื่อไม่นานมานี้ (ราว 20 ปีเศษ) อาจเป็นเพราะวิธีการสร้าง Data Warehouse ตามแนวทางของ Bill Inmon ที่มีลักษณะเป็น Top-Down Approach เมื่อนำไปทำตามแล้วมีอัตราการประสบความสำเร็จต่ำมาก จนยังไม่เป็นที่สนใจก็เป็นได้ จนกระทั่งในปี 1996 Ralph Kimball - Wikipedia ได้นำเสนอแนวทางการสร้าง Data Warehouse ที่เรียกว่า Dimensional modeling - Wikipedia ซึ่งเป็น Bottom-Up Approach สวนทางกับแนวทางของ Bill Inmon ปรากฏว่าแนวทางนี้มีอัตราการประสบความสำเร็จสูงมาก ยุคเฟื่องฟูของ Data Warehouse และ Business Intelligence น่าจะเกิดเพราะแนวทางนี้ดังนั้นเมื่อพูดถึง ETL ในเวลานี้จะหมายถึง การสกัดข้อมูลจากต้นทาง แล้วทำการแปลงข้อมูลเพื่อให้พร้อมนำไปโหลดขึ้นปลายทางที่เป็น Data Warehouse ในรูปแบบ Dimensional Model นั่นเอง

ทำไมถึงต้องสร้าง Data Warehouse มาสนับสนุน Business Intelligence
ทำไมถึงต้องสร้าง Data Warehouse มาสนับสนุน Business Intelligence มาสนับสนุน Business Intelligence ทั้งที่ต้นทางก็เก็บข้อมูลเอาไว้แล้ว เช่นอยู่ในรูปแบบฐานข้อมูลเชิงสัมพันธ์ (Relational Database) บรรดาเครื่องมือด้าน Business Intelligence ไปดึงข้อมูลมาจากต้นทางเลยไม่ได้หรือ ?- คำตอบคือได้ แต่ก่อนที่จะได้รายงานออกมาให้เราดูกันมีภาระงานเกิดขึ้นมากเกินไป ตัวอย่างเช่น ต้นทางเป็นฐานข้อมูลเชิงสัมพันธ์ (Relational Database) ซึ่งเกิดจากการออกแบบตามหลักการ Normalization แยกข้อมูลออกเป็นตารางย่อย ๆ วัตถุประสงค์ก็เพื่อทำให้การจัดเก็บข้อมูลไม่เกิดความซ้ำซ้อน และลดความผิดพลาดที่จะเกิดขึ้นตอนปรับปรุงข้อมูล แต่การออกแบบดังกล่าวไม่เอื้อต่อการนำไปออกรายงาน
แต่ Dimensional Model ของ Ralph Kimball นั้น เป็นส่วนผสมของทั้ง De-Normalization และ Normalization อยู่ด้วยกัน ดังรูปเป็นตัวอย่างของ Star Schema

ผู้เขียนได้เคยเขียนเกี่ยวกับ Dimensional Model เอาไว้แล้ว ผู้อ่านสามารถติดตามได้ที่ รู้จักกับโครงสร้างข้อมูล แบบ Dimensional Model | 9Expert Training
เครื่องมือสำหรับ ETL
ผู้เขียนข้อตอบแบบกำปั่นทุบดินคือ จะใช้เครื่องมืออะไรก็ได้ที่สามารถเข้าถึงแหล่งข้อมูลต้นทาง และสามารถแปลงข้อมูล แล้วนำมาโหลดขึ้นปลายทาง โดยให้อยู่ในรูปแบบ Dimensional Model ได้ ใครถนัดเขียน Application เอาก็สามารถทำได้ แต่จะดีกว่าไหม ถ้ามีเครื่องมือที่สามารถเข้าถึงแหล่งข้อมูลต้นทางได้หลากหลาย สามารถทำ Data Cleansing ให้กับข้อมูลที่มาจากหลายแหล่ง แล้วต้องนำมารวมกัน ถูกออกแบบให้สอดคล้องกับ Dimensional Model 100% เครื่องมือที่ผู้เขียนจะแนะนำสำหรับนำไป ETL ใน SQL Server ก็คือ Microsoft SQL Server Integration Service ซึ่งถูกออกแบบให้- เข้าถึงแหล่งข้อมูลต้นทางได้หลากหลาย
- สามารถเรียกใช้ Service อย่าง Microsoft DQS (Data Quality Service) เพื่อทำ Data Cleansing ให้กับข้อมูล
- มีกลไกเพื่อ Transform ข้อมูลที่ครบถ้วน
- รองรับการการ Transform ไปเป็น Dimensional Model โดยเฉพาะ
- รองรับ Slow Changing Dimension
- รองรับ Incremental Update ปริมาณมาก
แนะนำหลักสูตร SQL Server โดย 9Expert Training
- กลุ่ม SQL Server Query and Programming เพื่อการสืบค้นและโปรแกรม SQL
- กลุ่ม SQL Server Business Intelligence เพื่องานด้านการวิเคราะห์ข้อมูล
- กลุ่ม Microsoft SQL Server Database Administration เพื่อการดูแลระบบอย่างมีประสิทธิภาพ
โดย รายละเอียด เครื่องมือในการ ETL นั้น เป็นส่วนหนึ่งของหลักสูตร ETL with SQL Server Integration Service (SSIS)
ซึ่งผู้เข้าอบรมจะได้ เรียนรู้การ ETL ข้อมูลไปสร้างเป็น Dimensional Model (Data Warehouse) เพื่อทำ Data Analytics ด้วย SQL Server Integration Service (SSIS)
ดูเพิ่มเติมได้ที่ https://www.9experttraining.com/sql-server-all-courses