บริษัทตรวจสอบภายใน

เรื่อง เทคนิคการเขียนโปรแกรม Map/Reduce สำหรับการประมวลผลข้อมูลขนาดใหญ่ (ตอนที่ 1)

ในช่วงหลายปีที่ผ่านมา Big Data หรือข้อมูลขนาดใหญ่คงจะเป็นคำที่ได้ยินกันบ่อย ๆ สำหรับคนในวงการ IT และในปัจจุบัน Big Data สามารถถูกนิยามด้วยคำว่า 3V คือ Volume, Variety และ Velocity


• Volume หมายถึง มีจำนวนข้อมูลมหาศาลเกินกว่าระบบฐานข้อมูลแบบเดิม ๆ จะสามารถจัดการได้


• Velocity หมายถึง อัตราการเพิ่มขึ้นของข้อมูลที่เพิ่มขึ้นอย่างรวดเร็ว เป็นสาเหตุทำให้การประมวลผลเป็นไปได้อย่างลำบาก เช่น ข้อมูลจาก Social Media ข้อมูลการซื้อขาย ข้อมูล Transaction การเงินหรือการใช้โทรศัพท์ หรือข้อมูลจาก Sensor


• Variety หมายถึง ข้อมูลมีหลากหลายรูปแบบทั้งที่มีโครงสร้างและไม่มีโครงสร้าง ซึ่งอาจจะอยู่ในรูปของ RDBMS, text, XML, JSON หรือ Image


การตื่นตัวของ Big data ทำให้เกิดการพัฒนาวิธีการหรือเทคโนโลยีใหม่ ๆ เพื่อนำมาใช้จัดการกับข้อมูลจำนวนมากเหล่านี้ ซึ่งหนึ่งในวิธีการเหล่านั้นคือการทำ Map/Reduce Framework ที่เป็นวิธีการเขียนโปรแกรมแบบหนึ่งที่ใช้ในการแก้ปัญหาการประมวลข้อมูลขนาดใหญ่ ตัวอย่างในปัจจุบันวิธีการทำ Map/Reduce ถูกนำไปใช้ในองค์กรและผู้ให้บริการเว็บไซต์ เช่น Facebook และ Twitter และยังถูกนำไปใช้ในการประมวลผลในงานด้าน ๆ อื่น เช่น ในการจำแนกประเภทข้อมูลที่มีลักษณะเป็นข้อความจำนวนมาก ๆ [1] นำไปใช้แก้ไขปัญหาขนาดของฐานข้อมูลในปัจจุบันที่มีอัตราการเติบโตเพิ่มขึ้น [2, 3] และนำไปประยุกต์ใช้ร่วมกับเทคนิคอื่น ๆ เช่น การทำ Map/Reduce ที่นำมาใช้ร่วมกับการทำโครงข่ายประสาทเทียบ (Neural Network) ในระบบการเรียกค้นคืนส่วนข้อมูลภาพ (Content Based Image Retrieval) [4]


โดยปกติทั่วไปการกำหนดการทำงานภายใน Map/Reduce Framework เกิดจากความต้องการของผู้ใช้หรือผู้เขียนโปรแกรมกำหนดการทำงานภายในฟังก์ชัน Map และฟังก์ชัน Reduce ประมวลผลบนข้อมูลตามที่ต้องการ ซึ่งการเขียนโปรแกรมลักษณะนี้ต้องเกิดจากประสบการณ์การศึกษาเทคนิควิธีการต่าง ๆ ที่ใช้กำหนดการทำงานภายในฟังก์ชัน Map/Reduce


ตารางที่ 1 สรุป High-Optimized Techniques สำหรับการทำ Map/Reduce

Programing Model
High-Optimized Techniques
Data Security
Speed Up Processing
Tagged Map/Reduce
Continuous Map/Reduce
Overlapping Map/Reduce
Hierarchical Map/Reduce

และในปัจจุบันได้มีนักวิจัยได้คิดค้นเทคนิควิธีต่าง ๆ เพื่อเพิ่มประสิทธิภาพการทำงานของ Map/Reduce ในรูปแบบการทำงานเดิม ๆ ของ Google’ Map/Reduce ดังตัวอย่างสรุป High-Optimized Techniques ในตารางที่ 1 ซึ่งได้แก่วิธี Tagged Map/Reduce ช่วยเน้นในด้านการเพิ่มประสิทธิภาพในการรักษาความปลอดภัยให้กับข้อมูลขนาดใหญ่ในขั้นตอนการทำ Map/Reduce (Data Security) และเทคนิควิธี Continuous Map/Reduce, Overlapping Map/Reduce และ Hierarchical Map/Reduce ทั้งสามเทคนิคหลังเป็นรูปแบบการเขียนโปรแกรมเน้นในเรื่องการประมวลผลให้ทำงานได้อย่างรวดเร็ว (Speed Up) ซึ่งแต่ละเทคนิคสามารถนำไปประยุกต์ใช้งานให้เหมาะสมตามความต้องการในการทำ Map/Reduce บนการประมวลผลข้อมูลขนาดใหญ่
ดังนั้นในบทความผู้เขียนจะยกตัวอย่างเทคนิคการเขียนโปรแกรม Map/Reduce
ด้วยกันทั้งหมด 4 วิธีดังที่กล่าวมา ซึ่งได้แก่
1) วิธี Tagged Map/Reduce
2) วิธี Continuous Map/Reduce
3) วิธี Overlapping Map/Reduce
4) วิธี Hierarchical Map/Reduce โดยจะแยกอธิบายการทำงานออกเป็นตอน ๆ เพื่อให้ผู้อ่านสามารถเข้าใจกระบวนการทำงานและสามารถนำไปเป็นแนวทางการประยุกต์นำไปใช้งาน


1. Xiangxiang, C., W. Kaigui, and W. Changze. Constructing Classification Model with MapReduce. in Multimedia Information Networking and Security (MINES), 2010 International Conference on. 2010.
2. Patel, A.B., M. Birla, and U. Nair. Addressing big data problem using Hadoop and Map Reduce. in Engineering (NUiCONE), 2012 Nirma University International Conference on. 2012.
3. Wen, Y. and D. Yinan. High-Performance Distributed Indexing and Retrieval for Large Volume Traffic Log Datasets on the Cloud. in Intelligent Human-Machine Systems and Cybernetics (IHMSC), 2013 5th International Conference on. 2013.
4. Venkatraman, S. and S. Kulkarni. MapReduce neural network framework for efficient content based image retrieval from large datasets in the cloud. in Hybrid Intelligent Systems (HIS), 2012 12th International Conference on. 2012.


ดร. สุวรรณี ธูปจีน
อังคารที่ 9 มกราคม 2561


“ขอสงวนสิทธิ์ ข้อมูล เนื้อหา บทความ และรูปภาพ (ในส่วนที่ทำขึ้นเอง) ทั้งหมดที่ปรากฎอยู่ในเว็บไซต์ ห้ามมิให้บุคคลใด คัดลอก หรือ ทำสำเนา หรือ ดัดแปลง ข้อความหรือบทความใดๆ ของเว็บไซต์ หากผู้ใดละเมิด ไม่ว่าการลอกเลียน หรือนำส่วนหนึ่งส่วนใดของบทความนี้ไปใช้ ดัดแปลง เพื่อการพาณิชย์โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร จะถูกดำเนินคดี ตามที่กฎหมายบัญญัติไว้สูงสุด ในกรณีต้องการอ้างอิงเพื่อการศึกษา กรุณาให้เครดิตโดยอ้างอิงถึงผู้เรียบเรียงและบริษัทเจ้าของเว็บไซด์ด้วย”