บทช่วยสอนการทดสอบ ETL
การทดสอบ ETL คืออะไร?
การทดสอบ ETL ดำเนินการเพื่อให้แน่ใจว่าข้อมูลที่โหลดจากต้นทางไปยังปลายทางหลังจากการเปลี่ยนแปลงทางธุรกิจมีความถูกต้อง นอกจากนี้ยังเกี่ยวข้องกับการตรวจสอบข้อมูลในขั้นตอนกลางต่างๆ ที่ใช้ระหว่างต้นทางและปลายทาง ETL ย่อมาจาก Extract-Transform-Load
การทดสอบคลังข้อมูล
การทดสอบคลังข้อมูล เป็นวิธีการทดสอบซึ่งข้อมูลภายในคลังข้อมูลได้รับการทดสอบความสมบูรณ์ ความน่าเชื่อถือ ความถูกต้อง และความสม่ำเสมอ เพื่อให้สอดคล้องกับกรอบข้อมูลของบริษัท วัตถุประสงค์หลักของการทดสอบคลังข้อมูลคือเพื่อให้แน่ใจว่าข้อมูลที่รวมอยู่ภายในคลังข้อมูลมีความน่าเชื่อถือเพียงพอสำหรับบริษัทในการตัดสินใจ
ETL คืออะไร
ETL ย่อมาจาก Extract-Transform-Load และเป็นกระบวนการโหลดข้อมูลจากระบบต้นทางไปยังคลังข้อมูล ข้อมูลจะถูกดึงมาจากฐานข้อมูล OLTP ซึ่งแปลงให้ตรงกับสคีมาคลังข้อมูล และโหลดลงในฐานข้อมูลคลังข้อมูล คลังข้อมูลหลายแห่งยังรวมข้อมูลจากระบบที่ไม่ใช่ OLTP เช่น ไฟล์ข้อความ ระบบเดิม และสเปรดชีต
มาดูกันว่ามันทำงานอย่างไร
ตัวอย่างเช่น มีร้านค้าปลีกซึ่งมีแผนกต่างๆ เช่น การขาย การตลาด โลจิสติกส์ เป็นต้น โดยแต่ละแผนกจะจัดการข้อมูลลูกค้าอย่างเป็นอิสระ และวิธีที่พวกเขาจัดเก็บข้อมูลนั้นแตกต่างกันมาก ฝ่ายขายจะจัดเก็บไว้ตามชื่อลูกค้า ในขณะที่ฝ่ายการตลาดจะจัดเก็บไว้ตามรหัสลูกค้า
หากตอนนี้พวกเขาต้องการตรวจสอบประวัติของลูกค้าและต้องการทราบว่าลูกค้าซื้อผลิตภัณฑ์ต่างๆ อะไรบ้างจากแคมเปญการตลาดที่แตกต่างกัน นั่นคงจะเป็นเรื่องน่าเบื่อมาก
วิธีแก้ไขคือการใช้ ข้อมูลคลังสินค้า เพื่อจัดเก็บข้อมูลจากแหล่งต่าง ๆ ไว้ในโครงสร้างที่เหมือนกันโดยใช้ ETL ETL สามารถแปลงชุดข้อมูลที่แตกต่างกันให้เป็นโครงสร้างแบบรวมได้Later ใช้เครื่องมือ BI เพื่อรับข้อมูลเชิงลึกและรายงานที่มีความหมายจากข้อมูลนี้
แผนภาพต่อไปนี้ในบทช่วยสอนการทดสอบ ETL นี้จะให้แผนที่เส้นทางของกระบวนการทดสอบ ETL และแนวคิดการทดสอบ ETL ต่างๆ:
- สารสกัด
- ดึงข้อมูลที่เกี่ยวข้อง
- แปลง
- แปลงข้อมูลเป็นรูปแบบ DW (คลังข้อมูล)
- คีย์การสร้าง – คีย์คือแอตทริบิวต์ข้อมูลตั้งแต่หนึ่งรายการขึ้นไปที่ระบุเอนทิตีโดยไม่ซ้ำกัน หลากหลาย ประเภทของกุญแจ ได้แก่คีย์หลัก คีย์สำรอง คีย์นอก คีย์ผสม คีย์ตัวแทน คลังข้อมูลเป็นเจ้าของคีย์เหล่านี้และไม่อนุญาตให้หน่วยงานอื่นมอบหมายคีย์เหล่านี้
- การล้างข้อมูล : หลังจากดึงข้อมูลแล้ว จะเข้าสู่ขั้นตอนถัดไปของการล้างข้อมูลและการจัดรูปแบบข้อมูล การทำความสะอาดจะช่วยละเว้นข้อมูลรวมถึงการระบุและแก้ไขข้อผิดพลาด ความสอดคล้องหมายถึงการแก้ไขข้อขัดแย้งระหว่างข้อมูลที่เข้ากันไม่ได้ เพื่อให้สามารถนำไปใช้ในคลังข้อมูลขององค์กรได้ นอกจากนี้ ระบบนี้ยังสร้างเมตาดาต้าที่ใช้ในการวินิจฉัยปัญหาระบบต้นทางและปรับปรุงคุณภาพข้อมูลอีกด้วย
- โหลด
- โหลดข้อมูลเข้า DW (คลังข้อมูล)
- สร้างข้อมูลรวม – การสร้างข้อมูลรวมคือการสรุปและจัดเก็บข้อมูลที่มีอยู่ใน ตารางข้อเท็จจริง เพื่อปรับปรุงประสิทธิภาพการสืบค้นของผู้ใช้ปลายทาง
กระบวนการทดสอบ ETL
เช่นเดียวกับกระบวนการทดสอบอื่นๆ ETL ก็ผ่านขั้นตอนต่างๆ เช่นกัน ขั้นตอนต่างๆ ของกระบวนการทดสอบ ETL มีดังนี้
การทดสอบ ETL ดำเนินการในห้าขั้นตอน
- การระบุแหล่งข้อมูลและข้อกำหนด
- ข้อมูลที่ได้มา
- ใช้ตรรกะทางธุรกิจและการสร้างแบบจำลองมิติ
- สร้างและเติมข้อมูล
- สร้างรายงาน
ประเภทของการทดสอบ ETL
ประเภทของการทดสอบ | กระบวนการทดสอบ |
---|---|
การทดสอบการตรวจสอบการผลิต | “การปรับสมดุลตาราง” หรือ “การกระทบยอดการผลิต” การทดสอบ ETL ประเภทนี้ดำเนินการกับข้อมูลในขณะที่ข้อมูลถูกย้ายไปยังระบบการใช้งานจริง เพื่อสนับสนุนการตัดสินใจทางธุรกิจของคุณ ข้อมูลในระบบการผลิตของคุณจะต้องอยู่ในลำดับที่ถูกต้อง สารสนเทศ ตัวเลือกการตรวจสอบความถูกต้องของข้อมูลมอบความสามารถในการทดสอบอัตโนมัติและการจัดการ ETL เพื่อให้แน่ใจว่าระบบการผลิตจะไม่ถูกบุกรุกโดยข้อมูล |
ที่มาที่ Target การทดสอบ (การทดสอบการตรวจสอบ) | การทดสอบประเภทดังกล่าวดำเนินการเพื่อตรวจสอบว่าค่าข้อมูลที่แปลงเป็นค่าข้อมูลที่คาดหวังหรือไม่ |
การใช้งาน Upgrades | การทดสอบ ETL ประเภทดังกล่าวสามารถสร้างขึ้นได้โดยอัตโนมัติ ซึ่งช่วยประหยัดเวลาในการพัฒนาการทดสอบได้อย่างมาก การทดสอบประเภทนี้จะตรวจสอบว่าข้อมูลที่ดึงมาจากแอปพลิเคชันหรือพื้นที่เก็บข้อมูลรุ่นเก่านั้นเหมือนกันทุกประการกับข้อมูลในพื้นที่เก็บข้อมูลหรือแอปพลิเคชันใหม่ |
การทดสอบข้อมูลเมตา | การทดสอบข้อมูลเมตาประกอบด้วยการทดสอบการตรวจสอบประเภทข้อมูล การตรวจสอบความยาวของข้อมูล และการตรวจสอบดัชนี/ข้อจำกัด |
การทดสอบความสมบูรณ์ของข้อมูล | เพื่อตรวจสอบว่าข้อมูลที่คาดหวังทั้งหมดถูกโหลดไปยังเป้าหมายจากแหล่งที่มา การทดสอบความสมบูรณ์ของข้อมูลจึงเสร็จสิ้น การทดสอบบางอย่างที่สามารถทำได้คือการเปรียบเทียบและตรวจสอบความถูกต้องของการนับ การรวม และข้อมูลจริงระหว่างแหล่งที่มาและเป้าหมายสำหรับคอลัมน์ที่มีการแปลงอย่างง่ายหรือไม่มีการแปลง |
การทดสอบความถูกต้องของข้อมูล | การทดสอบนี้ทำเพื่อให้แน่ใจว่าข้อมูลได้รับการโหลดและแปลงอย่างถูกต้องตามที่คาดไว้ |
การทดสอบการเปลี่ยนแปลงข้อมูล | การทดสอบการแปลงข้อมูลเสร็จสิ้นในหลายกรณี ไม่สามารถทำได้โดยการเขียนแหล่งข้อมูลเดียว SQL สอบถามและเปรียบเทียบผลลัพธ์กับเป้าหมาย อาจจำเป็นต้องเรียกใช้แบบสอบถาม SQL หลายรายการสำหรับแต่ละแถวเพื่อตรวจสอบกฎการเปลี่ยนแปลง |
การทดสอบคุณภาพข้อมูล | การทดสอบคุณภาพข้อมูลประกอบด้วยการทดสอบไวยากรณ์และการอ้างอิง เพื่อหลีกเลี่ยงข้อผิดพลาดใดๆ อันเนื่องมาจากวันที่หรือหมายเลขคำสั่งซื้อในระหว่างกระบวนการทางธุรกิจ การทดสอบคุณภาพข้อมูลจึงเสร็จสิ้น
การทดสอบไวยากรณ์: มันจะรายงานข้อมูลที่สกปรก ตามอักขระที่ไม่ถูกต้อง รูปแบบอักขระ ลำดับตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กที่ไม่ถูกต้อง ฯลฯ การทดสอบอ้างอิง: จะตรวจสอบข้อมูลตามแบบจำลองข้อมูล ตัวอย่างเช่น: รหัสลูกค้า การทดสอบคุณภาพข้อมูล ได้แก่ การตรวจสอบตัวเลข การตรวจสอบวันที่ การตรวจสอบความแม่นยำ การตรวจสอบข้อมูล การตรวจสอบค่าว่าง ฯลฯ |
การทดสอบ ETL แบบเพิ่มหน่วย | การทดสอบนี้ทำขึ้นเพื่อตรวจสอบความสมบูรณ์ของข้อมูลเก่าและข้อมูลใหม่ด้วยการเพิ่มข้อมูลใหม่ การทดสอบส่วนเพิ่มจะตรวจสอบว่าส่วนแทรกและการอัพเดตกำลังได้รับการประมวลผลตามที่คาดไว้ในระหว่างกระบวนการ ETL ส่วนเพิ่ม |
การทดสอบ GUI/การนำทาง | การทดสอบนี้ทำเพื่อตรวจสอบการนำทางหรือลักษณะ GUI ของรายงานส่วนหน้า |
วิธีสร้างกรณีทดสอบ ETL
การทดสอบ ETL เป็นแนวคิดที่สามารถนำไปใช้กับเครื่องมือและฐานข้อมูลต่างๆ ในอุตสาหกรรมการจัดการข้อมูลได้ วัตถุประสงค์ของการทดสอบ ETL คือเพื่อให้แน่ใจว่าข้อมูลที่โหลดจากต้นทางไปยังปลายทางหลังจากการเปลี่ยนแปลงทางธุรกิจมีความแม่นยำ นอกจากนี้ยังเกี่ยวข้องกับการตรวจสอบข้อมูลในขั้นตอนกลางต่างๆ ที่ใช้ระหว่างต้นทางและปลายทาง
ในขณะที่ทำการทดสอบ ETL เอกสารสองฉบับที่ผู้ทดสอบ ETL มักจะใช้คือ
- แผ่นการแมป ETL:แผ่นการแมป ETL ประกอบด้วยข้อมูลทั้งหมดของตารางต้นทางและปลายทาง รวมถึงแต่ละคอลัมน์และการค้นหาในตารางอ้างอิง ผู้ทดสอบ ETL จำเป็นต้องคุ้นเคยกับการสืบค้น SQL เนื่องจากการทดสอบ ETL อาจเกี่ยวข้องกับการเขียนการสืบค้นขนาดใหญ่ที่มีการรวมหลายรายการเพื่อตรวจสอบความถูกต้องของข้อมูลในทุกขั้นตอนของ ETL เอกสารการแมป ETL ให้ความช่วยเหลือที่สำคัญในขณะที่เขียนแบบสอบถามเพื่อการตรวจสอบข้อมูล
- DB Schema ของแหล่งที่มา Target: ควรเก็บไว้สะดวกเพื่อตรวจสอบรายละเอียดใดๆ ในแผ่นแผนที่
สถานการณ์การทดสอบ ETL และกรณีทดสอบ
สถานการณ์ทดสอบ | กรณีทดสอบ |
---|---|
การตรวจสอบเอกสารการทำแผนที่ | ตรวจสอบเอกสารการแมปว่ามีการระบุข้อมูล ETL ที่เกี่ยวข้องหรือไม่ บันทึกการเปลี่ยนแปลงควรเก็บไว้ในเอกสารการแมปทุกฉบับ |
การตรวจสอบ |
|
การตรวจสอบข้อจำกัด | ตรวจสอบให้แน่ใจว่ามีการกำหนดข้อจำกัดสำหรับตารางเฉพาะตามที่คาดไว้ |
ปัญหาความสอดคล้องของข้อมูล |
|
ประเด็นความสมบูรณ์ |
|
ปัญหาความถูกต้อง |
|
การแปลง | การแปลง |
คุณภาพของข้อมูล |
|
ตรวจสอบความถูกต้องเป็นโมฆะ | ตรวจสอบค่า Null โดยระบุ "Not Null" สำหรับคอลัมน์ใดคอลัมน์หนึ่ง |
ตรวจสอบซ้ำ |
|
การตรวจสอบวันที่ | ค่าวันที่กำลังใช้หลายพื้นที่ในการพัฒนา ETL สำหรับ
|
ตรวจสอบข้อมูลให้เสร็จสมบูรณ์ |
|
ความสะอาดของข้อมูล | ควรลบคอลัมน์ที่ไม่จำเป็นออกก่อนที่จะโหลดลงในพื้นที่จัดเตรียม |
ประเภทของข้อบกพร่อง ETL
ประเภทของแมลง | Descriptไอออน |
---|---|
ข้อบกพร่องของอินเทอร์เฟซผู้ใช้/ข้อบกพร่องด้านความงาม |
|
ข้อผิดพลาดที่เกี่ยวข้องกับการวิเคราะห์มูลค่าขอบเขต (BVA) |
|
ข้อผิดพลาดที่เกี่ยวข้องกับการแบ่งพาร์ติชันคลาส Equivalence (ECP) |
|
ข้อบกพร่องอินพุต/เอาท์พุต |
|
ข้อผิดพลาดในการคำนวณ |
|
โหลดข้อบกพร่องเงื่อนไข |
|
ข้อบกพร่องของสภาพการแข่งขัน |
|
ข้อบกพร่องในการควบคุมเวอร์ชัน |
|
ข้อบกพร่องของ H/W |
|
ช่วยเหลือ แหล่งที่มาของข้อบกพร่อง |
|
ความแตกต่างระหว่างการทดสอบฐานข้อมูลและการทดสอบ ETL
การทดสอบ ETL | การทดสอบฐานข้อมูล |
---|---|
ตรวจสอบว่าข้อมูลถูกย้ายตามที่คาดไว้หรือไม่ | เป้าหมายหลักคือการตรวจสอบว่าข้อมูลเป็นไปตามกฎ/มาตรฐานที่กำหนดไว้ในแบบจำลองข้อมูลหรือไม่ |
ตรวจสอบว่าการนับในแหล่งที่มาและเป้าหมายตรงกันหรือไม่
ตรวจสอบว่าข้อมูลที่แปลงเป็นไปตามที่คาดไว้หรือไม่ |
ตรวจสอบว่าไม่มีบันทึกเด็กกำพร้าและรักษาความสัมพันธ์คีย์หลักต่างประเทศไว้ |
ตรวจสอบว่าความสัมพันธ์คีย์หลักต่างประเทศถูกรักษาไว้ในช่วง ETL | ตรวจสอบว่าไม่มีตารางที่ซ้ำซ้อนและฐานข้อมูลได้รับการปรับให้เป็นมาตรฐานอย่างเหมาะสมที่สุด |
ตรวจสอบความซ้ำซ้อนในข้อมูลที่โหลด | ตรวจสอบว่าข้อมูลหายไปในคอลัมน์ตามที่จำเป็นหรือไม่ |
ความรับผิดชอบของผู้ทดสอบ ETL
ความรับผิดชอบหลักของผู้ทดสอบ ETL แบ่งออกเป็นสามประเภท
- ตารางเวที/SFS หรือ MFS
- ใช้ตรรกะการเปลี่ยนแปลงทางธุรกิจ
- Target กำลังโหลดตารางจากไฟล์สเตจหรือตารางหลังจากใช้การแปลง
ความรับผิดชอบบางประการของผู้ทดสอบ ETL คือ
- ทดสอบซอฟต์แวร์ ETL
- ทดสอบส่วนประกอบของคลังข้อมูล ETL
- ดำเนินการทดสอบที่ขับเคลื่อนด้วยข้อมูลแบ็กเอนด์
- สร้าง ออกแบบ และดำเนินการ กรณีทดสอบแผนการทดสอบ และชุดทดสอบ
- ระบุปัญหาและให้แนวทางแก้ไขปัญหาที่อาจเกิดขึ้น
- อนุมัติข้อกำหนดและข้อกำหนดการออกแบบ
- การถ่ายโอนข้อมูลและทดสอบไฟล์แฟลต
- การเขียน SQL Queries3 สำหรับสถานการณ์ต่างๆ เช่น การทดสอบการนับ
การทดสอบประสิทธิภาพใน ETL
การทดสอบประสิทธิภาพใน ETL เป็นเทคนิคการทดสอบเพื่อให้แน่ใจว่าระบบ ETL สามารถรองรับโหลดของผู้ใช้และธุรกรรมหลายรายการได้ เป้าหมายหลักของ ETL การทดสอบประสิทธิภาพ คือการเพิ่มประสิทธิภาพและปรับปรุงประสิทธิภาพเซสชันโดยการระบุและขจัดปัญหาคอขวดของประสิทธิภาพ ฐานข้อมูลต้นทางและเป้าหมาย การแมป เซสชัน และระบบอาจมีปัญหาคอขวดด้านประสิทธิภาพ
หนึ่งในเครื่องมือที่ดีที่สุดที่ใช้สำหรับการทดสอบ/ปรับแต่งประสิทธิภาพคือ Informatica
ระบบอัตโนมัติของการทดสอบ ETL
วิธีการทั่วไปของการทดสอบ ETL คือการใช้สคริปต์ SQL หรือทำการ "ตรวจดูข้อมูล" ของข้อมูล วิธีการทดสอบ ETL เหล่านี้ใช้เวลานาน เกิดข้อผิดพลาดได้ง่าย และไม่ค่อยให้ข้อมูลที่ครบถ้วนสมบูรณ์ ครอบคลุมการทดสอบ- เพื่อเร่ง ปรับปรุงความครอบคลุม ลดต้นทุน ปรับปรุง ข้อบกพร่อง ปันส่วนการตรวจสอบการทดสอบ ETL ในสภาพแวดล้อมการผลิตและการพัฒนาระบบอัตโนมัติเป็นสิ่งจำเป็นของชั่วโมง เครื่องมือหนึ่งดังกล่าวคือ Informatica
แนวทางปฏิบัติที่ดีที่สุดสำหรับการทดสอบ ETL
- ตรวจสอบให้แน่ใจว่าข้อมูลได้รับการแปลงอย่างถูกต้อง
- ข้อมูลที่คาดการณ์ไว้ควรถูกโหลดลงในคลังข้อมูลโดยไม่มีการสูญหายของข้อมูลและการตัดทอนข้อมูล
- ตรวจสอบให้แน่ใจว่าแอปพลิเคชัน ETL ปฏิเสธอย่างเหมาะสมและแทนที่ด้วยค่าเริ่มต้นและรายงานข้อมูลที่ไม่ถูกต้อง
- ต้องแน่ใจว่าข้อมูลที่โหลดในคลังข้อมูลภายในกรอบเวลาที่กำหนดและคาดหวังเพื่อยืนยันความสามารถในการขยายขนาดและประสิทธิภาพ
- วิธีการทั้งหมดควรมีการทดสอบหน่วยที่เหมาะสมโดยไม่คำนึงถึงการมองเห็น
- เพื่อวัดประสิทธิผล การทดสอบทุกหน่วยควรใช้เทคนิคความครอบคลุมที่เหมาะสม
- พยายามยืนยันหนึ่งครั้งต่อกรณีทดสอบ
- สร้างบัญชีตัวแทน การทดสอบหน่วย ข้อยกเว้นที่เป็นเป้าหมาย
เช็คเอาท์ - คำถามและคำตอบสัมภาษณ์การทดสอบ ETL