มีคนหลังไมค์มาถามว่าหายไปไหนหลังจากบทความเกี่ยวกับ ESP32 และ Lora จะเรียกว่าหายก็ไม่เชิง ก็มีเข้าไปอ่านๆตอบๆบ้างตาม FB ของกรุ๊ปต่างๆ แต่บางครั้งเจอหลายๆคำถามที่สามารถหาได้จาก Google ได้ ก็เลยมักไม่ค่อยได้เข้าไปตอบซะส่วนใหญ่
ซึ่งช่วงนี้ผมเองก็จะยุ่งๆเกี่ยวกับเรื่องของข้อมูลที่ค่อนข้างใหญ่ ใหญ่ขนาดไหน ขนาดประมาณวันละประมาณ 10 ล้าน Record ที่ต้องประมวลผลทุกวัน หรือข้อมูลอีกชุดนึงที่มีขนาดประมาณ 5,300 ล้าน Record
ในการทำงานเรามักจะมีเครื่องมือหากินที่ถนัดในการช่วยให้งานสำเร็จ ถ้าเป็นการเขียนโปรแกรมฐานข้อมูล Windows Application ผมมักจะเลือก Delphi เป็นตัวเลือกแรกๆ หรือการพัฒนา Embedded Device สำหรับ Application IOT ก็จะเป็น Arduino IDE สำหรับงานทางด้านข้อมูล ในเชิงการนำเสนอ หรือหา Insight ของข้อมูลในเชิงที่ต้องบิดมุมมองบ่อยๆ หรือ Adhoc Report ผมมักจะใช้ Qlikview เป็นหลัก ซึ่งก็จะมี Personal Edition ให้ใช้ฟรี
คราวนี้เรามาดูกันว่าอะไรคือ BigData ซึ่งหลักๆเลยคุณสมบัติของ BigData จะประกอบด้วย 3V
- Volume: ปริมาณของข้อมูลที่มีขนาดใหญ่มาก อาจจะเป็นข้อมูลที่เก็บมานาน หรือประเภทของข้อมูลที่กินพื้นที่ความจุมาก หรือรวมๆกันทั้งสองอย่าง
- Variety: ความหลากหลายของข้อมูล ที่เป็นมากกว่าแค่ตัวเลข ตัวอักษร แต่รวมไปถึง รูปภาพ วีดีโอ เสียง เช่นข้อมูลบน Social ต่างๆ
- Velocity: ความเร็วของข้อมูลที่เกิดขึ้น ให้ลองนึกถึงข้อมูลการใช้งาน ของลูกค้าจำนวน 10 ล้านราย ผ่านผู้ให้บริการโทรศัพท์เคลื่อนที่ ซึ่งทางผู้ให้บริการมือถือต้องทำการเก็บ log เอาไว้ ลองคิดดูว่าแต่ละวินาทีปริมาณข้อมูลที่เกิดขึ้นจะมหาศาลขนาดไหน
BigData เป็นการกล่าวถึงประเภทของข้อมูล เราจะ Handle ยังไงกับปริมาณข้อมูลขนาดใหญ่ ความหลากหลายของข้อมูล และความเร็วของข้อมูลที่ถูกสร้างขึ้นเป็นเรื่องหนึ่ง แต่อีกเรื่องหนึ่งก็คือการใช้ประโยชน์ นั่นก็คือการหา Insight ที่ใน BigData นั่นเอง
ซึ่งในการทำงาน เรามักจะได้รับ Daily Report/ Monthly Report เหมือนๆกันทุกเดือน ทั้งใช้คนทำ หรือ Gen จากระบบ Report ผมมักจะบอกกับทีมเสมอๆว่า รายงานที่ไม่สามารถตอบคำถามอะไรเราได้เลย มันก็เป็นเพียงการพ่นข้อมูลขึ้นไปในอากาศแล้วก็ปล่อยให้หายไป
ฉะนั้นผมก็เลยชอบใช้ Qlikview ซึ่งเป็น BI Tool สำหรับการประมวลผล หา Insight ของ ข้อมูล เพราะสะดวกและมีเครื่องมือให้ใช้ในการทำ Adhoc report ไม่ต้องสร้าง Data Cube ขึ้นมาก่อน สามารถที่จะบิดมุมมองของข้อมูลได้ค่อนข้างสะดวก สร้างรายงานได้สวย และมี help ที่ดีมาก (ไว้มีโอกาส จะมาสอนใช้งานกัน) แต่ด้วยข้อมูลขนาด 757 ล้าน Recordนั้น อาจจะมีปัญหากับ Qlikview อยู่เหมือนกันเพราะเจ้า Qlikview นี้ใช้ RAM ในการประมวลผลเป็นหลัก ถึงได้สามารถบิดมุมมองได้ทันที คราวนี้เครื่อง MacBook แก่ๆ Mid 2012 ที่มี RAM แค่ 16 GB แล้วเอามาลง Windows บน VM ก็คงไม่พอแน่ๆ คราวนี้ทำอย่างไรดีหละ จะซื้อเครื่องใหม่ก็ไม่รู้ว่า Project ที่ทำอยู่จะระยะยาวขนาดไหน
สุดท้ายก็มาจบที่ VDI (Virtual Desktop Infrastructure) ซึ่งก็หนีไม่พ้นเจ้าใหญ่ที่ให้บริการก็คือ AWS นั่นเอง สำหรับบริการประเภท VDI หรือ DaaS (Desktop as a Service) ของ AWS ก็ให้บริการในชื่อ Amazon Workspace ซึ่ง Pack ที่ผมใช้งานอยู่ ก็อยู่ที่เดือนละ 179 USD ที่มาพร้อมกับ 8 vCPU, RAM 32 GB, Disk 100GB ซึ่งก็เหมือนจะสูงอยู่สำหรับงาน Desktop แต่พอเอามาใช้ประมวลผลเจ้า 757 ล้าน record แล้ว ผลก็ออกมาแบบนี้แหละครับ
โดยที่บางครั้งบางรายงานก็มีการเรียกใช้ Ram ไปเกือบ 80% เลยก็มี แต่ข้อดีอีกอย่างหนึ่งของ VDI ก็คือ ผมสามารถใช้งานผ่าน Internet ที่ไหนก็ได้ บางคนอาจจะคิดว่า อ้าววว ทำ VPN แล้วใช้ vnc / Teamviewer ก็สามารถ remote desktop ได้เหมือนกันหนิ แต่อย่าลืมว่าการเปิดทิ้งเครื่องไว้ ไม่ได้ตั้งเครื่องไว้ที่ IDC เราจะแน่ใจได้อย่างไรว่า เราอาจจะเจอแจ้คพอตเนตมีปัญหาหรือระบบไฟมีปัญหา หรือแม้แต่เครื่องเองที่อาจจะแฮงค์ก็ได้ ซึ่ง VDI นั้นสามารถ manage ได้ทั้งการ Start/Stop/Restart/Backup เหมือนใช้งาน VM บน Cloud และที่สำคัญยังสามารถเพิ่มลด resource ได้อีกด้วย ถ้าวันนึง Project จบก็สามารถ Terminate ได้ทันที
ตอนแรกว่าจะเขียนรวดเดียวจบ แต่ดูแล้วท่าจะยาว เพราะยังมีข้อมูลอีกชุดที่ปาเข้าไป 5000 กว่าล้าน Record ซึ่งผมเอามาทำบน Qlikview ไม่ไหวแน่ๆ และด้วย Resource ที่จำกัด ครั้งหน้าผมจะมาแชร์ประสบการณ์การใช้งาน Google Big Query กัน
ข้อมูลเพิ่มเติม
[Qlikview]