ELEADER

ปัจจุบันแนวทางการจัดทำกรอบ หรือ Framework ของเทคโนโลยี Big Data ในประเทศไทยจะยังไม่มีรูปแบบที่ชัดเจน แต่หลายองค์กรธุรกิจที่จะนำ Big Data ไปใช้อาจจะมีการปรับตามรูปแบบเนื้อหาข้อมูลเป็นหลัก ซึ่งบทความในฉบับนี้มีรูปแบบและแนวทางมานำเสนอ

Recommended Framework of Big Data Technologies [10]
Framework ที่จะนำมาใช้กับ Big Data นั้น จำเป็นจะต้องเป็น Framework ที่ประกอบด้วยการผสมผสานทั้ง Infrastructure, Database, Visualization และ Analytics tools ในการเลือกใช้ Framework ที่เหมาะสมจะทำให้ได้รับประโยชน์ที่กล่าวมาจาก Big Data ได้อย่างเต็มที่ แต่ทว่ามีเทคโนโลยีอยู่มากมายหลายผลิตภัณฑ์ ทั้งในแบบ Open source และ Commercial ที่สามารถนำมาใช้กับ Big Data ได้ การเลือกใช้จึงควรมุ่งไปที่การพิสูจน์ว่าทางเลือกใดคือ “fitness-for-purpose” ของงานที่จะนำ Big Data ไปใช้ และต้องยอมรับว่าในหลายกรณีจำเป็นต้อง Trade-offs ระหว่าง Feature ของทางเลือกต่างๆ ด้วย

big data
Framework ของเทคโนโลยี ซึ่งมีความเหมาะสมกับ Big Data

N. Sawant et al. [10] ได้นำเสนอ Framework ที่เหมาะสมกับ Big Data ตามรูปที่ 1 Framework ของ [10] ประกอบด้วยองค์ประกอบหลัก 3 ส่วนคือ Ingestion Layer, Big Data Tech Stack โดยที่ Big Data Tech Stack ประกอบด้วย Monitoring Layer, Security Layer, Hadoop Infrastructure layer, Hadoop Storage Layer, Hadoop Platform Management Layer Visualization Layer Analytics Engines และ Data Warehouses องค์ประกอบของทุก Framework ตามรูปที่ 4 สามารถรองรับการประมวลผลข้อมูลขนาดใหญ่ระดับ Big Data ได้ และเป็นองค์ประกอบที่มีความสอดคล้องกับเทคโนโลยีต่างๆ ที่ได้กล่าวมาแล้วในข้อ 3 นอกจากนี้ Framework นี้ยังสามารถรองรับทั้งผลิตภัณฑ์ที่เป็น Open source และ Commercial อีกด้วย สำหรับรายละเอียดของแต่ละ Layer มีดังนี้

Ingestion Layer
Ingestion Layer ทำหน้าที่คัดกรองข้อมูลที่จะถูกนำเข้าสู่ Framework เปรียบเสมือน Data sentinel ขององค์กร และสามารถดำเนินการกับข้อมูลที่ Huge volume, High velocity และ Variety of data ได้ ความสามารถหลักที่ Ingestion Layer จำเป็นจะต้องมีคือ Data Validation, Data Cleaning, Data Transformation, Data Reduction และ Data Integration ซึ่งข้อมูลที่ออกจาก Layer นี้จะถูกนำเข้าสู่ Big Data Tech Stack ต่อ

องค์ประกอบภายใน Ingestion Layer
องค์ประกอบภายใน Ingestion Layer

Distributed (Hadoop) Storage Layer
องค์ประกอบของ Layer นี้ เป็น Distributed Storage ซึ่งต้องมีคุณสมบัติในด้าน Fault-tolerance และ Parallelization. Hadoop Distributed File System (HDFS) เป็นองค์ประกอบพื้นฐานที่จำเป็นต้องมีใน Layer นี้ แต่เพื่อให้สะดวกต่อการเขียนชุดคำสั่งเพื่อ Read/Write ข้อมูลที่อยู่ใน HDFS จึงต้องอาศัยการเข้าถึงข้อมูล HDFS ผ่าน NoSQL ปัจจุบันมีเทคโนโลยีหรือผลิตภัณฑ์ที่อยู่ในกลุ่ม NoSQL หลากหลาย ตามที่ได้กล่าวมาในข้อ 3.2 แต่ไม่ว่าจะเลือกตัวเลือกใด จำเป็นต้องมั่นใจว่า ตัวเลือกนั้นสามารถบรรลุหลักการ CAP (CAP Theorem) [23] ซึ่งประกอบด้วย Consistency, Availability และ Partition Tolerance การผสมผสานระหว่าง SQL กับ NoSQL database เป็นการทำให้องค์กรมั่นใจได้ว่าจะมีข้อมูลเมื่อจำเป็นต้องใช้ รูปที่ 3 แสดง NoSQL database ที่เหมาะสมกับ Business Application ที่แตกต่างกัน

