ETL vs ELT ต่างกันอย่างไร? ทำไม Data Warehouse สมัยใหม่นิยมใช้ ELT

etl vs elt data warehouse

หลายคนที่ทำงานสายดาต้า หรือกำลังศึกษาเรื่องดาต้าอาจจะเคยได้ยิน กระบวนการที่เรียกว่า ELT และ ETL มาบ้าง และก็พอจะเดาได้ว่าเป็นกระบวนการในการเก็บข้อมูลเข้าที่อย่างหนึ่ง ที่ได้รับความนิยมอย่างมาก

และถ้ามองดีๆก็จะเห็นว่า ตัวอักษรสองตัวหลัง L และ T สลับที่กัน นั้นก็แปลความได้ว่าทั้งสองกระบวนการแตกต่างกันตรงที่ลำดับการทำงาน 

ถ้าทุกคนอยากรู้แล้วว่าแต่ละกระบวนการเป็นอย่างไร มีข้อดีข้อเสียอะไรบ้าง และแตกต่างกันอย่างไร ไปต่อกันเลยค่ะ

3 ขั้นตอนหลักในกระบวนการย้ายข้อมูล

ก่อนที่จะมารู้จักกับ ETL แฝดคนละฝาของ ELT เรามาทำความรู้จักกับ 3 ขั้นตอนหลัก ที่เป็นจุดสำคัญของกระบวนการทั้งสองกัน

  • Extract เป็นการดึงข้อมูลออกมาจากแหล่งข้อมูล ไม่ว่าจะเป็นการดึงข้อมูลจากแหล่งเดียวหรือหลายแหล่ง หรืออาจจะเป็นแหล่งตั้งต้นก็ได้ ยกตัวอย่าง เช่น จาก ฐานข้อมูล (Database), API, เซนเซอร์ (sensor), Cloud หรือไฟล์ต่างๆ
  • Transform เป็นการเปลี่ยนโครงสร้างข้อมูลให้อยู่ในรูปแบบที่เราต้องการ หรือสอดคล้องกับรูปแบบข้อมูลปลายทางที่เราจะนำไปใส่ได้
  • Load เป็นการนำข้อมูลเข้าไปใส่ในระบบจัดเก็บข้อมูลปลายทางที่ต้องการ เช่น ฐานข้อมูล (Database) คลังข้อมูล (Data Warehouse) หรือ Data Lake เป็นต้น (ถ้าใครสงสัยว่าทั้งสามต่างกันอย่างไร อ่านเพิ่มเติมได้ที่ Big Data เก็บที่ไหน? Data Lake vs Data Warehouse vs Database)

เมื่อเข้าใจกันแล้วว่าแต่ละขั้นตอนคืออะไร เราลองมาดูกันว่าแฝดคนละฝาอย่าง ETL และ ELT ต่างกันอย่างไร

ETL คืออะไร

ETL data process
กระบวนการ ETL

เรามาเริ่มกันที่กระบวนการแรก ETL (Extract – Transform – Load) คือกระบวนการดั้งเดิมในการจัดการข้อมูลก่อนจะนำมาใช้วิเคราะห์ที่ใช้กันมาหลายทศวรรษ โดยเป็นวิธีที่เริ่มมีขึ้นมาจากการนำข้อมูลเข้า ฐานข้อมูลเชิงสัมพันธ์ (Relational Databases) ซึ่งเป็นเครื่องมือที่ได้รับความนิยมมากในขณะนั้น 

ETL เริ่มจากการดึงข้อมูล (Extract) ออกมาจากแหล่งข้อมูล นำไปใส่ไว้ที่ พื้นที่พักข้อมูล (Staging Area) เพื่อรอการทำความสะอาด ปรับแต่ง หรือแปลงข้อมูล (Transform) และนำข้อมูลไปเก็บ (Load) ไว้ใน Data Warehouse หรือแหล่งที่ต้องการ

ทีมงานที่ต้องการใช้ข้อมูลต้องทำการประเมินล่วงหน้าว่า ต้องการใช้ข้อมูลอะไร ในกรณีไหนมาวิเคราะห์ และเปลี่ยนแปลงข้อมูลไปตามนั้น เพราะว่า Data Analyst หรือ Data Scientist จะไม่สามารถเข้าถึงข้อมูลเพื่อนำไปวิเคราะห์ สร้างโมเดลได้ จนกว่าข้อมูลจะมาถึงจุดหมายปลายทาง เช่น Data Warehouse

