Thailand Big Data User Group #1

จัดโดย อ.​ Thanachart Numnonda ที่ Q.House ลุมพินี วันที่ 9 ม.ค. 2558 มีผู้เชี่ยวชาญทางด้าน Big Data มาร่วมด้วยคือ John Berns กับ Axel Winter มาร่วมวงด้วย งานนี้เกิดขึ้นค่อนข้างกะทันหัน แต่ก็จัดออกมาได้ดี อ. คุมเวลาได้น่าประทับใจมาก (ปกติงานแบบนี้จะลากยาว) จากที่ออกจากกะลาไปนั่งฟัง เขียนออกมาตามความสนใจส่วนตัวได้ตามนี้

  • Hadoop จากเวอร์ชั่น 1.x ไปเวอร์ชั่น 2.x มีการเปลี่ยนแปลงเยอะมาก เปลี่ยนไปแบบยกเครื่อง เวอร์ชั่น 1.x นั้นเวลาทำอะไรกับข้อมูลที่ Hadoop Distributed File System (HDFS) จะต้องผ่านส่วน MapReduce ก่อน แต่เวอร์ชั่น 2.x จะมี YARN มาทำหน้าที่เป็น Cluster Resource Management ทำให้อะไรๆ ก็ไม่ต้องขึ้นอยู่กับส่วนของ MapReduce อีกต่อไป ลองดูภาพข้างล่าง

    Hadoop Stack
    Hadoop Stack (credit: annovate.blogspot.com)
  • Hadoop ทั้งสามารถเป็นทั้ง Data Storage และสามารถนำไปใช้ประมวลผลได้ด้วย การใช้ Hadoop นั้นสามารถลดค่าใช้จ่ายได้เป็นอย่างมาก ถ้าเทียบกับการเก็บข้อมูลแบบปกติ แต่ที่น่าสนใจอย่างหนึ่งคือ Cloud Storage อย่าง S3 ของ AWS Amazon ยังคงมีค่าใช้จ่ายที่ถูกกว่า -- มาถึงตรงนี้ก็เกิดคำถามขึ้นมาในใจว่า แล้วเราจะเลือกใช้อะไร? ระหว่างจะตั้ง Hadoop Cluster เอง หรือว่าไปทำบน AWS Amazon ลองอ่านความคิดเห็นจาก What are the advantages of Amazon EMR, vs. your own EC2 instances, vs. running Hadoop locally? ดู จริงๆ แล้วมันก็ trade-off กันเนอะ การคำนึงถึง long-term solution ของธุรกิจของเราให้มากๆ แล้วก็การลองผิดลองถูกอาจจะช่วยตัดสินใจได้
  • Apache Drill เป็นตัวที่เกิดมาใหม่ คล้ายๆ Hive คือ เป็น Query Engine เหมือนกัน แต่มีความสามารถอย่างหนึ่งคือ Schema Discovery On-The-Fly นั่นคือเราไม่ต้องกำหนด Schema ให้กับข้อมูลก่อนเหมือนอย่าง Hive ซึ่งแน่นอนว่าฝ่าย Business สามารถย่นระยะห่างระหว่างตัวเองกับข้อมูลมากขึ้น ทำให้ Agile มากขึ้น แล้วก็ช่วยลดภาระทางฝั่ง IT ด้วย (ถ้าเป็น Hive ฝั่ง IT อาจจะต้องช่วยกำหนด Schema ให้)
  • Query Engine หมายความว่า Query อย่างเดียว 🙂 ไม่มี INSERT UPDATE หรือ DELETE
  • ตอนท้ายเป็น Open Discussion มีการอ้างถึง Use Case ต่างๆ บริษัทต่างๆ มีการปรับเปลี่ยนอย่างไรให้ทัน Technology ที่เกิดขึ้นใหม่มาแทบทุกวัน การตัดสินใจจะขึ้นอยู่กับข้อมูลแล้ว ไม่ใช่ขึ้นอยู่กับการมโนหรือการวางแผนเอาเอง เราอาจจะต้องลงทุนกับเวลาที่เสียไปเพื่อเลือก Technology ที่ใช่
  • มีการอ้างถึงคำพูดของ Amr A. Awadallah, CTO ของ Cloudera ว่า "Data goes to tape archives to die." สื่อออกมาประมาณว่า ข้อมูลที่โดน Archive ไปแล้ว จะค่อนข้างยาก หรืออาจจะมีค่าใช้จ่ายไม่ว่าจะเป็นทางด้านการเงินหรือเวลา ที่จะดึงกลับมาใช้งานหรือ Query ขึ้นมาได้อีก
  • เมื่อก่อน เนื่องด้วยข้อจำกัดทางด้านต่างๆ เวลาเราจะประมวลผลทางสถิติ หรือพัฒนาอัลกอริธึม Machine Learning ขึ้นมา เราจะ Sampling ข้อมูลมาแค่ส่วนหนึ่งเท่านั้นเพื่อมาแทนข้อมูลทั้งหมด แต่จะดีกว่าเยอะมากๆ ถ้าเราสามารถเอาข้อมูลทั้งหมดมาประมวลผลได้ ซึ่งสมัยนี้สามารถทำได้แล้ว Hadoop เป็น Technology หนึ่งที่ทำให้เราทำแบบนั้นได้
  • การเลือก Partner มาช่วยเรา ให้เลือก Partner ที่สามารถแนะนำเราได้ว่าอะไรคืออะไร แนะนำข้อดีข้อเสียได้ แต่อย่าไปเลือก Partner ที่มาบอกให้เราทำอะไร ซึ่งธุรกิจของเรา ข้อมูลของเรา ตัวเราเองเท่านั้นที่รู้ดีว่าควรจะทำอะไร
  • เทรนด์ในประเทศไทย ณ​ ตอนนี้ บริษัทต่างๆ เริ่มมีการนำ Hadoop เข้ามาใช้งานแล้ว แต่ส่วนใหญ่ยังใช้แค่เพื่อเก็บข้อมูลอยู่
  • ถ้าอยากเริ่มต้นศึกษาเรียนรู้ใช้แค่ Virtual Machine ก็สามารถเริ่มต้นได้แล้ว ไม่จำเป็นต้องรอให้มี Cluster จริงๆ เสียก่อน

