ข้อมูลที่เรามีนี่มัน Big Data รึเปล่านะ?

เห็นคนนั้นก็ Big Data คนนี้ก็ Big Data แล้ว Data ของฉันมัน Big กะเขาบ้างหรือยัง?”

พอพูดถึง Big Data หลายๆคนก็คงจะนึกถึงปัจจัยสามอย่าง (3V) ที่ถูกสอนตามๆกันมาว่านี่แหละ ที่ทำให้ข้อมูลมันบิ๊กนัก

  1. Volume ปริมาณข้อมูลที่ต้องเก็บ เช่น อยากรู้ว่าคนเข้ามาดูเว็บเราทำอะไรบ้าง จึงเก็บบันทึกกิจกรรมที่ผู้ใช้แต่ละคนทำไว้หมด ยิ่งเก็บละเอียดมากเราก็มีข้อมูลไปวิเคราะห์มาก แต่ก็กินที่เก็บมากขึ้น แล้วจะเก็บข้อมูลย้อนหลังกี่วัน ถ้าเก็บไม่กี่วันทิ้งบ่อยๆก็ไม่ใหญ่เท่าไหร่ ถ้าเก็บนานก็กินที่เยอะหน่อย
  2. Variety ความหลากหลาย เช่น นอกจากตัวหนังสือล้วนๆแล้ว อาจจะมีรูปภาพ วีดีโอ เสียง ฯลฯ
  3. 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

Leave a Reply

Your email address will not be published. Required fields are marked *