กระบวนการ ETL (แยก แปลง และโหลด) ในคลังข้อมูล
ETL คืออะไร
ETL เป็นกระบวนการที่ดึงข้อมูลจากระบบต้นทางต่างๆ จากนั้นแปลงข้อมูล (เช่น การประยุกต์การคำนวณ การต่อข้อมูล เป็นต้น) และสุดท้ายก็โหลดข้อมูลเข้าสู่ระบบคลังข้อมูล ETL แบบเต็มคือ แยก แปลง และโหลด
การสร้างคลังข้อมูลนั้นเป็นเพียงการดึงข้อมูลจากหลายแหล่งและโหลดลงในฐานข้อมูลของคลังข้อมูล ซึ่งไม่เป็นความจริงและต้องใช้กระบวนการ ETL ที่ซับซ้อน กระบวนการ ETL ต้องใช้ข้อมูลอินพุตจากผู้มีส่วนได้ส่วนเสียต่างๆ รวมถึงนักพัฒนา นักวิเคราะห์ นักทดสอบ ผู้บริหารระดับสูง และยังมีความท้าทายทางเทคนิคอีกด้วย
เพื่อรักษาคุณค่าไว้เป็นเครื่องมือสำหรับผู้มีอำนาจตัดสินใจ ระบบคลังข้อมูลจำเป็นต้องเปลี่ยนแปลงตามการเปลี่ยนแปลงทางธุรกิจ ETL เป็นกิจกรรมที่เกิดซ้ำ (รายวัน รายสัปดาห์ รายเดือน) ของระบบคลังข้อมูล และจำเป็นต้องมีความคล่องตัว เป็นอัตโนมัติ และมีการจัดทำเอกสารไว้อย่างดี
ทำไมคุณถึงต้องการ ETL
มีเหตุผลหลายประการในการนำ ETL มาใช้ในองค์กร:
- ช่วยให้บริษัทต่างๆ วิเคราะห์ข้อมูลทางธุรกิจของตนเพื่อการตัดสินใจทางธุรกิจที่สำคัญได้
- ฐานข้อมูลธุรกรรมไม่สามารถตอบคำถามทางธุรกิจที่ซับซ้อนได้ ซึ่งสามารถตอบได้ด้วยตัวอย่าง ETL
- คลังข้อมูลจัดเตรียมพื้นที่เก็บข้อมูลทั่วไป
- ETL จัดให้มีวิธีการย้ายข้อมูลจากแหล่งต่างๆ ไปยังคลังข้อมูล
- เมื่อแหล่งข้อมูลเปลี่ยนแปลง Data Warehouse จะอัปเดตโดยอัตโนมัติ
- ระบบ ETL ที่ได้รับการออกแบบอย่างดีและจัดทำเป็นเอกสารนั้นแทบจะมีความสำคัญต่อความสำเร็จของโครงการคลังข้อมูล
- อนุญาตให้ตรวจสอบกฎการแปลงข้อมูล การรวม และการคำนวณ
- กระบวนการ ETL ช่วยให้สามารถเปรียบเทียบข้อมูลตัวอย่างระหว่างต้นทางและระบบเป้าหมายได้
- กระบวนการ ETL สามารถดำเนินการเปลี่ยนแปลงที่ซับซ้อนและต้องใช้พื้นที่เพิ่มเติมในการจัดเก็บข้อมูล
- ETL ช่วยในการย้ายข้อมูลไปยังคลังข้อมูล แปลงเป็นรูปแบบและประเภทต่างๆ เพื่อให้เป็นไปตามระบบที่สอดคล้องกัน
- ETL เป็นกระบวนการที่กำหนดไว้ล่วงหน้าสำหรับการเข้าถึงและจัดการข้อมูลต้นฉบับลงในฐานข้อมูลเป้าหมาย
- ETL ในคลังข้อมูลนำเสนอบริบททางประวัติศาสตร์ที่ลึกซึ้งสำหรับธุรกิจ
- ช่วยปรับปรุงประสิทธิภาพการผลิตเนื่องจากสามารถเข้ารหัสและนำกลับมาใช้ใหม่ได้โดยไม่ต้องใช้ทักษะทางเทคนิค
กระบวนการ ETL ในคลังข้อมูล
ETL เป็นกระบวนการ 3 ขั้นตอน
ขั้นตอนที่ 1) การสกัด
ในขั้นตอนนี้ของสถาปัตยกรรม ETL ข้อมูลจะถูกแยกออกมาจากระบบต้นทางไปยังพื้นที่จัดเตรียม หากมีการแปลงใดๆ เกิดขึ้นในพื้นที่จัดเตรียม เพื่อไม่ให้ประสิทธิภาพการทำงานของระบบต้นทางลดลง นอกจากนี้ หากข้อมูลที่เสียหายถูกคัดลอกโดยตรงจากแหล่งที่มาไปยังฐานข้อมูลคลังข้อมูล การย้อนกลับจะเป็นเรื่องที่ท้าทาย พื้นที่จัดเตรียมให้โอกาสในการตรวจสอบข้อมูลที่แยกออกมา ก่อนที่จะย้ายไปยังคลังข้อมูล
คลังข้อมูลจำเป็นต้องบูรณาการระบบที่แตกต่างกัน
DBMS, ฮาร์ดแวร์, Operaระบบ Ting และโปรโตคอลการสื่อสาร แหล่งที่มาอาจรวมถึงแอปพลิเคชันรุ่นเก่า เช่น เมนเฟรม แอปพลิเคชันที่ปรับแต่งเอง อุปกรณ์ติดต่อ เช่น ATM สวิตช์การโทร ไฟล์ข้อความ สเปรดชีต ERP ข้อมูลจากผู้ขาย คู่ค้า และอื่นๆ อีกมากมาย
ดังนั้นจึงจำเป็นต้องมีการแมปข้อมูลแบบลอจิคัลก่อนที่ข้อมูลจะถูกแยกและโหลดทางกายภาพ แผนผังข้อมูลนี้อธิบายความสัมพันธ์ระหว่างแหล่งที่มาและข้อมูลเป้าหมาย
สามวิธีการสกัดข้อมูล:
- การสกัดแบบเต็มรูปแบบ
- การแยกบางส่วน - โดยไม่มีการแจ้งเตือนการอัพเดต
- การแยกบางส่วน- พร้อมการแจ้งเตือนการอัปเดต
โดยไม่คำนึงถึงวิธีการที่ใช้ การแตกไฟล์ไม่ควรส่งผลต่อประสิทธิภาพและเวลาตอบสนองของระบบต้นทาง ระบบต้นทางเหล่านี้เป็นฐานข้อมูลการใช้งานจริง การชะลอตัวหรือการล็อคอาจส่งผลกระทบต่อผลกำไรของบริษัท
การตรวจสอบความถูกต้องบางอย่างเสร็จสิ้นระหว่างการแตกไฟล์:
- กระทบยอดบันทึกกับแหล่งข้อมูล
- ตรวจสอบให้แน่ใจว่าไม่มีการโหลดข้อมูลที่ไม่พึงประสงค์หรือสแปม
- การตรวจสอบชนิดข้อมูล
- ลบข้อมูลที่ซ้ำกัน/กระจัดกระจายทุกประเภท
- ตรวจสอบว่ากุญแจทั้งหมดเข้าที่หรือไม่
ขั้นตอนที่ 2) การแปลงร่าง
ข้อมูลที่ดึงมาจากเซิร์ฟเวอร์ต้นทางเป็นข้อมูลดิบและไม่สามารถใช้ในรูปแบบดั้งเดิมได้ ดังนั้นจึงจำเป็นต้องทำความสะอาด จัดทำแผนที่ และเปลี่ยนแปลง นี่เป็นขั้นตอนสำคัญที่กระบวนการ ETL เพิ่มมูลค่าและเปลี่ยนแปลงข้อมูลเพื่อให้สามารถสร้างรายงาน BI ที่ชาญฉลาดได้
เป็นแนวคิด ETL ที่สำคัญอย่างหนึ่ง โดยคุณจะใช้ชุดฟังก์ชันกับข้อมูลที่แยกออกมา ข้อมูลที่ไม่ต้องการการแปลงใดๆ เรียกว่า ย้ายโดยตรง or ผ่านข้อมูล.
ในขั้นตอนการแปลง คุณสามารถดำเนินการที่กำหนดเองกับข้อมูลได้ ตัวอย่างเช่น หากผู้ใช้ต้องการผลรวมรายได้จากการขายซึ่งไม่มีอยู่ในฐานข้อมูล หรือหากชื่อและนามสกุลในตารางอยู่ในคอลัมน์ที่แตกต่างกัน คุณสามารถเชื่อมโยงข้อมูลเหล่านี้เข้าด้วยกันก่อนโหลดได้
ต่อไปนี้เป็นข้อมูล Integrity ปัญหา:
- การสะกดคำที่แตกต่างกันของบุคคลคนเดียวกัน เช่น จอน จอห์น ฯลฯ
- มีหลายวิธีในการแสดงชื่อบริษัท เช่น Google, Google Inc.
- การใช้ชื่อที่แตกต่างกัน เช่น คลีฟแลนด์, คลีฟแลนด์
- อาจมีกรณีที่หมายเลขบัญชีที่แตกต่างกันจะถูกสร้างขึ้นโดยแอปพลิเคชันต่างๆ สำหรับลูกค้ารายเดียวกัน
- ในไฟล์ข้อมูลที่จำเป็นบางส่วนยังคงว่างเปล่า
- สินค้าที่ไม่ถูกต้องที่รวบรวมที่ POS เนื่องจากการป้อนข้อมูลด้วยตนเองอาจทำให้เกิดข้อผิดพลาดได้
การตรวจสอบความถูกต้องเสร็จสิ้นในระหว่างขั้นตอนนี้
- การกรอง – เลือกเฉพาะบางคอลัมน์ที่จะโหลด
- การใช้กฎและตารางการค้นหาสำหรับการกำหนดมาตรฐานข้อมูล
- การแปลงชุดอักขระและการจัดการการเข้ารหัส
- การแปลงหน่วยวัด เช่น การแปลงวันที่ เวลา การแปลงสกุลเงิน การแปลงตัวเลข ฯลฯ
- การตรวจสอบความถูกต้องของเกณฑ์ข้อมูล เช่น อายุต้องไม่เกินสองหลัก
- การตรวจสอบการไหลของข้อมูลจากพื้นที่จัดเตรียมไปยังตารางระดับกลาง
- ช่องที่ต้องกรอกไม่ควรเว้นว่าง
- การทำความสะอาด (เช่น การแมป NULL กับ 0 หรือเพศชายกับ "M" และเพศหญิงกับ "F" เป็นต้น)
- แบ่งคอลัมน์ออกเป็นหลายคอลัมน์และรวมหลายคอลัมน์ให้เป็นคอลัมน์เดียว
- การย้ายแถวและคอลัมน์
- ใช้การค้นหาเพื่อรวมข้อมูล
- การใช้การตรวจสอบข้อมูลที่ซับซ้อน (เช่น หากสองคอลัมน์แรกในแถวว่างเปล่า ระบบจะปฏิเสธแถวจากการประมวลผลโดยอัตโนมัติ)
ขั้นตอนที่ 3) กำลังโหลด
การโหลดข้อมูลลงในฐานข้อมูลคลังข้อมูลเป้าหมายเป็นขั้นตอนสุดท้ายของกระบวนการ ETL ในคลังข้อมูลทั่วไป จำเป็นต้องโหลดข้อมูลปริมาณมากในช่วงเวลาอันสั้น (คืน) ดังนั้นกระบวนการโหลดควรได้รับการปรับให้เหมาะสมเพื่อประสิทธิภาพ
ในกรณีที่โหลดล้มเหลว ควรกำหนดค่ากลไกการกู้คืนให้รีสตาร์ทจากจุดที่ล้มเหลวโดยไม่สูญเสียความสมบูรณ์ของข้อมูล ผู้ดูแลระบบคลังข้อมูลจำเป็นต้องตรวจสอบ ดำเนินการต่อ ยกเลิกโหลดตามประสิทธิภาพของเซิร์ฟเวอร์ที่มีอยู่
ประเภทของการโหลด:
- โหลดเริ่มต้น — เติมตารางคลังข้อมูลทั้งหมด
- โหลดที่เพิ่มขึ้น — ใช้การเปลี่ยนแปลงอย่างต่อเนื่องตามที่จำเป็นเป็นระยะ
- รีเฟรชเต็ม —ลบเนื้อหาของตารางตั้งแต่หนึ่งตารางขึ้นไปและโหลดข้อมูลใหม่อีกครั้ง
โหลดการตรวจสอบ
- ตรวจสอบให้แน่ใจว่าข้อมูลฟิลด์คีย์ไม่สูญหายหรือเป็นโมฆะ
- ทดสอบมุมมองการสร้างแบบจำลองตามตารางเป้าหมาย
- ตรวจสอบว่าค่ารวมและการวัดที่คำนวณได้
- ตรวจสอบข้อมูลในตารางมิติและตารางประวัติ
- ตรวจสอบรายงาน BI ในตารางข้อเท็จจริงและมิติที่โหลด
เครื่องมือ ETL
มีมากมาย เครื่องมือ ETL มีจำหน่ายในท้องตลาด นี่คือบางส่วนที่โดดเด่นที่สุด:
1. มาร์คลอจิก:
MarkLogic เป็นโซลูชันคลังข้อมูลที่ทำให้การรวมข้อมูลง่ายขึ้นและเร็วขึ้นโดยใช้ฟีเจอร์ระดับองค์กรมากมาย สามารถสืบค้นข้อมูลประเภทต่างๆ เช่น เอกสาร ความสัมพันธ์ และข้อมูลเมตา
https://www.marklogic.com/product/getting-started/
2. Oracle:
Oracle เป็นฐานข้อมูลชั้นนำของอุตสาหกรรม โดยมีโซลูชันคลังข้อมูลให้เลือกใช้มากมายทั้งแบบภายในองค์กรและบนคลาวด์ ช่วยเพิ่มประสิทธิภาพในการดำเนินงานเพื่อเพิ่มประสิทธิภาพประสบการณ์ของลูกค้า
https://www.oracle.com/index.html
3. Amazon สีแดงShift:
Amazon Redshift คือเครื่องมือ Datawarehouse ซึ่งเป็นเครื่องมือที่เรียบง่ายและคุ้มต้นทุนสำหรับวิเคราะห์ข้อมูลทุกประเภทโดยใช้มาตรฐาน SQL และเครื่องมือ BI ที่มีอยู่ นอกจากนี้ยังช่วยให้สามารถรันแบบสอบถามที่ซับซ้อนกับข้อมูลที่มีโครงสร้างเป็นเพตาไบต์ได้อีกด้วย
https://aws.amazon.com/redshift/?nc2=h_m1
นี่คือรายการที่มีประโยชน์ทั้งหมด เครื่องมือคลังข้อมูล
แนวทางปฏิบัติที่ดีที่สุด กระบวนการ ETL
ต่อไปนี้เป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับขั้นตอนกระบวนการ ETL:
อย่าพยายามล้างข้อมูลทั้งหมด:
ทุกองค์กรต้องการให้ข้อมูลทั้งหมดสะอาด แต่ส่วนใหญ่ไม่พร้อมที่จะจ่ายเงินเพื่อรอหรือไม่พร้อมที่จะรอ ในการทำความสะอาดทั้งหมดอาจใช้เวลานานเกินไป ดังนั้นจึงไม่ควรพยายามล้างข้อมูลทั้งหมด
ไม่เคยทำความสะอาดสิ่งใดๆ:
วางแผนที่จะทำความสะอาดบางสิ่งบางอย่างอยู่เสมอ เพราะเหตุผลที่ใหญ่ที่สุดในการสร้างคลังข้อมูลคือการเสนอข้อมูลที่สะอาดและเชื่อถือได้มากขึ้น
กำหนดค่าใช้จ่ายในการล้างข้อมูล:
ก่อนที่จะล้างข้อมูลสกปรกทั้งหมด สิ่งสำคัญคือคุณต้องกำหนดค่าใช้จ่ายในการล้างข้อมูลสำหรับองค์ประกอบข้อมูลสกปรกทุกรายการ
เพื่อเพิ่มความเร็วในการประมวลผลแบบสอบถาม มีมุมมองและดัชนีเสริม:
เพื่อลดต้นทุนการจัดเก็บ ให้จัดเก็บข้อมูลสรุปไว้ในเทปดิสก์ นอกจากนี้ จำเป็นต้องแลกเปลี่ยนระหว่างปริมาณข้อมูลที่ต้องจัดเก็บและการใช้งานโดยละเอียด แลกเปลี่ยนที่ระดับความละเอียดของข้อมูลเพื่อลดต้นทุนการจัดเก็บ
สรุป
- ETL ย่อมาจาก Extract, Transform และ Load
- ETL จัดให้มีวิธีการย้ายข้อมูลจากแหล่งต่างๆ ไปยัง คลังข้อมูล.
- ในการแตกข้อมูลในขั้นตอนแรก ข้อมูลจะถูกแยกจากระบบต้นทางไปยังพื้นที่จัดเตรียม
- ในขั้นตอนการแปลง ข้อมูลที่แยกจากแหล่งที่มาจะถูกล้างและแปลง
- การโหลดข้อมูลลงในคลังข้อมูลเป้าหมายเป็นขั้นตอนสุดท้ายของกระบวนการ ETL