จริงๆ มีเยอะกว่านี้แต่คงเขียนไม่ได้ออกมาหมด ใครสนใจลองเข้าไปติดตามเฟสบุคเพจ IMC Institute ต่อนะ ได้ยินมาว่าสไลด์ในงานจะโพสต์ไว้ที่นั่นครับ

ข้อสังเกต ในงานนี้ผมได้ยินคำว่า "Agile" บ่อยมาก ทั้งๆ ที่ไม่ใช่งาน Agile คำๆ นี้มันไปอยู่ทุกหนทุกแห่งจริงๆ 🙂

กราฟสถิติข้อมูลน้ำในเขื่อนภูมิพลปี 2009-2011

ข้อมูลนี้ผมนำมาจาก Thaiwater.net นะครับ คิดว่าเชื่อถือได้ 🙂 มี 3 กราฟหลักๆ ด้วยกัน ตามนี้


รูปแสดงปริมาตรเก็บกักน้ำในปี 2009-2011

จากกราฟข้างบน จะเห็นได้อย่างชัดเจนว่าตั้งแต่ประมาณกลางเดือน เม.ย. ปริมาตรน้ำในเขื่อนมีมากกว่าทั้งปี 2009 และปี 2010 ซึ่งเขื่อนภูมิพลจะรองรับได้ถึง 13,462 ล้าน ลบ.ม. พอตอนปลายๆ ก.ย. น้ำพุ่งถึงระดับสูงสุดที่เขื่อนจะรองรับได้ 🙁 ทีนี้มาดูปริมาณน้ำที่ไหลลงอ่างฯ กันบ้าง (ไม่ใช่อ่าง ในอาบ อบ นวด นะ อันนั้นน้ำล้นได้ไม่เป็นไร อะฮิๆ)


รูปแสดงปริมาณน้ำไหลลงอ่างฯ ในปี 2009-2011