NoSQL database จำแนกตาม Business Application
NoSQL database จำแนกตาม Business Application

Hadoop Infrastructure Layer
Hadoop Infrastructure Layer มีหน้าที่ให้การสนับสนุน Storage Layer ประเด็นสำคัญที่ต้องคำนึงถึงคือ Storage Layer นั้น จะต้องรองรับข้อมูลซึ่งไม่สามารถรู้ได้ล่วงหน้าเลยว่า จะมีขนาด ความเร็ว และหลากหลายมากน้อยแค่ไหน ดังนั้น Physical infrastructure ที่จะนำมาใช้จะต้องมีความแตกต่างจาก Physical infrastructure ทั่วไปปกติ นอกจากนี้ Hadoopy Infrastructure Layer จะต้องอยู่บนพื้นฐาน Distributed computing model ซึ่งหมายความว่า ข้อมูลชุดหนึ่งๆ อาจถูกเก็บอยู่ในสถานที่หลายๆ แห่งแตกต่างกันได้ โดยมีการเชื่อมต่อกันผ่านทาง Network และ Distributed file system ดังนั้น จึงไม่ใช่แนวคิดดั้งเดิมที่ใช้ SQL ไปจัดการข้อมูลที่อยู่ใน Server ตัวใดตัวหนึ่ง แต่ต้องนำแนวคิดเรื่อง Redundancy มาใช้จัดวาง Infrastructure ให้เหมาะสม

Cloud computing เป็นโมเดลหนึ่งที่ทำให้เกิดการเข้าถึงทรัพยากรสำหรับการประมวลผล เช่น Server, Storage, Application, Services ผ่านทาง Network ได้อย่าง Ubiquitous, Convenient และ On-demand [25] องค์กรจึงสามารถนำ Cloud computing มาเป็น Distributed data-processing platform ให้กับ Big data ได้ ตามรูปที่ 9 ข้อมูลถูกแยกไปประมวลผลและถูกจัดเก็บด้วย Storage ที่แตกต่างกัน ซึ่งกระจายอยู่ตาม Node ต่างๆ ของ Hadoop เช่น Storage แบบ Solid State Disks, Local Disks, SAN เป็นต้น Talia et al. [26] กล่าวว่า Cloud computering infrastructure สามารถนำมาใช้งานเป็น Platform สำหรับการจัดการ Storage และทำ Big Data analysis ได้ อีกทั้งมีหลายงานวิจัย [27, 28] ที่ยืนยันว่า MapReduce สามารถประมวลผลข้อมูลในระดับ Big Data ได้บน Cloud environment

big data 4
Big Data Architecture ที่สอดคล้องกับ Hadoop Infrastructure Layer

Security Layer
Security Layer จะรับผิดชอบครอบคลุมทุกส่วนของ Framework โดยเฉพาะอย่างยิ่งในส่วน Analytics จำเป็นจะต้องมี Authentication และ Authorization ซึ่งเทคนิคโดยทั่วไปที่ใช้รักษาความปลอดภัยข้อมูลในปัจจุบัน มุ่งเน้นที่การคุ้มครองตัวระบบซึ่งทำหน้าที่จัดการข้อมูลมากกว่าที่จะคุ้มครองตัวข้อมูลเอง แต่ก็ได้พิสูจน์ให้ทราบกันโดยทั่วแล้วว่า จะเกิดช่องโหว่ (Vulnerability) ขึ้นในระบบ จากการใช้เทคนิคการเข้ารหัสข้อมูลที่เข้มงวด (Strong cryptography) จะช่วย Encapsulate ข้อมูลที่ Sensitive ได้ในสภาพแวดล้อมแบบ Cloud และการพัฒนาอัลกอริทึมใหม่ๆ ที่ใช้จัดการ Key และแลกเปลี่ยน Key เป็นสิ่งสำคัญในการควบคุมการเข้าถึง Big Data นอกจากนี้ Hashing Schemes ที่มีใช้งานอยู่ในปัจจุบัน ไม่สามารถนำมาใช้งานกับข้อมูลในปริมาณมหาศาล และกระจัดกระจายไปตาม Node ต่างๆ ของ Cluster ได้อย่างมีประสิทธิภาพ ดังนั้น Integrity verification จึงเป็นเรื่องที่ยากสำหรับ Big Data

