- Extract คือ กระบวนการอ่านข้อมูล ซึ่งถูกจัดให้มีความสำคัญ ซึ่งถูกจัดเก็บไว้ในหลากหลายรูปแบบ หรืออยู่ในหลายฐานข้อมูล
- Transform คือ กระบวนการแปลงข้อมูลที่อ่านออกมาให้อยู่ในรูปแบบที่ต้องการ โดยการเปลี่ยนแปลงนี้จะมีการใช้กฎ หรือเปรียบเทียบข้อมูลกับตารางอื่น หรือการรวมข้อมูลมากกว่า 1 คอลัมน์เข้าด้วยกัน เป็นต้น
- Load คือ กระบวนการเขียนข้อมูลไปยังฐานข้อมูลเป้าหมาย คลังข้อมูล หรือระบบอื่นตามต้องการ
"บทบาทที่สำคัญของ ETL คือ การนำข้อมูลจากแหล่งต่าง ๆ ให้สามารถทำงานผสานกันได้"
ETL ปะทะ ELT
แนวคิด ETL ถูกใช้กับคลังข้อมูล
(Data Warehousing) ส่วน Big Data มีลำดับกระบวนการที่แตกต่างไป
ใน Big Data ข้อมูลจะถูกเข้าถึง
และถูกส่งไปยังพื้นที่จัดเก็บข้อมูล เช่น Data Lake และเก็บอยู่ในรูปแบบเดิม
ข้อมูลจะถูกแปลงระหว่างถูกนำไปใช้ โดยนักวิทยาศาสตร์ได้สร้างกระบวนการของ ELT หรือ Extract, Load, Transform ขึ้น
ข้อดีที่สำคัญอันหนึ่งของ ELT คือ เวลาการเขียนข้อมูลที่สั้นกว่า (shorter
load time) เราสามารถใช้ประโยชน์จากความสามารถที่อยู่ในการประมวลผลของคลังข้อมูล
เราจึงลดเวลาที่ใช้ในการส่งข้อมูล ความสามารถนี้เป็นประโยชน์สุดๆ
เมื่อต้องประมวลผลข้อมูลที่มีขนาดใหญ่ สำหรับ BI และการวิเคราะห์
Big Data
อย่างไรก็ตามในทางปฏิบัติสิ่งต่าง ๆ
ไม่มีวิธีการใดที่ถูกต้องทั้งหมด ตัวอย่างเช่น ในหลาย Data Lakes มีการทำงานทั้งการผสาน (merged) และการแปลง (transform) โครงสร้างข้อมูล เพื่อให้มั่นใจว่านักวิทยาศาสตร์ด้านข้อมูล (Data Scientist) แต่ละคนไม่ต้องทำงานเดียวกันซ้ำ ๆ
หรือดำเนินการในลักษณะที่แตกต่างออกไป
เราจะรู้ได้อย่างไรว่าควรใช้ ETL หรือ ELT
ETL ไม่ใช่เทคโนโลยีใหม่
ภาคธุรกิจมีการใช้งานมาหลายปีแล้ว เพื่อดูภาพรวมของข้อมูล การใช้งาน ETL ทั่วไปประกอบด้วย
การใช้ ETL แบบดั้งเดิม (traditional uses)
เป็นการรวบรวม จัดเก็บ และรวมข้อมูลจากภายนอก
หรือย้ายข้อมูลจากระบบแบบเก่าไปยังระบบใหม่ด้วยรูปแบบที่แตกต่างกัน เครื่องมือ ETL แสดงข้อมูลจากแหล่งข้อมูลในรูปแบบที่นักธุรกิจเข้าใจ
ทำให้ง่ายต่อการวิเคราะห์ และรายงาน ธุรกิจที่ใช้ประโยชน์ของแอพพลิเคชั่นเหล่านี้ ได้แก่ ผู้ค้าปลีก และผู้ให้บริการด้านข้อมูลสุขภาพ เป็นต้น
ETL และ metadata
ETL ได้จัดการข้อมูลประวัติเชิงลึก
และรวบรวมมุมมองสำหรับธุรกิจโดยการเพิ่ม metadata เมื่อสถาปัตยกรรมข้อมูลมีความซับซ้อนมากขึ้น
สิ่งสำคัญคือ การติดตามว่ามีการใช้องค์ประกอบข้อมูลที่แตกต่างกัน
และเกี่ยวข้องกันอย่างไรภายในองค์กรเดียวกัน metadata ช่วยให้เข้าใจความเชื่อมโยงของข้อมูล
และผลกระทบต่อสินทรัพย์ข้อมูล (data asset) อื่น ๆ ในองค์กร
ETL และคุณภาพข้อมูล
ETL และ ELT ถูกใช้อย่างกว้างขวางในการ
cleansing ข้อมูล ทำโปรไฟล์ (profiling) และตรวจสอบ (auditing) เพื่อให้มั่นใจว่าข้อมูลมีความน่าเชื่อถือ
เครื่องมือ ETL สามารถทำงานร่วมกับเครื่องมือจัดการคุณภาพข้อมูล เช่น เครื่องมือที่ใช้สำหรับการทำโปรไฟล์ข้อมูล
(data profiling) การขจัดข้อมูลซ้ำซ้อน (deduplication) หรือการตรวจสอบความถูกต้อง (validation)
ETL และการเข้าถึงข้อมูลด้วยตนเอง
การจัดเตรียมข้อมูลด้วยตนเองเป็นส่วนงานที่เติบโตอย่างรวดเร็ว
ต้องใช้พลังการเข้าถึง การผสมผสาน และการแปลงข้อมูลให้อยู่ในรูปแบบที่ผู้ใช้ทางธุรกิจ
และผู้เชี่ยวชาญที่ไม่รู้เรื่องเทคนิคเข้าใจได้ กระบวนการย้ายข้อมูลสามารถนำมาใช้ซ้ำ
โดยไม่ต้องมีการแก้ไข ETL ไม่ต้องมีทักษะในการเขียน
code หรือ script ใด ๆ ช่วยให้ใช้เวลาในการเตรียมข้อมูลน้อยลง
งานที่ต้องใช้ความเชี่ยวชาญเป็นพิเศษได้รับการปรับปรุงประสิทธิภาพให้ดียิ่งขึ้น
ETL/ELT สำหรับ Big Data
ปัจจุบันความต้องการเรื่อง Big Data เพิ่มขึ้นมาก
ผู้ให้บริการ ETL ได้เพิ่ม transformation และ adapter ใหม่ๆ เพื่อรองรับความต้องการในการจัดการปริมาณข้อมูลขนาดใหญ่
และเชื่อมต่อกับแหล่งข้อมูลใหม่ๆ ไม่ว่าจะเป็นจากวีดีโอ, social
media, IoT, server log ,
ข้อมูล spatial, สตรีม เป็นต้น เครื่องมือ Data
integration ที่ทำงานกับ adapter เพื่อ extract
และ load ข้อมูลได้ประสิทธิภาพ
ETL for Hadoop
เครื่องมือ ETL ยังถูกพัฒนาให้ load และแปลง (transfer) ข้อมูลที่มีโครงสร้าง
และไม่มีโครงสร้างใน Hadoop อีกทั้งยังสามารถอ่าน
และเขียนไฟล์แบบขนาน (parallel) การรวมข้อมูล (merged data) ให้กลายเป็นเรื่องง่ายใน
transformation
ETL ยังสามารถทำงานข้ามกันระหว่างระบบทั้งการเข้าถึงข้อมูล
operation, แพลตฟอร์ม BI,
ศูนย์ข้อมูลการจัดการหลัก (Master Data Management : MDM) และคลาวน์
มันเกิดขึ้นได้ยังไง?
การสร้างสถาปัตยกรรม ETL คุณต้องทำงานร่วมกับแหล่งข้อมูล
และวางแผน ทดสอบอย่างระมัดระวังเพื่อให้แน่ใจว่าการ transform ข้อมูลนั้นถูกต้อง โดยมีหลักการพื้นฐาน 3 เรื่อง
ที่แสดงให้เห็นถึงวิวัฒนาการของ ETL คือ
การทำงาน ETL แบบ batch ดั้งเดิม
วิธีการนี้ต้องมีการเตรียม และตรวจสอบความถูกต้องของข้อมูลอย่างดี
ก่อนกระบวนการแปลงข้อมูล (transforming) ข้อมูลจะถูกถ่ายโอน
และประมวลผลแบบ batch จากฐานข้อมูลต้นทางไปยังคลังข้อมูล
ETL แบบดั้งเดิมยังใช้งานได้ แต่มันมีความซับซ้อนในการสร้าง และไม่รองรับกับความต้องการใหม่
ๆ การสร้าง ETL ให้กับองค์กรตั้งแต่ต้นเป็นเรื่องที่ยากลำบาก
จึงมีการนำ Stitch หรือ Blendo ที่เป็นเครื่องมือ
ETL มาใช้เป็นกระบวนการอัติโนมัติ
ETL กับกระบวนการสตรีมมิ่ง
กระบวนการข้อมูลสมัยใหม่มักจะรวมถึงข้อมูลเรียลไทม์ ในกรณีนี้คุณไม่สามารถทำ
extract และ transform ข้อมูลที่เป็น
bath ขนาดใหญ่ได้ ดังนั้นคุณต้องใช้ ETL แบบข้อมูลสตรีม ซึ่งมีเฟรมเวิร์ค เช่น Kafka หรือ Spark
ทำหน้าที่ดึงข้อมูลแบบเรียลไทม์จากแหล่งข้อมูล และจัดการทันที ก่อนโหลดไปยังระบบปลายทาง
เช่น Amazon Redshift เป็นต้น
การเกิดขึ้นของสถาปัตยกรรมไร้เซิร์ฟเวอร์ได้สร้างความเป็นไปได้ใหม่ ๆ
ให้กระบวนการ ETL ทำได้ง่ายขึ้น
การไม่มีโครงสร้างพื้นฐานที่เฉพาะเจาะจง ทำให้การจัดการทรัพยากรให้ ETL ทำงาน สามารถกำหนดให้ขยายขึ้นได้ตามความต้องการ เช่น การขยายทรัพยากรให้ Apache
Spark บริการใหม่ที่น่าสนใจ เช่น AWS Glue ที่มีความสามารถในการรวบรวม
ระบุรูปแบบ แนะนำ schema และ transformation ให้แก่ผู้ใช้แบบอัตโนมัติกับงานเกือบทั้งหมด
การทำ data pipeline แบบอัตโนมัติ โดยไม่มี ETL
ด้วยเทคโนโลยีคลังข้อมูลใหม่ที่อยู่บนคลาวน์
ทำให้การสร้างการจัดการคลังข้อมูลแบบ end-to-end เกิดขึ้นได้ อีกทั้งการทำงานบนสถาปัตยกรรมนี้
ในระบบหลักยังสามารถปรับปรุงตัวเองในการ extract และ transform
ข้อมูลให้วิเคราะห์ได้ตรงกับความต้องการด้วย machine
learning และ natural language processing (NLP) แบบอัตโนมัติ
องค์กรต้องการ ETL และ ELT ที่นำข้อมูลมารวม ดูแลความถูกต้อง
และตรวจสอบข้อมูลสำหรับคลังข้อมูล การทำรายงาน และการวิเคราะห์ เครื่องมือ ETL
และ ELT ทำงานร่วมกับเครื่องมือ data
integration อื่น และยังเกี่ยวข้องกับการจัดการข้อมูลอื่น ๆ เช่น
คุณภาพข้อมูล ข้อมูลธรรมาภิบาล ข้อมูลเสมือน และ metadata นอกจากนี้
ปัจจุบันยังมีการต่อยอดที่สำคัญเพื่อขยายมุมมองข้อมูล นำขั้นตอนการทำสตรีมมิ่งมาปรับใช้
หรือการทำคลังข้อมูลอัตโนมัติอย่างเต็มรูปแบบ ทำให้การสร้าง data pipeline ทำได้มีประสิทธิภาพมากขึ้น
Cr : Medium > Sciforce