ETL (Extract, Transform, Load)
ETL ย่อมาจาก Extract, Transform, and Load เป็น process ที่ data-driven organizations ใช้ gather data จาก multiple sources และรวมเข้าด้วยกัน เพื่อ support discovery, reporting, analysis, และ decision-making
Data sources อาจ divergent ใน type, format, volume, reliability ดังนั้น data ต้อง processed เพื่อเป็น useful เมื่อ delivered together Target data stores อาจเป็น databases, data warehouses, หรือ data lakes ขึ้นอยู่กับ objectives และ technical implementation
ขั้นตอนของ ETL
1. Extract (การดึงข้อมูล)
ระหว่าง extraction ETL ระบุ data และ duplicate จาก sources เพื่อ transport ไป target datastore Data อาจมาจาก structured และ unstructured sources: files, emails, business software, databases, equipment, sensors, third parties, เป็นต้น
มี different ways สำหรับ extraction:
- Partial Extraction: Simplest way ถ้า source system notifies เมื่อ record ถูก modified
- Partial Extraction (with update notification): ไม่ใช่ทุกระบบ provide notification เมื่อ update เกิดขึ้น แต่สามารถ mark records ที่ changed และ provide extract ของ records นั้นๆ
- Full extract: บางระบบไม่สามารถ identify ได้ว่าข้อมูลไหน changed ในกรณีนี้ full extract เป็น only way ดึง record ออกจากระบบ ต้องมี copy ของ last extract ใน same format เพื่อ identify changes
2. Transform (การแปลงข้อมูล)
ขั้นตอนที่สอง transform raw information ที่ extracted จาก sources ให้เป็น format ที่ multiple applications ใช้ได้ ใน phase นี้ data ถูก cleansed, mapped, transformed ตาม definite schema เพื่อ meet operational needs
Process นี้ require several types of transformations ให้ quality และ integrity ของ data Data ไม่ได้ load directly เข้า target data source แต่อาจ upload เข้า staging database ก่อน
Step นี้ ensure quick rollback ถ้าบางอย่างไม่ไปตามแผน ระหว่าง phase นี้ สร้าง audit documents สำหรับ regulatory compliance หรือ diagnose/repair data problems
3. Load (การโหลดข้อมูล)
ETL ย้าย transformed information เข้า target datastore Step นี้อาจต้องการ initial loading ของ all source information หรือ incremental changes ใน source information สามารถ load data ใน real-time หรือ scheduled batches