ข้อดีและข้อเสียของ ETL

ถึง ELT จะเป็นกระบวนการแบบใหม่ แต่ก็มีทั้งข้อดีและข้อเสียที่ตามด้านล่างนี้

ข้อดีของ ETL

  • ประหยัดพื้นที่ในการเก็บ (Managable Storage)ETL เป็นกระบวนการที่ทำการแปลงข้อมูล และกรองข้อมูลก่อนเพื่อเก็บแต่ข้อมูลที่เราต้องการ และนั้นก็เป็นการประหยัดพื้นที่ในการเก็บข้อมูล
  • ข้อกำหนดด้านการรักษาความปลอดภัยของข้อมูลที่ดี (Compliance with security protocols) เราสามารถกำหนดข้อปฏิบัติด้านการรักษาความปลอดภัยของข้อมูลให้สอกคล้องกับความต้องการของบริษัทได้เลย เช่น สามารถทำการลบ การซ่อน หรือการเข้ารหัสข้อมูลส่วนบุคคลที่มีความอ่อนไหวอย่าง อีเมลล์ หรือ IP address ก่อนที่จะเก็บในคลังข้อมูลได้เลยในขั้น Transform

ข้อเสียของ ETL

  • ความยืดหยุ่นต่ำ (Low flexibility)ในกรณีที่เรามีแหล่งข้อมูลที่มีการอัพเดทเปลี่ยนแปลงบ่อยๆ การใช้ ETL จำเป็นต้องวางแผนขั้นตอนการ Transform ไว้ล่วงหน้า หรืออาจต้องหยุดกระบวนการแล้วเริ่มทำใหม่ทุกๆครั้งที่มีข้อมูลเข้ามา ซึ่งทำให้มีค่าใช้จ่ายในการดูแลสูงขึ้นตามไปด้วย
  • ความช้า (Slow)เราต้องรอจนกว่าการแปลงข้อมูลจะเสร็จสมบูรณ์ และถูกใส่เข้าไปในปลายทางที่เราเข้าถึงได้อย่างคลังข้อมูลถึงจะมีสิทธิจับข้อมูล
  • ค่าใช้จ่ายเริ่มต้นสูง (High initial cost)เราต้องทำการวางแผนกระบวนการของทั้งโปรเจคว่าจะนำข้อมูลอะไรเข้ามา นำเข้ามาอย่างไร และมีการแปลงข้อมูลอย่างให้เหมาะกับสิ่งที่เราต้องการ ทำให้มีค่าใช้จ่ายเบื้องต้นสูง นอกจากนั้นยังต้องทำการดูแลตลอดกระบวนการ การอัพเดท และการเปลี่ยนแหล่งข้อมูลอีกด้วย

และนั่นก็ทำให้เกิด กระบวนการที่เรียกว่า ELT เพื่อลดความล่าช้านั่นเอง

ELT คืออะไร

ELT data process
กระบวนการ ELT

กระบวนการที่ได้รับการพัฒนาต่อมา ELT (Extract – Load – Transform) คือกระบวนการสมัยใหม่ที่ทำการเก็บข้อมูลเข้าไปไว้ในปลายทางก่อนที่จะมีการเปลี่ยนแปลงรูปแบบข้อมูล เทคโนโลยีที่ดีขึ้นอย่าง Cloud ทำให้มีการสเกลและการแยกทรัพยากรในการคำนวณออกจากการจัดเก็บข้อมูลทำให้เราสามารถทำการโหลด (Load) ข้อมูลก่อนเปลี่ยนแปลง (Transform) ได้

เมื่อไม่มีการเปลี่ยนแปลงข้อมูลก่อนหน้า ทำให้ Data Analyst และ Data Scientist สามารถทำงานได้อย่างรวดเร็วและใช้ข้อมูลทั้งหมดที่มีอยู่ในการวิเคราะห์ และสร้างโมเดลได้

ข้อดีและข้อเสียของ ELT

ถึง ELT จะเป็นกระบวนการแบบใหม่ แต่ก็มีทั้งข้อดีและข้อเสียที่ตามด้านล่างนี้