การออกแบบ Big Data Tech Stack ให้มีความปลอดภัยอย่างน้อยที่สุดคือในระดับขั้นพื้นฐาน ดังนี้
1) มีกลไกการพิสูจน์ตัวตน (Authentication) ด้วยการใช้ Kerberos
2) จัดให้มี File-Layer Encryption
3) มีการใช้ Key management service สำหรับ Trusted keys และ Certificates
4) มีการเก็บ Logs สำหรับการสื่อสารระหว่าง Nodes และใช้ Distributed logging mechanisms เพื่อติดตามสิ่งผิดปกติที่เกิดขึ้นระหว่าง Layers
5) การสื่อสารระหว่าง Node ต้อง Secure เช่น มีการใช้ SSL, TLS อื่นๆ

Analytics Engine
การทำ Analytics สามารถใช้ข้อมูลทั้งจาก Data warehouse ที่เป็น traditional stores และ Big Data stores. โดยยังคงใช้ Data warehouse ร่วมกับ RDBMS-based transactional data ได้เหมือนเดิม และใช้ Sqoop ในการจัดการ Data flows ที่เกิดขึ้นระหว่าง Data warehouse กับ Big Data stores ได้ การทำงานขององค์ประกอบต่างๆ ภายใน Big Data Tech Stack อาจมี Latency อยู่บ้าง สำหรับการทำ Real-time analysis นั้นควรเลือกใช้ Low-latency NoSQL stores เช่น Cassandra, Vertica อื่นๆ สำหรับการวิเคราะห์ข้อมูลเพื่อส่งต่อผลลัพธ์ให้กับ Application ได้ นักพัฒนาสามารถใช้ Open Sources เช่น R และ Madlib สำหรับวิเคราะห์ข้อมูลด้วยอัลกอริทึมทางสถิติที่ซับซ้อนได้

Big Data Application สำหรับ Cloud Platforms
ในข้อ 4 ผู้เชียนได้อธิบายเกี่ยวกับซอฟต์แวร์ต่างๆ ที่สามารถทำงานร่วมกับ Hadoop ในลักษณะ Hadoop Ecosystem แล้ว ในหัวข้อนี้ได้แสดง Software ที่สามารถทำงานร่วมกับ Hadoop ในสภาพแวดล้อมแบบ Cloud ตามตารางที่ 1

big data5
ซอฟต์แวร์ที่สามารถทำงานได้ในสภาพแวดล้อมแบบ Cloud สำหรับ Big Data

สำหรับ Framework อื่นๆ  ที่เหมาะสมกับการนำมาใช้งาน Big Data นั้น ไม่มีความแตกต่างในสาระสำคัญ เช่น Hashem et al. ได้เสนอ Framework ของ Big Data ที่จำเพาะเจาะจงกับการนำไปใช้ในสภาพแวดล้อมแบบ Cloud. Framework  มีองค์ประกอบส่วนใหญ่เหมือนกับ Framework  แต่ Framework  ขาดในส่วน Security Layer และ Monitor Layer ซึ่งเป็นส่วนสำคัญมากในสภาพแวดล้อมที่ต้องมีการใช้ทรัพยากรร่วมกันระหว่างผู้ใช้บริการ Cloud และการประมวลถูกจัดแบ่งให้กระจายไปตาม Node ต่างๆ ของ Cluster. S. Sicular  ได้นำเสนอ Framework สำหรับการทำความเข้าใจ Hadoop ที่มีการจัดเรียง Layer ต่างๆ ภายใน Framework แตกต่างจาก  แต่การอธิบายส่วนประกอบของ Layer มีความคล้ายคลึงกัน

big data6
Framework ของ Big Data ที่ Hashem et al. ได้นำเสนอ
big data7
Framework สำหรับการทำความเข้าใจ Hadoop ซึ่ง S. Sicular ได้นำเสนอ

ในบริบทของประเทศไทยนั้น Big Data และการใช้ Hadoop ยังคงเป็นเรื่องใหม่ ผู้เขียนได้สำรวจและค้นคว้าแหล่งข้อมูลวิจัยทั้งในและต่างประเทศ ตลอดจนศึกษาเอกสารขององค์กรทั้งภาครัฐและเอกชนที่นำออกเผยแพร่สู่สาธารณะแล้ว ยังไม่พบรายละเอียดเกี่ยวกับ Framework ของเทคโนโลยีที่นำไปใช้กับ Big Data ดังนั้น การนำ Framework ของ [10] มาปรับใช้ในบริบทของประเทศไทย ไม่ว่าจะด้วยจุดประสงค์ใด การปรับใช้จำเป็นต้องคำนึงถึงรูปแบบเนื้อหาข้อมูลตามข้อ 2.2 เป็นสำคัญ ผู้เขียนขอนำเสนอข้อสังเกตไว้ว่า ข้อมูลนำเข้าสู่ Framework ไม่ว่าด้วยขนาดใด ความเร็วเท่าใด จะต้องเป็นแบบ Structured, Unstructured, Semi-structured อย่างใดอย่างหนึ่งหรือผสมผสานกันอย่างแน่นอน

