คลังเก็บป้ายกำกับ: Big Data

User Generated Content กับ Big Data และ Data Mining

อาจารย์ผมเคยสอนว่า ถ้าเราจะทำวิจัยเรื่องอะไร เราก็ต้องดูก่อนว่าตอนนี้โลกเขาไปถึงไหนกันแล้ว และผมก็เชื่อเหลือเกินว่าตอนนี้พวกเราก็คงจะรู้แล้วว่าโลกอินเทอร์เน็ตนั้นสำคัญและมีพลังมากขนาดไหน!!

หลายปีที่ผ่านมา ประชาคมอินเทอร์เน็ตได้ช่วยกันสร้างเนื้อหาต่าง ๆ และโอนมันขึ้นไปอยู่บนระบบอินเทอร์เน็ตมากมายมหาศาล ไม่ว่าสิ่งนั้นจะเป็น ข้อความ ภาพ เสียง วีดีโอ แฟ้มไบนารี่ ซึ่งการกระทำเหล่านั้นล้วนผ่านทั้งกระบวนการของ User Generated Content และหรือ Human Based Computation

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

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

ซึ่งนั่นเป็นที่มาของ Data Mining หรือก็คือการค้นหาและสกัดความรู้จากข้อมูลจำนวนมหาศาลที่ถูกจัดเก็บไว้ โดยการค้นหาความรู้จะต้องทำได้อย่างรวดเร็ว และได้ความรู้ที่มีค่า มีความหมาย

มันคงจะเป็นอะไรที่ฟุ่มเฟือย ต้นทุนสูง และไร้ค่ามาก ๆ หากเราเก็บข้อมูลเอาไว้ได้อย่างมากมายมหาศาล แต่เรากลับไม่สามารถสกัดหรือสังเคราะห์ความรู้อะไรออกจากข้อมูลเหล่านั้นได้เลย

ทุกวันนี้บริษัทไอทียักษ์ใหญ่ผู้ให้บริการอินเทอร์เน็ตในโลกอย่าง Google, Microsoft หรือ Facebook ก็ล้วนแต่ทำ Data Mining จากข้อมูลจำนวนมหาศาลที่ประชาคมอินเทอร์เน็ตสร้างขึ้นผ่านบริการของตนเองทั้งนั้น

นิยามความรู้เบื้องต้นของ Data Mining ตอนนี้อาจจะยังอยู่แค่ Classification, Clustering หรือ Association Rule Mining แต่ในอนาคตเราไม่รู้ว่าจะมีนักวิจัยคิดค้นอย่างอื่นเพื่อการทำ Data Mining อีกมั้ย และถ้าถึงตอนนั้นก็อาจจะมีวิธีหาความรู้จากข้อมูลจำนวนมหาศาลมหึมาในรูปแบบใหม่ก็เป็นได้!

ใช้ NoSQL จัดการกับ Big Data

ข้อมูลในองค์กรที่ ๆ ผมทำงานอยู่ กำลังมีมากขึ้นเรื่อย ๆ จะเอาออกก็ไม่ได้ เพราะผู้ใช้งานก็ยังใช้สืบค้นอยู่ จะว่าเปลืองพื้นที่ก็ไม่ใช่ เพราะเดี๋ยวนี้อัดฮาร์ดดิสก์กันทีเป็นหลักเทราไบต์ แถมเครื่องนึงใส่ฮาร์ดดิสก์หลายลูก ทำเป็นคลัสเตอริ่งโน่นนี่นั่นอีกต่างหาก

ปัญหามันอยู่ที่การสืบค้นข้อมูล มันใช้เวลานานขึ้นเรื่อย ๆ ยิ่งตอนที่กำลังอ่านพร้อมกับกำลังเขียน ยิ่งใช้เวลานานเข้าไปใหญ่ นี่ยังไม่นับว่ามีคนแย่งกันใช้แหล่งข้อมูลเดียวกันเป็นร้อย ๆ เครื่องด้วยนะเอ้อ

ทางเลือกมีไม่มาก ผมเลยเริ่มหันมามอง NoSQL อย่างจริงจัง ซึ่งถึงมันเพิ่งจะเริ่มตั้งไข่ได้ไม่กี่ปี แต่ผมก็คิดว่าในอนาคตผมต้องได้ใช้มันแน่ ๆ

ปัญหาที่ตอนนี้ผมเจอเกี่ยวกับ NoSQL ก็คือแนวความคิดที่่ว่า มันจะไม่มีการ JOIN ระหว่างตารางข้อมูล มันขัดกับหลักพื้นฐานที่ร่ำเรียนมามาก ๆ และการประยุกต์ใช้ในทางปฏิบัติมันก็หลีกเลี่ยงการ JOIN ไม่ได้ด้วยอ่ะดิ เพราะข้อมูลในทางธุรกิจมันพัวพันยึดโยงกันอยู่ มันควรจะแยกอิสระออกจากกันแล้ว JOIN กันตามแบบเดิม ๆ ที่เคยเป็น

ถ้า DBMS แบบ NoSQL ไม่ยอมทำเรื่อง JOIN ข้อมูล งั้นก็คงมีทางเลือกสองทาง คือออกแบบเป็นแบบ Denormalized หรือไม่ก็ต้องเขียนโปรแกรมเพื่อ JOIN เอง!!!

ผมคิดว่าคนอื่นก็คิดคล้าย ๆ กัน และผมก็ได้ข่าวว่าตอนนี้มีการซุ่มพัฒนาภาษาคอมพิวเตอร์ ที่เหมือนกับภาษา SQL เพื่อใช้สำหรับฐานข้อมูลแบบ NoSQL โดยเฉพาะ ผมก็เลยคิดว่าภายในปี สองปี สามปี ที่จะถึงนี้ เราอาจจะพบว่า DBMS แบบ NoSQL กับภาษาคอมพิวเตอร์เพื่อสืบค้นฐานข้อมูลแบบใหม่ อาจจะใส่กลไกการ JOIN แบบใหม่เข้าไปก็ได้ เมื่อถึงตอนนั้น เราคงจะได้ใช้ฐานข้อมูลแบบใหม่ บนพื้นฐานความรู้แบบเก่า โดยไม่กระทบกระเทือนกับของเดิมที่พัฒนาเอาไว้แล้ว

ของใหม่มันก็ดีอยู่หรอกนะ แต่ยังไงเราก็ต้องใส่ใจกับของเก่าด้วย เพราะต้นทุนในการยกระดับให้ทันสมัย มันแพงเอาเรื่องอยู่เหมือนกันนะเออ