ข้อดีของ ELT

  • ความคล่องตัว (Agility)ข้อมูลทั้งหมดถูกเก็บอยู่ใน Data Warehouse และพร้อมใช้งานได้เลย เราไม่ต้องคำนึงถึงโครงสร้างในการเก็บข้อมูลก่อนที่จะโหลดเข้าไปใน Data Warehouse และรูปแบบของข้อมูล (data modelling) ที่เราต้องการสามารถเปลี่ยนแปลงไปได้ตามที่เราต้องการ
  • ความเรียบง่าย (Simplicity)เนื่องจากการเปลี่ยนแปลงข้อมูลจะเกิดขึ้นใน Data Warehouse ซึ่งใช้ภาษา SQL ในการเขียนโดยปกติ ทำให้การทำงานของทีมนั้นง่ายขึ้นเพราะเป็นภาษากลางที่ทุกคนเข้าใจและใช้กันเป็นทั้งทีม (data engineers, data scientists, data analyst) นอกจากนี้ยังทำให้ทุกคนมีส่วนร่วมในการคิดโลจิกการแปลงข้อมูลอีกด้วย
  • การวิเคราะห์ด้วยตัวเอง (Self service analytics)ถ้าข้อมูลทุกอย่างถูกเก็บไว้ในที่เดียวกันอย่าง Data Warehouse เราสามารถใช้เครื่องมือ BI ในการทำการวิเคราะห์ข้อมูลดิบเบื่องต้นได้
  • การแก้บัก (Fixing bugs)ถ้าเรามีข้อผิดพลาดหรือ ใน pipeline ระหว่างการเปลี่ยนแปลงข้อมูล (transform) เราก็สามารถแก้ไข bug และลองรันเฉพาะการเปลี่ยนแปลงข้อมูลใหม่ได้้เลย ขณะที่ ในกระบวนการ ETL เราต้องรันทุกอย่างใหม่แต่ต้น ตั้งแต่ extract load และ transform

ข้อเสียของ ELT

  • ความเสี่ยงด่้านการรักษาความปลอดภัยของข้อมูล (Data security risks)เนื่องจากว่า ELT ทำการโหลดข้อมูลดิบทั้งหมดเข้าไปเลย ทำให้อาจมีปัญหาด้านการรักษาความปลอดภัยของข้อมูลได้ เราสามารถลดความเสี่ยงโดยการจำกัดคนที่สามารถเข้าถึงข้อมูลทั้งหมดได้
  • มีข้อกำหนดด้านการรักษาความปลอดภัยของข้อมูลต่ำ (Low compliance with data security protocols) ELT มีกระบวนการที่ไม่ซับซ้อน โดยทำการโหลดข้อมูลเข้าไปเลยโดยที่ไม่มีการกรอง ทำให้มีหลักการปฏิบัติด้านการรักษาความปลอดภัยของข้อมูลต่ำ เราสามารถเพิ่มข้อกำหนดด้านการรักษาความปลอดภัยเข้าไปได้ตามสมควร

เราลองมาดูสรุปสั้นๆกันว่า ETL และ ELT แตกต่างกันอย่างไร

ข้อแตกต่างระหว่าง ETL และ ELT คืออะไร

