Monday, April 13, 2020

ETL ปะทะ ELT

ETL คือ อักษรที่ย่อมาจากคำว่า Extract, Transform, Load ซึ่งทำหน้าที่ 3 อย่าง เกี่ยวข้องกับข้อมูล



  • 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 เป็นต้น

Serverless ETL
การเกิดขึ้นของสถาปัตยกรรมไร้เซิร์ฟเวอร์ได้สร้างความเป็นไปได้ใหม่ ๆ ให้กระบวนการ 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

7 ประโยชน์สำคัญ การใช้ data lake ให้เหมาะ

ในหลายธุรกิจปฏิเสธไม่ได้ว่าข้อมูลมีความสำคัญ แต่ข้อมูลดังกล่าวอาจมีจำนวนมหาศาลหากไม่สามารถจัดการได้อย่างถูกต้อง ปัญหาคือ การจัดการและแยกข้อม...