บทช่วยสอนการทดสอบ Big Data: คืออะไร กลยุทธ์ วิธีทดสอบ Hadoop
การทดสอบข้อมูลขนาดใหญ่
การทดสอบข้อมูลขนาดใหญ่ เป็นกระบวนการทดสอบแอปพลิเคชัน Big Data เพื่อให้แน่ใจว่าฟังก์ชันทั้งหมดของแอปพลิเคชัน Big Data ทำงานได้ตามที่คาดหวัง เป้าหมายของการทดสอบ Big Data คือเพื่อให้แน่ใจว่าระบบ Big Data ทำงานได้อย่างราบรื่นและปราศจากข้อผิดพลาด ในขณะเดียวกันก็รักษาประสิทธิภาพและความปลอดภัยไว้ได้
Big Data คือชุดของชุดข้อมูลขนาดใหญ่ที่ไม่สามารถประมวลผลโดยใช้เทคนิคการคำนวณแบบดั้งเดิมได้ การทดสอบ ของชุดข้อมูลเหล่านี้เกี่ยวข้องกับเครื่องมือ เทคนิค และเฟรมเวิร์กต่างๆ ในการประมวลผล Big Data เกี่ยวข้องกับการสร้างข้อมูล การจัดเก็บ การเรียกค้น และการวิเคราะห์ที่มีความโดดเด่นทั้งในด้านปริมาณ ความหลากหลาย และความเร็ว คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Big Data, Hadoop และ MapReduce Good Farm Animal Welfare Awards
กลยุทธ์การทดสอบ Big Data คืออะไร?
การทดสอบแอปพลิเคชัน Big Data เป็นการตรวจสอบการประมวลผลข้อมูลมากกว่าการทดสอบคุณลักษณะเฉพาะของผลิตภัณฑ์ซอฟต์แวร์ เมื่อพูดถึงการทดสอบข้อมูลขนาดใหญ่ การทดสอบประสิทธิภาพและการทำงาน คือกุญแจ
ในกลยุทธ์การทดสอบข้อมูลขนาดใหญ่ วิศวกร QA จะตรวจสอบการประมวลผลข้อมูลหลายเทราไบต์ที่ประสบความสำเร็จโดยใช้คลัสเตอร์สินค้าโภคภัณฑ์และส่วนประกอบสนับสนุนอื่นๆ จำเป็นต้องมีทักษะการทดสอบในระดับสูง เนื่องจากการประมวลผลนั้นรวดเร็วมาก การประมวลผลสามารถแบ่งออกเป็นสามประเภท
นอกจากนี้ คุณภาพของข้อมูลยังเป็นปัจจัยสำคัญในการทดสอบ Hadoop อีกด้วย ก่อนการทดสอบแอปพลิเคชันจำเป็นต้องตรวจสอบคุณภาพของข้อมูลและควรพิจารณาเป็นส่วนหนึ่งของการทดสอบฐานข้อมูล มันเกี่ยวข้องกับการตรวจสอบคุณลักษณะต่างๆ เช่น ความสอดคล้อง ความแม่นยำ การทำซ้ำ ความสอดคล้อง ความถูกต้อง ความสมบูรณ์ของข้อมูล ฯลฯ ต่อไปในบทช่วยสอนการทดสอบ Hadoop นี้ เราจะได้เรียนรู้วิธีทดสอบแอปพลิเคชัน Hadoop
วิธีทดสอบแอปพลิเคชัน Hadoop
รูปภาพต่อไปนี้จะแสดงภาพรวมระดับสูงของขั้นตอนต่างๆ ในการทดสอบแอปพลิเคชัน Big Data
Big Data Testing หรือ Hadoop Testing สามารถแบ่งกว้างๆ ได้เป็น 3 ขั้นตอน
ขั้นตอนที่ 1: การตรวจสอบความถูกต้องของการจัดเตรียมข้อมูล
ขั้นตอนแรกในบทช่วยสอนการทดสอบ Big Data นี้เรียกว่าขั้นตอนก่อน Hadoop เกี่ยวข้องกับการตรวจสอบความถูกต้องของกระบวนการ
- ข้อมูลจากแหล่งต่างๆ เช่น อาร์ดีบีเอ็มเอส, เว็บบล็อก, โซเชียลมีเดีย ฯลฯ ควรได้รับการตรวจสอบเพื่อให้แน่ใจว่ามีการดึงข้อมูลที่ถูกต้องเข้าสู่ระบบ
- การเปรียบเทียบข้อมูลต้นฉบับกับข้อมูลที่ส่งเข้าสู่ระบบ Hadoop เพื่อให้แน่ใจว่าข้อมูลตรงกัน
- ตรวจสอบว่าข้อมูลที่ถูกต้องถูกแยกและโหลดลงในตำแหน่ง HDFS ที่ถูกต้อง
เครื่องมือที่ชอบ Talend, ดาต้าเมียร์, สามารถใช้สำหรับการตรวจสอบการจัดเตรียมข้อมูล
ขั้นตอนที่ 2: การตรวจสอบความถูกต้อง “MapReduce”
ขั้นตอนที่สองคือการตรวจสอบความถูกต้องของ "MapReduce" ในขั้นตอนนี้ ผู้ทดสอบ Big Data จะตรวจสอบการตรวจสอบตรรกะทางธุรกิจบนทุกโหนด จากนั้นตรวจสอบความถูกต้องหลังจากทำงานกับหลายโหนด เพื่อให้มั่นใจว่า
- กระบวนการลดแผนที่ทำงานได้อย่างถูกต้อง
- กฎการรวมหรือการแยกข้อมูลถูกนำมาใช้กับข้อมูล
- คู่ค่าคีย์จะถูกสร้างขึ้น
- การตรวจสอบข้อมูลหลังจากกระบวนการลดแผนที่
ขั้นตอนที่ 3: ขั้นตอนการตรวจสอบความถูกต้องของเอาต์พุต
ขั้นตอนสุดท้ายหรือขั้นตอนที่สามของการทดสอบ Hadoop คือกระบวนการตรวจสอบความถูกต้องของผลลัพธ์ ไฟล์ข้อมูลเอาต์พุตจะถูกสร้างขึ้นและพร้อมที่จะย้ายไปยัง EDW (คลังข้อมูลองค์กร) หรือระบบอื่นใดตามความต้องการ
กิจกรรมในระยะที่ 3 ได้แก่
- เพื่อตรวจสอบการใช้กฎการเปลี่ยนแปลงอย่างถูกต้อง
- เพื่อตรวจสอบความสมบูรณ์ของข้อมูลและการโหลดข้อมูลเข้าสู่ระบบเป้าหมายสำเร็จ
- เพื่อตรวจสอบว่าไม่มีข้อมูลเสียหายโดยการเปรียบเทียบข้อมูลเป้าหมายกับข้อมูลระบบไฟล์ HDFS
Archiการทดสอบเทค
Hadoop ประมวลผลข้อมูลปริมาณมากและใช้ทรัพยากรจำนวนมาก ดังนั้น การทดสอบสถาปัตยกรรมจึงมีความสำคัญอย่างยิ่งเพื่อให้แน่ใจว่าโครงการ Big Data ของคุณจะประสบความสำเร็จ ระบบที่ออกแบบมาไม่ดีหรือไม่เหมาะสมอาจส่งผลให้ประสิทธิภาพลดลง และระบบอาจไม่สามารถตอบสนองความต้องการได้ อย่างน้อยที่สุด การทดสอบประสิทธิภาพและความล้มเหลว การบริการควรทำในสภาพแวดล้อม Hadoop
การทดสอบประสิทธิภาพ รวมถึงการทดสอบเวลาที่งานเสร็จสมบูรณ์ การใช้หน่วยความจำ ปริมาณข้อมูล และตัวชี้วัดระบบที่คล้ายกัน ในขณะที่จุดประสงค์ของบริการทดสอบ Failover คือการตรวจสอบว่าการประมวลผลข้อมูลเกิดขึ้นได้อย่างราบรื่นในกรณีที่โหนดข้อมูลล้มเหลว
การทดสอบประสิทธิภาพ
การทดสอบประสิทธิภาพของ Big Data มีการดำเนินการหลักสองประการ
- การนำเข้าข้อมูลและตลอด: ในขั้นตอนนี้ ผู้ทดสอบ Big Data จะตรวจสอบว่าระบบที่รวดเร็วสามารถใช้ข้อมูลจากแหล่งข้อมูลต่างๆ ได้อย่างไร การทดสอบเกี่ยวข้องกับการระบุข้อความอื่นที่คิวสามารถประมวลผลได้ในกรอบเวลาที่กำหนด นอกจากนี้ยังรวมถึงความเร็วที่สามารถแทรกข้อมูลลงในที่เก็บข้อมูลพื้นฐาน เช่น อัตราการแทรกลงใน Mongo และ Cassandra ฐานข้อมูล.
แนวทางการทดสอบประสิทธิภาพ
การทดสอบประสิทธิภาพสำหรับแอปพลิเคชัน Big Data เกี่ยวข้องกับการทดสอบข้อมูลที่มีโครงสร้างและไม่มีโครงสร้างจำนวนมหาศาล และต้องใช้วิธีการทดสอบเฉพาะเพื่อทดสอบข้อมูลขนาดใหญ่ดังกล่าว
การทดสอบประสิทธิภาพจะดำเนินการตามลำดับนี้
- กระบวนการเริ่มต้นด้วยการตั้งค่าคลัสเตอร์ข้อมูลขนาดใหญ่ซึ่งจะต้องทดสอบประสิทธิภาพ
- ระบุและออกแบบปริมาณงานที่สอดคล้องกัน
- เตรียมไคลเอนต์แต่ละราย (สร้างสคริปต์แบบกำหนดเอง)
- ดำเนินการทดสอบและวิเคราะห์ผลลัพธ์ (หากไม่บรรลุวัตถุประสงค์ ให้ปรับแต่งส่วนประกอบและดำเนินการอีกครั้ง)
- การกำหนดค่าที่เหมาะสมที่สุด
พารามิเตอร์สำหรับการทดสอบประสิทธิภาพ
พารามิเตอร์ต่าง ๆ ที่ต้องตรวจสอบเพื่อทดสอบประสิทธิภาพ ได้แก่
- การจัดเก็บข้อมูล: วิธีจัดเก็บข้อมูลในโหนดต่างๆ
- บันทึกการคอมมิต: บันทึกการคอมมิตจะใหญ่แค่ไหน
- การทำงานพร้อมกัน: มีเธรดจำนวนเท่าใดที่สามารถดำเนินการเขียนและอ่านได้
- การแคช: ปรับการตั้งค่าแคช “แคชแถว” และ “คีย์แคช”
- การหมดเวลา: ค่าของการหมดเวลาการเชื่อมต่อ การหมดเวลาของการค้นหา ฯลฯ
- พารามิเตอร์ JVM: ขนาดฮีป, อัลกอริทึมการรวบรวม GC ฯลฯ
- แผนที่ลดประสิทธิภาพ: เรียงลำดับ ผสาน ฯลฯ
- คิวข้อความ: อัตราข้อความ ขนาด ฯลฯ
ทดสอบความต้องการสภาพแวดล้อม
สภาพแวดล้อมการทดสอบต้องขึ้นอยู่กับประเภทของแอปพลิเคชันที่คุณกำลังทดสอบ สำหรับการทดสอบซอฟต์แวร์ Big Data สภาพแวดล้อมการทดสอบควรครอบคลุม
- ควรมีพื้นที่เพียงพอสำหรับจัดเก็บและประมวลผลข้อมูลจำนวนมาก
- ควรมีคลัสเตอร์ที่มีโหนดและข้อมูลแบบกระจาย
- ควรมีการใช้งาน CPU และหน่วยความจำขั้นต่ำเพื่อรักษาประสิทธิภาพให้สูงเพื่อทดสอบประสิทธิภาพของ Big Data
การทดสอบข้อมูลขนาดใหญ่กับ การทดสอบฐานข้อมูลแบบดั้งเดิม
อสังหาริมทรัพย์ | การทดสอบฐานข้อมูลแบบดั้งเดิม | การทดสอบข้อมูลขนาดใหญ่ |
---|---|---|
ข้อมูล | ผู้ทดสอบทำงานกับข้อมูลที่มีโครงสร้าง | ผู้ทดสอบทำงานได้กับทั้งข้อมูลที่มีโครงสร้างและข้อมูลที่ไม่มีโครงสร้าง |
แนวทางการทดสอบ | วิธีการทดสอบมีการกำหนดไว้อย่างดีและผ่านการทดสอบตามเวลา | วิธีการทดสอบต้องใช้ความพยายามด้านการวิจัยและพัฒนาที่มุ่งเน้น |
กลยุทธ์การทดสอบ | ผู้ทดสอบมีตัวเลือกระหว่างกลยุทธ์ "การสุ่มตัวอย่าง" ที่ทำด้วยตนเอง หรือกลยุทธ์ "การตรวจสอบอย่างละเอียด" โดยเครื่องมืออัตโนมัติ | กลยุทธ์ “การสุ่มตัวอย่าง” ใน Big Data ถือเป็นความท้าทาย |
โครงสร้างพื้นฐาน | ไม่จำเป็นต้องมีสภาพแวดล้อมการทดสอบพิเศษเนื่องจากขนาดไฟล์มีจำกัด | ต้องมีสภาพแวดล้อมการทดสอบพิเศษเนื่องจากขนาดข้อมูลและไฟล์ขนาดใหญ่ (HDFS) |
เครื่องมือตรวจสอบความถูกต้อง | ผู้ทดสอบใช้ทั้งแบบอิง Excel แมโคร หรือเครื่องมืออัตโนมัติที่ใช้ UI | ไม่มีเครื่องมือที่กำหนดไว้ มีตั้งแต่เครื่องมือการเขียนโปรแกรมอย่าง MapReduce ไปจนถึง HIVEQL |
เครื่องมือทดสอบ | เครื่องมือทดสอบสามารถใช้งานได้โดยอาศัยความรู้การใช้งานขั้นพื้นฐานและการฝึกอบรมน้อยลง | จำเป็นต้องมีทักษะและการฝึกอบรมเฉพาะด้านในการใช้งานเครื่องมือทดสอบ นอกจากนี้ เครื่องมือต่างๆ ยังอยู่ในช่วงเริ่มต้น และเมื่อเวลาผ่านไป เครื่องมือเหล่านี้อาจมีฟีเจอร์ใหม่ๆ ออกมา |
เครื่องมือที่ใช้ใน Big Data Scenarios
ข้อมูลขนาดใหญ่ Cluster | เครื่องมือข้อมูลขนาดใหญ่ |
---|---|
NoSQL: | CouchDB,ฐานข้อมูล MongoDB, Cassandra, Redis, ZooKeeper, HBase |
แผนที่ลด: | Hadoop, Hive, Pig, Cascading, Oozie, Kafka, S4, MapR, Flume |
การจัดเก็บ: | S3, HDFS (ระบบไฟล์แบบกระจาย Hadoop) |
เซิร์ฟเวอร์: | ยืดหยุ่น Heroku, ยืดหยุ่น, Google App Engine, EC2 |
กระบวนการผลิต | อาร์ ยาฮู! ไปป์, เติร์กเครื่องกล, BigSheets, Datameer |
ความท้าทายในการทดสอบข้อมูลขนาดใหญ่
- อัตโนมัติ
การทดสอบระบบอัตโนมัติ สำหรับ Big Data ต้องการผู้ที่มีความเชี่ยวชาญด้านเทคนิค นอกจากนี้ เครื่องมืออัตโนมัติยังไม่พร้อมสำหรับจัดการกับปัญหาที่ไม่คาดคิดที่เกิดขึ้นระหว่างการทดสอบ
- Virtualization
มันเป็นหนึ่งในขั้นตอนสำคัญของการทดสอบ เวลาแฝงของเครื่องเสมือนสร้างปัญหาด้านเวลาในการทดสอบประสิทธิภาพข้อมูลขนาดใหญ่แบบเรียลไทม์ การจัดการรูปภาพใน Big Data ก็เป็นเรื่องยุ่งยากเช่นกัน
- ชุดข้อมูลขนาดใหญ่
- จำเป็นต้องตรวจสอบข้อมูลเพิ่มเติมและจำเป็นต้องดำเนินการให้เร็วขึ้น
- จำเป็นต้องทำให้ความพยายามในการทดสอบเป็นแบบอัตโนมัติ
- จำเป็นต้องทดสอบข้ามแพลตฟอร์มต่างๆ ได้
ความท้าทายในการทดสอบประสิทธิภาพ
- ชุดเทคโนโลยีที่หลากหลาย: แต่ละองค์ประกอบย่อยเป็นของเทคโนโลยีที่แตกต่างกันและต้องมีการทดสอบแยกกัน
- ไม่มีเครื่องมือเฉพาะ: ไม่มีเครื่องมือใดสามารถทำการทดสอบแบบ end-to-end ได้ ตัวอย่างเช่น, NoSQL อาจไม่เหมาะกับคิวข้อความ
- ทดสอบการเขียนสคริปต์: จำเป็นต้องมีการเขียนสคริปต์ระดับสูงเพื่อออกแบบสถานการณ์ทดสอบและกรณีทดสอบ
- สภาพแวดล้อมการทดสอบ: จำเป็นต้องมีสภาพแวดล้อมการทดสอบพิเศษเนื่องจากมีข้อมูลขนาดใหญ่
- โซลูชั่นการตรวจสอบ: มีโซลูชั่นจำกัดที่สามารถตรวจสอบสภาพแวดล้อมทั้งหมดได้
- โซลูชันการวินิจฉัย: จำเป็นต้องมีโซลูชันแบบกำหนดเองเพื่อพัฒนาเพื่อเจาะลึกบริเวณคอขวดของประสิทธิภาพ
สรุป
- ในขณะที่วิศวกรรมข้อมูลและการวิเคราะห์ข้อมูลก้าวหน้าไปอีกระดับ การทดสอบ Big Data จึงเป็นสิ่งที่หลีกเลี่ยงไม่ได้
- การประมวลผลข้อมูลขนาดใหญ่อาจเป็นแบบแบตช์ เรียลไทม์ หรือเชิงโต้ตอบ
- 3 ขั้นตอนของการทดสอบแอปพลิเคชัน Big Data ได้แก่ การตรวจสอบการจัดเตรียมข้อมูล การตรวจสอบ "MapReduce" และขั้นตอนการตรวจสอบความถูกต้องของเอาต์พุต
- Archiการทดสอบเทคเจอร์เป็นขั้นตอนสำคัญของการทดสอบข้อมูลขนาดใหญ่ เนื่องจากระบบที่ออกแบบไม่ดีอาจนำไปสู่ข้อผิดพลาดที่ไม่เคยเกิดขึ้นมาก่อนและทำให้ประสิทธิภาพลดลง
- การทดสอบประสิทธิภาพของ Big Data รวมถึงการตรวจสอบปริมาณข้อมูล การประมวลผลข้อมูล และประสิทธิภาพส่วนประกอบย่อย
- การทดสอบข้อมูลขนาดใหญ่แตกต่างอย่างมากจากการทดสอบข้อมูลแบบเดิมในแง่ของข้อมูล โครงสร้างพื้นฐาน และเครื่องมือตรวจสอบความถูกต้อง
- ความท้าทายในการทดสอบข้อมูลขนาดใหญ่ ได้แก่ การจำลองเสมือน การทดสอบอัตโนมัติ และการจัดการกับชุดข้อมูลขนาดใหญ่ การทดสอบประสิทธิภาพของแอปพลิเคชัน Big Data ก็เป็นปัญหาเช่นกัน