ETL (Extract Transform Load)ELT (Extract Load Transform)
ลักษณะวิธีดั้งเดิมในการย้ายข้อมูล เป็นที่นิยมในการย้ายข้อมูลไปที่ต่างๆวิธีการย้ายข้อมูลสมัยใหม่ เทคโนโลยีระบบใหม่ๆสามารถทำได้
การประมวลผล (Transform)ระบบปลายทางไม่ต้องประมวลผลเยอะระบบปลายทางจะต้องประมวลผลข้อมูลเยอะ
พื้นที่พักข้อมูล (Staging Area)ต้องมี Staging Area แยก เพื่อประมวลผลข้อมูลใช้ระบบปลายทางเป็น Staging Area
ขนาดข้อมูล
(Data Size)
เหมาะสำหรับข้อมูลขนาดเล็กสามารถใช้งานกับการดึงข้อมูลขนาดใหญ่
ความล่าช้าในประมวลผลข้อมูล (Latency)สูง🔺 เพราะต้องรอการ Transform ก่อนเก็บข้อมูลต่ำ🔻 เพราะไม่มีกระบวนการอื่น ก่อนการเก็บข้อมูล
ความสามารถในการรับรองการขยายตัว (Scalability)ต่ำ🔻 เพราะ ETL สนับสนุนการเปลี่ยนแปลงข้อมูลน้อยสูง🔺 เพราะ ELT สามารถปรับเปลี่ยน ตั้งค่าได้ง่าย
การบำรุงรักษา (Maintenance)อาจต้องคอยดูตลอด ถ้ามีการเปลี่ยนแหล่งข้อมูลการบำรุงรักษาน้อย เพราะส่วนใหญ่เป็นกระบวนการอัตโนมัติ (Automate Process)
พื้นที่เก็บข้อมูลที่ต้องใช้ (Storage Requirement)ต่ำ🔻 เพราะใช้เก็บข้อมูลระหว่าง Transform เท่านั้นสูง🔺 เพราะต้องเก็บข้อมูลดิบทั้งหมดก่อนการ Transform
การใช้งานData Analyst ต้องรอ ETL เสร็จถึงได้ข้อมูลData Analyst เข้าถึงข้อมูลได้เร็วกว่า ไม่ต้องรอ ELT เสร็จ สามารถ Transform ข้อมูลดิบตอนดึงข้อมูลได้เลย
ตารางเปรียบเทียบระหว่าง ELT และ ETL

ตอนไหนใช้ ELT ดีกว่า ETL

รู้ถึงความแตกต่างระหว่าง ELT และ ETL กันไปแล้ว เรามาดูกันว่าตอนไหนที่ควรใช้ ELT ถึงจะได้ผลที่ดีมากกว่ากัน

  • เมื่อมีจำนวนข้อมูลเยอะมากที่ต้องใช้งาน
  • เมื่อต้องเก็บข้อมูลอย่างรวดเร็ว มีเวลาจำกัด
  • เมื่อต้องการข้อมูลที่เก็บย้อนหลังเป็นเวลาหลายๆปี (Historical Data) เพื่อจะได้นำไปวิเคราะห์เปรียบเทียบหาแนวโน้ม
  • เมื่อต้องการการนำข้อมูลเข้าระบบแบบยืดหยุ่น

เครื่องมือในการทำ ELT

เรามีเครื่องมือหลายชนิดในการทำ ELT ในปัจจุบัน เครื่องมือหนึ่งที่ได้รับความนิยมจะเป็น Cloud Data Warehouse ซึ่งมีโครงสร้างพร้อม ทั้งพื้นที่เก็บข้อมูล กำลังในการประมวลผล การรองรับการแปลงข้อมูล และการโยกย้ายข้อมูลในตััว เครื่องมือที่หลายคนใช้กันมีดังต่อไปนี้

  • Snowflake
  • Amazon Redshift
  • Google BigQuery
  • Microsoft Azure

ถึงแม้ว่า ELT จะเป็นกระบวนการที่ไม่ได้ใช้กันอย่างทั่วถึง แต่ก็เป็นกระบวนการที่ได้รับความนิยมมาก และหลายบริษัทก็เริ่มที่จะหันมาใช้งานผ่าน Cloud มากขึ้น

สรุป Extract Transform Load

หลังจากที่เพื่อนๆได้รู้จักกับฝาแฝดในการย้ายข้อมูลอย่าง ELT และ ETL กันไปแล้ว ก็พอจะเดาได้ว่าถ้าเพื่อนๆมีข้อจำกัด และข้อมูลแบบไหนอยู่ในมือ จะต้องใช้กระบวนการแบบไหนเพื่อย้ายข้อมูลไปเก็บไว้ปลายทาง

สุดท้ายนี้ถ้าใครยังสงสัยว่า ETL ไปอ่านเพิ่มเติมในบทความ ETL คืออะไร? มารู้จักกับภารกิจสำคัญของ Data Engineer ของเราได้ด้านล่างนี้เลย

ถ้าเพื่อนๆคิดว่าบทความนี้มีประโยชน์ อยากฝากให้ช่วยแชร์ให้เพื่อน ๆ หน่อยนะคะ และถ้าอยากติดตามบทความดี ๆ ด้าน Data กันบน Facebook หรืออยากมาพูดคุย ติชมกัน เชิญได้ที่ Facebook Page: DataTH – Data Science ชิลชิล เลยนะค้าา

แล้วพบกันใหม่บทความหน้าค่ะ

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

บทความที่เกี่ยวข้อง