big data8
Framework ที่ใช้ทำความเข้าใจกระบวนการประมวลผลข้อมูล และจัดเก็บข้อมูล

Hashem et al.  ได้นำเสนอ Framework ที่ใช้ทำความเข้าใจกระบวนการประมวลผลข้อมูล และจัดเก็บข้อมูล ตามรูปที่ 12 อธิบายได้ว่า กรณีแรก ซึ่งข้อมูลเป็นแบบ Unstructured สามารถจัดเก็บข้อมูลลง Storage ได้โดยไม่จำเป็นต้อง Transform ข้อมูลก่อน เช่น กรณี Video Content ก็สามารถจัดเก็บลง Storage ในรูปแบบ Files ได้โดยตรง ข้อความ (Text) จัดเก็บได้ในรูปแบบ Text files เป็นต้น เมื่อจำเป็นต้องนำข้อมูลไปใช้ จึงจะ Transform ข้อมูลให้อยู่ในขอบเขตที่นำไปใช้ประโยชน์ได้ (schema-on-read constraints) แต่ในกรณีที่สอง ข้อมูลเป็นแบบ Structured สามารถจัดการด้วย RDBMS ได้ การ Pre-process เกี่ยวข้องกับการ Insert และ Update ข้อมูลลงใน Table ต่างๆ ตาม Data schemas ที่กำหนดไว้ล่วงหน้า (schema-on-write constraints) เมื่อจำเป็นต้องนำข้อมูลไปใช้ Data Retrieval ที่เกิดขึ้นคือการ Select ข้อมูลออกมาตาม Data schemas และเงื่อนไขที่จะนำไปสู่การใช้ประโยชน์ข้อมูลได้ แต่อย่างไรก็ตาม ทั้งสองกรณีนี้จะเกิดขึ้นในภายใน Ingestion Layer เท่านั้น ไม่กระทบต่อองค์ประกอบใน Big Data Tech Stack

บทสรุป
การบริโภคข้อมูลมีแนวโน้มสูงขึ้นตลอดเวลา ทั้งในด้านขนาด ความหลากหลาย และความเร็วของข้อมูล ขนาดของข้อมูลส่งผลกระทบต่อเทคโนโลยี Storage ที่ใช้จัดเก็บข้อมูลและโครงสร้างข้อมูล เช่น Column/Row-oriented, Graph-based อื่นๆ กระบวนการประมวลผลข้อมูลจำเป็นต้องอยู่บนพื้นฐานของ MapReduce จึงจะได้รับประโยชน์จาก Computer Clustering อย่างเต็มที่ การผสมผสานกันของข้อมูลที่มีความหลากหลายทั้งในด้านโครงสร้าง (Structure, Unstructured, Semi-Structure) ส่งผลโดยตรงต่อเทคโนโลยีที่จะนำมาใช้กับ Big Data ความรวดเร็วของข้อมูลทั้งในทิศทางการเข้าสู่ระบบและออกจากระบบไปสู่ผู้บริโภคมีความรวดเร็วมากจนถึงระดับ Real-time ทำให้ระบบต้องสามารถ Capture จากแหล่งกำเนิดข้อมูลและ Response ผู้ใช้ให้ทันต่อเวลา งานวิจัยนี้ได้ศึกษาคุณลักษณะของ Big Data และ Framework ของ Hadoop ซึ่งประกอบไปด้วย Technologies ที่สามารถรองรับ Big Data ได้ โดยได้อภิปรายองค์ประกอบหลักของ Framework คือ Ingestion Layer, Big Data Tech Stack ซึ่งรองรับ Software ทั้งในแบบ Open source และ Commercial ไปแล้ว

ในตอนท้ายของงานวิจัย ผู้เขียนได้อธิบายถึงความแตกต่างของการประมวลผลข้อมูลและจัดเก็บข้อมูลที่เกิดขึ้นกับข้อมูลที่เป็น Unstructured และ Structured แม้ว่ามันจะไม่มีผลต่อการจัดวางองค์ประกอบต่างๆ ภายใน Big Data Tech Stack แต่ความรวดเร็วในการ Transforming ข้อมูล ใน Ingestion Layer จะส่งผลประสิทธิภาพการทำงานของเทคโนโลยีต่างๆ ใน Framework โดยรวมได้ ในงานวิจัยถัดไปเราจะทำการศึกษา Platform ที่เหมาะสมกับข้อมูลที่เป็น Unstructured เช่น Video, Social network content อื่นๆ เพื่อนำเสนอเป็น Framework สำหรับการทำ Real-time services ต่อไป