ETL ย่อมาจาก Extract, transform และ Load เป็นกระบวนการที่องค์กรที่ขับเคลื่อนด้วยข้อมูลใช้เพื่อรวบรวมข้อมูลจากแหล่งต่างๆ แล้วนำมารวมกันเพื่อสนับสนุนการค้นพบ การรายงาน การวิเคราะห์ และการตัดสินใจ
แหล่งข้อมูลอาจแตกต่างกันในรูปแบบ รูปแบบ ปริมาณ และความน่าเชื่อถือ ดังนั้นข้อมูลที่จำเป็นต้องได้รับการประมวลผลจะเป็นประโยชน์เมื่อส่งร่วมกัน ที่เก็บข้อมูลเป้าหมายอาจเป็นฐานข้อมูล คลังข้อมูล หรือ Data Lake ตามวัตถุประสงค์และการดำเนินการทางเทคนิค ETL มีขั้นตอนดังต่อไปนี้ -
สารสกัด − ในระหว่างการแยก ETL จะรับรู้ข้อมูลและทำซ้ำจากแหล่งที่มา จึงสามารถส่งข้อมูลไปยังที่เก็บข้อมูลเป้าหมายได้ ข้อมูลอาจปรากฏขึ้นจากแหล่งที่มาที่มีโครงสร้างและไม่มีโครงสร้าง รวมถึงไฟล์ อีเมล ซอฟต์แวร์ธุรกิจ ฐานข้อมูล อุปกรณ์ เซ็นเซอร์ บุคคลที่สาม เป็นต้น
มีหลายวิธีในการสกัดเช่น
การสกัดบางส่วน − วิธีที่ง่ายที่สุดในการเข้าถึงข้อมูลคือถ้าระบบต้นทางแจ้งให้เราทราบเมื่อมีการแก้ไขบันทึก
การดึงข้อมูลบางส่วน (พร้อมการแจ้งเตือนการอัปเดต) − ไม่ใช่ทุกระบบที่สามารถให้การประกาศในกรณีที่มีการอัปเดตเกิดขึ้น แต่สามารถทำเครื่องหมายในบันทึกที่แปลงแล้วและสนับสนุนการแยกบันทึกดังกล่าวได้
สารสกัดเต็ม − บางระบบไม่สามารถระบุได้ว่าข้อมูลใดมีการเปลี่ยนแปลงเลย ในกรณีนี้ การแยกแบบเต็มเป็นความเป็นไปได้เพียงอย่างเดียวที่จะดึงบันทึกออกจากระบบ แนวทางนี้จำเป็นต้องมีสำเนาของสารสกัดสุดท้ายในรูปแบบเดียวกันเพื่อให้สามารถระบุการเปลี่ยนแปลงที่สร้างขึ้นได้
แปลงร่าง − ขั้นตอนที่สองรวมถึงการแปลงข้อมูลดิบที่ดึงมาจากแหล่งที่มาให้อยู่ในรูปแบบที่แอปพลิเคชันต่างๆ สามารถใช้ได้ ในระยะนี้ ข้อมูลได้รับการล้าง แมป และแปลงเป็นสคีมาที่แน่นอน ดังนั้นจึงพบความต้องการในการปฏิบัติงาน
กระบวนการนี้ต้องการการแปลงหลายประเภทที่ให้คุณภาพและความสมบูรณ์ของข้อมูล โดยทั่วไป ข้อมูลจะไม่ถูกโหลดลงในแหล่งข้อมูลเป้าหมายอย่างแม่นยำ แต่อีกทางหนึ่ง มักจะมีการอัปโหลดไปยังฐานข้อมูลการจัดเตรียม
ขั้นตอนนี้ช่วยให้มั่นใจได้ถึงการย้อนกลับอย่างรวดเร็วในกรณีที่มีบางอย่างไม่เป็นไปตามที่วางแผนไว้ ในระหว่างขั้นตอนนี้ สามารถสร้างเอกสารการตรวจสอบการปฏิบัติตามกฎระเบียบ หรือวินิจฉัยและแก้ไขปัญหาข้อมูลบางอย่างได้
โหลด − ETL ย้ายข้อมูลที่แปลงแล้วไปยังที่เก็บข้อมูลเป้าหมาย ขั้นตอนนี้อาจทำให้ต้องโหลดต้นฉบับของข้อมูลต้นทางทั้งหมด หรืออาจเป็นการโหลดการเปลี่ยนแปลงที่เพิ่มขึ้นในข้อมูลต้นทางก็ได้ สามารถโหลดข้อมูลในแบบเรียลไทม์หรือตามกำหนดเวลา