ดูจากกราฟแล้ว ปริมาณน้ำที่ไหลลงอ่างฯ ของปี 2011 จะเริ่มเพิ่มขึ้นประมาณกลางเดือน เม.ย. ถ้าเทียบกับปี 2009 ปริมาณน้ำที่ไหลลงมาจะพอๆ กันจนถึงประมาณปลายเดือน มิ.ย. หลังจากนั้นเป็นต้นไป ปริมาณน้ำของปี 2011 จะมากกว่าจากทั้ง 2 กราฟข้างต้นนี้ จุดเริ่มต้นของปัญหามันน่าจะอยู่ที่ช่วงกลาง เดือน เม.ย. และจะเห็นได้ชัดเจนมากขึ้นตอน ปลายเดือนมิ.ย.

แล้ววิธีแก้? สำหรับคนที่ไม่มีความรู้ทางด้านการจัดการน้ำอย่างผม แต่เนื่องจากที่ผมทำงานทางด้านข้อมูลและสถิติมานานพอสมควร วิธีแก้ของผมนั้นง่ายมาก นั่นคือ ผมจะอ้างอิงข้อมูลสถิติจากปีก่อนๆ ว่าน้ำเข้ามามากเท่าไหร่ ควรปล่อยน้ำออกไปเท่าไหร่ มีส่วนเบี่ยงเบนมาตรฐานเท่าไหร่ แล้วค่อยมาดูว่าปีนี้เรามีน้ำเข้ามาเท่าไหร่ แล้วเราควรจะปล่อยน้ำออกไปเท่าไหร่ตามความเหมาะสม ข้อมูลทางสถิติเป็นอะไรที่เชื่อถือได้จริงสำหรับผม (จริงๆ ข้อมูลที่ผมนำมาเปรียบเทียบกันแค่ 3 ปีอาจจะน้อยไป แต่คิดว่าน่าจะพอเห็นภาพและเข้าใจได้) ทีนี้เรามีดูปริมาณการระบายน้ำของเขื่อนในปี 2009-2011 กัน


รูปแสดงปริมาณระบายน้ำในปี 2009-2011

ผมขอเทียบข้อมูลตั้งแต่กลางเดือน เม.ย. ของทั้ง 3 ปีนะครับ สังเกตได้ว่าปี 2011 มีปริมาณการปล่อยน้ำน้อยกว่าทั้งปี 2010 และ 2009 มาก ดูแล้ว "ไม่สมเหตุสมผล" เลย ปริมาณน้ำเข้ามากขึ้น เราก็ควรจะปล่อยน้ำมากขึ้น แต่นี่กลับปล่อยน้ำน้อยลง จนเกือบเป็น 0 โดยเฉลี่ยช่วงกลางเดือน พ.ค. ถึง ปลายเดือน มิ.ย. กราฟตอนต้นเดือน ต.ค. ยิ่งน่าตกใจ เพราะว่าเขื่อนได้ปล่อยน้ำออกมาสูงมากจนน่าตกใจ แต่ถ้าย้อนกลับไปดู 2 กราฟที่แล้ว จะเห็นได้ว่านี่เป็นการป้องกันเขื่อนพัง (ถ้าพังนี่หายนะจริงๆ นะ) หรือการแก้ปัญหาเฉพาะหน้า คาดว่าไม่ได้จงใจจะสร้างความเดือดร้อน แต่มันจำเป็นจริงๆ ที่ทุกคนต้องเดือดร้อน

ไม่ว่าจะมีปัจจัยภายนอกอะไรก็แล้วแต่ อย่างน้อยเราก็ควรจะอ้างอิงหลักสถิติไว้ เราถึงจะรับมือกับปัญหาได้ทันท่วงทีครับ บล็อกนี้ผมต้องการจะเน้นด้วยว่าหลักสถิตินั้นสำคัญ ไม่ควรเพิกเฉย สุดท้ายแล้วนี่คงเป็นเหตุผลหนึ่งที่ทำให้วิกฤตบังเกิดในปี 2011 เริ่มก่อตัวตั้งแต่ต้นเดือน ก.ค. และแสดงตัวออกมาตอนต้นเดือน ส.ค.

อย่างไรก็ตามผมก็ขอให้ทุกคนผ่านพ้นวิกฤตนี้ไปด้วยดีครับ เป็นกำลังใจให้ผู้ประสบอุทกภัยทุกท่าน -/\-

ปล. ใครที่อยากจะแสดงความคิดเห็น กรุณาอย่ามีการเมืองมาเกี่ยวข้องครับ ขอบคุณครับ