จบกันไปแล้วนะครับสำหรับงาน Thailand Big Data Hackathon ครั้งที่ 3 ในวันที่ 19-20 กันยายน 2015 ที่ผ่านมา ต้องขอขอบคุณทั้งทาง EGA, IMC, iRIS Cloud และทีมงาน STelligence ของเรานะครับที่ช่วยให้เกิดกิจกรรมดีๆแบบนี้ขึ้น
เนื่องจากมีเรื่องที่จะเขียนเยอะครับ เขียนทั้งหมดเดี๋ยวจะยาวไป วันนี้ผมขอพูดถึงระบบที่ทำการเตรียมให้ผู้แข่งขัน 30 กว่าชีวิต เข้ามานำข้อมูลจาก Big Data Platform มา Analyzed และทำ Visualization กันก่อนนะครับ ไว้วันหลังผมค่อยมาเล่าถึงบรรยากาศการแข่งขันให้ฟังกันอีกครั้งนะครับ ซึ่งก่อนจะเล่าวันนี้ต้องขอขอบคุณ อ.ธนชาติ จาก IMC ที่ช่วยอนุเคราะห์ระบบสำหรับในวันแข่งขันจริงมา ณ. ที่นี้ด้วยครับ
แน่นอนครับงานเราคืองาน Thailand Big Data Hackathon ดังนั้นข้อมูลที่เรานำมาวิเคราะห์จึงอยู่บน Hadoop ฺBig Data Platform เช่นกันครับ ผมเชื่อว่าใครก็ตามที่ติดตามเรื่อง Big Data ย่อมต้องได้ยินชื่อ Hadoop กันมาทุกคนอย่างแน่นอน
โดยส่วนตัวผมที่เคยติดตั้ง Apache Hadoop แบบเพียวๆมาก่อน รู้ว่าการติดตั้งไม่ใช่เรื่องง่ายๆ และด้วยระยะเวลาที่ค่อนข้างจำกัด ผมจึงเลือกใช้ Cloudera Manager เพื่อลดเวลาในการติดตั้ง Hadoop Cluster ลง ข้อดีของ Cloudera ก็คือตัว Cloudera เองได้เตรียม Package ที่จำเป็นในการใช้งานมาให้อย่างครบครัน อาทิเช่น Hive, Hua หรือว่า Impala ซึ่งเราได้ใช้ทุกตัวในงานนี้กันเลยนะครับ ข้อดีอีกอย่างของ Cloudera ก็คือ Cloudera ได้เตรียมระบบจัดการ Hadoop Cluster ให้อีกด้วย ทำให้น้องๆทีมงานของผมสามารถดูแลระบบในขณะที่ผมไม่อยู่ได้ด้วยครับ 🙂
ข้อมูลที่เรานำมาให้ผู้แข่งขันนำไปวิเคราะห์ในงานนี้ เราเตรียมข้อมูลไว้ให้ 2 ชุด คือ ข้อมูลสายการบินของอเมริกา เมื่อปี 2008 export ออกมารูปของ csv format file และข้อมูลการซื้อขายเกมส์ Online ที่จะจาก Apache Web Access log สาเหตุที่เราเตรียมข้อมูล 2 แบบมา ก็เพราะว่าเราอยากให้ผูแข่งขันได้มีโอกาสลอง และเลือกข้อมูลที่จะนำมาวิเคราะห์ทั้งแบบที่เป็น Structured Data และ Unstructured Data กันครับ
สงสัยกันมั๊ยครับว่า Structured Data และ Unstructured Data คืออะไร ผมอธิบายให้ฟังสั้นๆนิดนึงละกันครับ จะได้ไม่งง ข้อมูล Structured Data คือ ข้อมูลที่มีลักษณะของเนื้อหาที่มี pattern แน่นอน อย่างเช่น csv file ที่เมื่อเปิดข้อมูล csv file ขึ้นมาจะเห็นว่าข้อมูลแต่ละ column จะถูกแบ่งด้วย commas “,” และลักษณะของเนื้อข้อมูลถูกแบ่งไว้อย่างแน่นอน ตัวอย่างตามรูปด้านล่างนะครับ (ซึ่งจะมี column name อยู่ด้านบนสุด) ส่วน Unstructured Data จะเป็นข้อมูลที่ลักษณะของเนื้อข้อมูลมี pattern ที่ไม่แน่นอน ก็อย่างเช่น Web Access log ที่เราเตรียมมาให้นี่แหละครับ
ในการแข่งขันนี้ผู้เข้าแข่งขันจะใช้ Tools ที่ชื่อ Tableau เข้ามาช่วยในการทำ Visualization อันเนื่องมากจากตัว Tableau เองเป็น BI (Business Intelligence) ที่ใช้งานง่าย ผู้เข้าแข่งขันสามารถนำ Tools ไป Connect กับข้อมูลและนำมาทำ Visualization ได้อย่างรวดเร็ว แต่ข้อจำกัดของ BI Tools ทุกยี่ห้อและการ Analyzed ข้อมูลบน Hadoop โดยที่ไม่ต้องเขียนโปรแกรม Map Reduce Job เอาเองก็คือ ไม่สามารถ Analyzed ข้อมูลที่เป็น Unstructured Data ได้นั่นเองครับ
ขอพูดถึงข้อมูลแรกก่อน ก็คือข้อมูลสายการบินที่เป็น csv file ที่เป็น Structured Data ก่อน ทางทีมทำการโหลดข้อมูลผ่าน Hive เข้าไปบน Hadoop และ Query ด้วย Impala ซึ่งผู้เข้าแข่งขันสามารถใช้ Tableau ซึ่งเตรียม connector ให้เชื่อมต่อไปหา Impala แล้วนำข้อมูลมา Analyzed และทำ Visualization ได้โดยตรงอย่างง่ายดายครับ
ทีนี้ในส่วนของข้อมูลที่เป็น Unstructured Data จะทำอย่างไรดีครับ ในเมื่อ Tableau ไม่รองรับที่จะคุยด้วย อีกทั้งเราก็ไม่อยากที่ต้องมาแปลงข้อมูลที่เป็น Unstructured ให้เป็น Structured ก่อนใส่เข้าไปใน Hadoop เราจึงใช้อีก Tools เข้ามาช่วยครับ เจ้า Tools นี้ชื่อว่า Hunk เป็นหนึ่งใน Tools ของ Splunk ซึ่งเป็น Tools ที่ช่วยให้ผู้ใช้งานสามารถ connect เข้าไปอ่าน file บน Hadoop ได้ โดยเราไม่สนใจว่าข้อมูลที่เราจะทำการวิเคราะห์เป็น Structured หรือ Unstructured ครับ
จากรูปเราจะเห็นได้เลยว่า Hunk สามารถอ่าน File Web Access log ได้โดยตรงอีกทั้งยังใส่และสรุป Knowledge ของข้อมูล เช่น clientip, http_status จากข้อมูล Web Access log ที่เป็น Unstructured Data ได้เลย แสดงให้เห็นทางซ้ายมือของรูปด้านบนครับ ซึ่งเราสามารถใช้ความสามารถ Data Model ของ Hunk เพื่อเปลี่ยนข้อมูลที่เป็น Unstructured Data ให้กลายเป็น Structured Data ได้อย่างแสนง่ายดาย เพื่อให้ Tableau เข้ามา Connect ที่ Hunk และนำไป Analyzed และทำ Visualization ต่อได้เลย
ผู้เข้าแข่งขันยังสามารถเลือกใช้ Hunk นำมา Analyzed ข้อมูลและทำ Visualization ได้ในตัว Hunk เองก็ยังได้นะครับ ซึ่งจากที่เห็นในงานส่วนมากแต่ละทีมที่ลงแข่งขันจะเลือกใช้ Tableau นำมาทำ Visualization กันครับ แต่ก็มีทีมที่เลือกใช้ Hunk เข้ามาทำ Visualization เช่นกัน
นี่ก็เป็นภาพรวมของระบบที่เราทำการเตรียมให้ผู้แข่งขันในงานวันนั้นครับ วันนี้อาจจะเป็นเชิงเทคนิคซักหน่อย ไว้วันหลังผมจะมาเล่าให้ฟังถึงบรรยากาศในงานให้ฟังนะครับ ไว้พบกันใหม่ครับ 🙂