องค์ประกอบที่สำคัญที่สุดอีกอันหนึ่งการทำ Big Data คือการประมวลผลข้อมูลจากแหล่งข้อมูลขนาดใหญ่ต่างๆ ทั้งนี้การประมวลผลข้อมูลที่เก็บอยู่สามารถแบ่งออกได้ 4 รูปแบบคือ
- Interactive analysis
- Batch analysis
- Real time analysis
- Machine Learning
โดยควรจะมีเทคโนโลยีสองกลุ่มคือ การประมวลผลโดยใช้เทคโนโลยี Hadoop จากข้อมูลใน HDFS และการประมวลผลโดยใช้เทคโนโลยี Spark โดยอาจมีข้อมูลจากแหล่งต่างๆ
การประมวลผลโดยใช้ Hadoop
โดยปกติ Hadoop จะใช้เทคโนโลยีอย่าง MapReduce ในการประมวลผลข้อมูลใน HDFS แต่ทั้งนี้เนื่องจาก MapReduce เป็นเทคโนโลยีที่ทำงานแบบ Batch และต้องพัฒนาโปรแกรมด้วยภาษาต่างๆ อาทิเช่น Java ในการประมวลผล จึงทำให้ MapReduce ได้รับความนิยมน้อยลงและมีแนวโน้มว่าจะถูกแทนที่ด้วยเทคโนโลยี Spark วันนี้เราอาจไม่ต้องเน้นการประมวลผลผ่านบริการ MapReduce มากนักแต่ควรให้บริการเทคโนโลยีประมวลสำหรับ Hadoop ที่เป็นภาษาคล้าย SQL โดยแนะนำให้บริการเทคโนโลยีต่างๆ คือ Hive เป็นเทคโนโลยีที่ใช้ภาษา Hive QL ลักษณะ SQL โดย Hive จะทำหน้าที่ในการแปล SQL like ให้มาเป็น MapReduce แล้วก็ทำการรันแบบ Batch
- Impala เป็นเครื่องมือที่คล้ายกับ Hive แต่เขียนด้วยภาษา C++ และติดต่อกับข้อมูล HDFS ตรงโดยไม่ต้องผ่าน MapReduce ซึ่งจะทำงานแบบ Interactive
- Pig เป็นเครื่องมือคล้ายๆ กับ Hive ที่ช่วยให้ประมวลผลข้อมูลโดยไม่ต้องเขียนโปรแกรม Map/Reduce ซึ่ง Pig จะใช้โปรแกรมภาษา script ง่ายๆที่เรียกว่า Pig Latin แทน ทั้งนี้จะทำงานแบบ Batch
การประมวลผลโดยใช้ Spark
Spark เป็นเทคโนโลยีในการประมวลข้อมูลขนาดใหญ่ โดยสามารถจะประมวลผลข้อมูลทั้งที่อยู่ใน HDFS หรือแหล่งอื่นๆ อาทิเช่น Cloud Storage, NoSQL, RDBMS ดังแสดงในรูปที่ 1 ทั้งนี้ Spark สามารถทำงานแบบ Standalone หรือจะทำงานบน Hadoop Cluster ผ่าน YARN ก็ได้ โดยจะทำงานแบบ Interactive โดยมีการระบุว่า Spark สามารถประมวลผลบน Hadoop ได้เร็วกว่า MapReduce อย่างน้อย 10 เท่า ซึ่ง Spark มีบริการประมวลผลแบบต่างๆ ดังนี้
รูปที่ 1 ระบบประมวลผลของ Apache Spark
- Spark core ก็คือระบบประมวลผลโดยผ่าน API ซึ่งให้ผู้ใช้บริการสามารถเลือกใช้ภาษา Java, Scala, Python หรือ R
- Spark streaming สำหรับการประมวลผลแบบ Realtime Streaming
- Spark SQL สำหรับการประมวลผลที่ใช้ภาษาคล้ายกับ SQL
- MLlib สำหรับการประมวลที่เป็นแบบ Machine Learning
ทั้งนี้เราสามารถที่จะสรุปเปรียบเทียบเทคโนโลยีการประมวลผลข้อมูลต่างๆ ได้ดังนี้
ธนชาติ นุ่มนนท์
IMC Institute
กุมภาพันธ์ 2559