เห็นคนนั้นก็ Big Data คนนี้ก็ Big Data แล้ว Data ของฉันมัน Big กะเขาบ้างหรือยัง?”
พอพูดถึง Big Data หลายๆคนก็คงจะนึกถึงปัจจัยสามอย่าง (3V) ที่ถูกสอนตามๆกันมาว่านี่แหละ ที่ทำให้ข้อมูลมันบิ๊กนัก
- Volume ปริมาณข้อมูลที่ต้องเก็บ เช่น อยากรู้ว่าคนเข้ามาดูเว็บเราทำอะไรบ้าง จึงเก็บบันทึกกิจกรรมที่ผู้ใช้แต่ละคนทำไว้หมด ยิ่งเก็บละเอียดมากเราก็มีข้อมูลไปวิเคราะห์มาก แต่ก็กินที่เก็บมากขึ้น แล้วจะเก็บข้อมูลย้อนหลังกี่วัน ถ้าเก็บไม่กี่วันทิ้งบ่อยๆก็ไม่ใหญ่เท่าไหร่ ถ้าเก็บนานก็กินที่เยอะหน่อย
- Variety ความหลากหลาย เช่น นอกจากตัวหนังสือล้วนๆแล้ว อาจจะมีรูปภาพ วีดีโอ เสียง ฯลฯ
- Velocity ความถี่ในการเก็บข้อมูล เช่น พวกข้อมูล sensor จากดาวเทียมที่ส่งมารัวๆก็ทำให้เก็บข้อมูลแป๊บเดียวก็ใหญ่มาก
แล้ว V เท่าไหร่ถึงจะบิ๊กล่ะ? เออ นั่นสินะ… 🤔
Big Data ที่เขาว่ากัน…
ในทางปฏิบัติ Big Data มักหมายถึงข้อมูลที่ใหญ่จนจำเป็น (ขอย้ำว่าจำเป็น) ต้องใช้เทคโนโลยีที่ออกแบบมาพิเศษเพื่อการประมวลผลข้อมูลขนาดใหญ่ (เช่น MapReduce) ตัวซอฟท์แวร์ยอดฮิตที่ใช้กันแพร่หลายก็คือ Apache Hadoop หลังๆมานี้ก็มี Apache Spark อีกตัว
ซึ่ง Hadoop หรือ Spark นั้นทำอะไรได้น้อยกว่าบรรดา พวกเทคโนโลยีดั้งเดิม (สำหรับ “small data”) แต่มีจุดแข็งอยู่ข้อเดียวคือจัดการกับข้อมูลได้ปริมาณเยอะกว่า (เน้นถึกครับ 🐃) ถ้ามีทางเลือกอื่น ก็ไม่ใช้ดีกว่า
เอาเข้าจริงในช่วงหลายๆปีที่ผ่านมา การถามว่าบริษัทใช้ Big Data รึเปล่าก็เหมือนถามว่า บริษัทใช้ Hadoop รึเปล่าล่ะ แค่นั้นแหละ ทีนี้ก็เลยมีบางองค์กรอยากใช้ Hadoop เพื่อจะได้ Big Data กะเขาบ้าง ทั้งที่ข้อมูลไม่ได้ใหญ่โตอะไร 🤦
ดังนั้น Big Data ของจริงก็อาจจะต้องวัดจากว่า จำเป็นต้องใช้ Hadoop จริงๆรึเปล่านะ
เมื่อไหร่ถึงต้องใช้ Hadoop จริงๆ?
ข้อมูลขนาด 600 MB ใหญ่พอมั้ย?
เสียใจด้วยครับ คุณสามารถจัดการทุกอย่างได้ในคอมเครื่องเดียว ไม่ต้องถึงมือ Hadoop หรอก ใช้ Python, R, Matlab ได้สบาย เช่น สั่งคำสั่ง panda.read_csv
ก็อ่านไฟล์เข้าไปอยู่ในหน่วยความจำของเครื่อง (RAM) หมดแล้ว
บางคนอาจเถียงว่า “แต่ว่า Excel โหลดไม่ได้นะ!” เสียใจด้วยครับ Excel นั้นดีสำหรับทำอะไรหลายๆอย่าง แต่ไม่ใช่สำหรับไฟล์ใหญ่ๆ แค่นั้นเอง 🐼
แล้วถ้าข้อมูลเพิ่มเป็น 10 GB?
เสียใจด้วยครับ เครื่องทั่วๆไปอาจมี RAM ไม่เกิน 4 GB ฟังดูเหมือน 10 GB คงใส่ไม่พอสินะ บังเอิญว่า RAM 16 GB ก็ไม่ได้แพงมากนะครับ ไปซื้อมาเปลี่ยนเลย ไฟล์แค่ 10 GB เอาใส่แรมยังเหลือที่ใส่อย่างอื่นเยอะแยะตั้ง 6 GB ประหยัดเงินและแรงงานกว่าตั้ง Hadoop cluster แน่นอน 💸
แล้วข้อมูลขนาด 100 GB / 500 GB / 1 TB ล่ะ?
เกือบมีลุ้น แต่ก็ยังคงเสียใจด้วยครับ ข้อมูลขนาดนี้เริ่มยากขึ้นนิดนึงเพราะว่าคงยัดใส่ RAM ไม่ได้แล้ว ก่อนอื่นก็ต้องให้คอมเก็บข้อมูลทั้งหมดได้ก่อน ซื้อ Hard disk 2 TB หรือ 4 TB มาเสียบสบายๆ หลังจากนั้นก็ลง Database เช่น MySQL หรือ Postgres ครับ ทีนี้ก็สามารถใช้ SQL ได้แล้ว
ความสามารถในการวิเคราะห์ข้อมูลด้วย Python, R, Matlab หรือ SQL นี่สะดวกและรวดเร็วกว่า Hadoop อยู่มากทีเดียว 🚀
ยังไม่ยอมแพ้ ถ้าข้อมูล 5 TB หรือมากกว่าล่ะ?
โอเค ยินดีด้วยครับ 🎉 ยินดีต้อนรับสู่ Hadoop แทนที่จะทำทุกอย่างได้เร็วๆง่ายๆบนเครื่องเดียว คุณต้องเอาข้อมูลไปเก็บไกลๆในเครื่องหลายๆเครื่อง จะทำอะไรก็ขั้นตอนมากขึ้น แถมได้ฝึกความอดทนเป็นของแถม เพราะทุกอย่างจะช้าไปหมด 🐢
Big แล้วนะ ดีใจหรือยัง… 😂
ส่งท้าย
สุดท้ายผู้เขียนก็อยากจะเรียนว่า เรียกว่า Big หรือไม่มันอาจไม่ได้สำคัญขนาดนั้น ก็พอเข้าใจได้ว่าอยากจะใช้ buzzword กับเขาบ้าง บางครั้งก็แอบยิ้มเล็กๆ เวลาเห็นพาดหัวข่าวใช้ Big Data ทำนู่นทำนี่ แล้วพออ่านเนื้อข่าวจริงๆนี่ข้อมูลอยู่ใน Excel นี่นา ก็เอาเป็นว่าข้อมูลจะเล็กหรือใหญ่สำคัญว่าเอาไปทำประโยชน์ได้ก็แล้วกันครับ 👍
เอกสารอ้างอิง
เนื้อหาบางส่วนแปลและดัดแปลงมาจากบทความนี้ครับ
“Don’t use Hadoop — your data isn’t that big” https://www.chrisstucchio.com/blog/2013/hadoop_hatred.html