เทคโนโลยีสำหรับ Big Data: Storage และ Analytics

 

เมื่อพูดถึง Big Data หลายๆคนก็คงเริ่มเข้าใจความหมายของ 3Vs (Volume, Velocity, Variety) และเริ่มที่จะเห็นภาพว่าข้อมูลจะมีขนาดใหญ่ขึ้นและมีหลากหลายรูปแบบ ดังนั้นจึงไม่แปลกใจที่หลายองค์กรจำเป็นต้องปรับ Information Infrastructure เพื่อให้รองรับกับการบริหารจัดการ Big Data ได้

เทคโนโลยีฐานข้อมูลเดิมที่เป็น RDBMS และภาษา SQL ก็ยังคงอยู่แต่การที่จะนำมาใช้ในการเก็บข้อมูลขนาดใหญ่มากๆเป็นหลายร้อย TeraByte หรือนับเป็น PetaByte อาจไม่สามารถทำได้และอาจมีต้นทุนที่สูงเกินไป และยิ่งถ้าข้อมูลเป็นแบบ  Unstructure ก็คงไม่สามารถจะเก็บได้ นอกจากนี้การจะประมวลผลข้อมูลหลายร้อยล้านเรคอร์ดโดยใช้เทคโนโลยี  RDBMS ผ่านภาษา SQL ก็อาจใช้เวลานานและบางครั้งอาจไม่สามารถประมวลผลได้

Screenshot 2015-09-26 21.57.56

รูปที่ 1  ตัวอย่างของ Big Data Technology

ด้วยเหตุนี้จึงเริ่มมีการคิดถึงเทคโนโลยีอื่นๆในเก็บและประมวลผลข้อมูลที่เป็น Big Data ดังที่ได้แสดงตัวอย่างในรูปที่ 1 ซึ่งหากเราแบ่งเทคโนโลยีเป็นสองด้านคือ การเก็บข้อมูล (Storage) และการประมวลผล/วิเคราะห์ข้อมูล (Process/Analytics) เราอาจสามารถจำแนกเทคโนโลยีต่างๆได้ดังนี้

เทคโนโลยีการเก็บข้อมูล

ข้อมูลที่เป็น Big Data อาจจะมีขนาดใหญ่เกินกว่าที่เทคโนโลยีการเก็บข้อมูลแบบเดิมที่เรามีอยู่เก็บได้หรืออาจเจอปัญหาในแง่โครงสร้างของข้อมูลที่อาจไม่เหมาะกับเทตโนโลยี RDBMS ตัวอย่างเช่น Telecom operator อาจต้องการเก็บข้อมูล Call Detail Records (CDR) ที่อาจมีปริมาณสูงถึง 1 TeraByte ต่อวันเป็นระยะเวลายาวนานขึ้น หรือเราอาจต้องเก็บข้อมูลในอีเมลจำนวนมากที่เป็นรูปแบบของ Text File  หรือเก็บภาพจากกล้อง CCTV จำนวนหลายสิบ TB หรืออาจต้องการเก็บข้อมูลจาก Facebook ซึ่งข้อมูลต่างๆเหล่านี้ที่กล่าวมา อาจไม่เหมาะกับเทคโนโลยีฐานข้อมูลแบบเดิม RDBMS ที่เป็น Vertical Scaling

จากที่กล่าวมาจึ่งได้มีการนำเทคโนโลยีต่างๆเข้ามาเพื่อที่จะให้เก็บข้อมูลได้มากขึ้น โดยมีเทคโนโลยีต่างๆอาทิเช่น

  • ฐานข้อมูล  RDBMS แบบเดิม ก็ยังเป็นเทคโนโลยีที่เหมาะสมที่สุดในการเก็บข้อมูลแบบ Structure แต่ถ้าข้อมูลมีขนาดใหญ่มากก็จะเจอปัญหาเรื่องต้นทุนที่สูง  และหากข้อมูลมีจำนวนเป็น PetaByte ก็คงยากที่จะเก็บ ถึงแม้ในปัจจุบันจะมี MPP Datanbase อย่าง Oracle ExaDta หรือ SAP HANA แต่ราคาก็สุงมาก
  • Hadoop HDFS เป็นเทคโนโลยีที่มีการคาดการณ์ว่าหน่วยงานส่วนใหญ่จะต้องใช้ในอนาคต เพราะมีความต้องการเก็บข้อมูลขนาดใหญ่ทั้งที่เป็น Unstrucure Data หรือนำข้อมูลที่เป็น structure มาเก็บไว้ โดยสามารถจะเก็บข้อมูลได้เป็น PetaByte ทั้งนี้ขึ้นอยู่กับจำนวนเครื่องที่มีอยู่ในลักษณะ scale-out ข้อสำคัญ Hadoop มีต้นทุนที่ค่อนข้างต่ำเมื่อเทียบกับเทคโนโลยีการเก็บข้อมูลแบบอื่น ดังแสดงในรูปที่ 2
  • NoSQL เป็นเทคโนโลยีที่ต้องการเก็บข้อมูลจำนวนมากกว่าของ RDBMS ในลักษณะ scale-out เป็นจำนวนหลาย TeraByte แต่อาจไม่ได้เน้นเรื่อง Consistency หรือ ACID ของข้อมูลมากนัก เหมาะกับ Application บางประเภท ทั้งนี้เราสามารถจะแบ่งเทคโนโลยี NoSQL ออกไปได้สี่กลุ่มคือ Column Oriented, Document Oriented, Key-Value และ Graph
  • Cloud Storage ข้อมูลขนาดใหญ่ขององค์กรบางส่วนอาจต้องเก็บไว้ใน Public Cloud Storage เช่น  Amazon S3 โดยเฉพาะข้อมูลภายนอกอาทิเช่น Social Media Data หรือข้อมูลที่เป็น Archiving  ที่ไม่ได้มีความสำคัญมาก เพราะ Cloud Storage จะมีราคาในการเก็บที่ถูกสุด และสามารถที่จะเก็บได้โดยมีขนาดไม่จำกัด แต่ข้อเสียคือเรื่องความปลอดภัยและความเร็วในการถ่ายโอนข้อมูล

Screenshot 2014-11-17 16.27.33

รูปที่  2  เปรียบเทียบราคาของ Storage Technology

เทคโนโลยีการประมวลผลข้อมูล

การประมวลผลข้อมูลที่เป็น Big Data จะมีทั้งการวิเคราะห์ข้อมูลที่เป็น business intelligence (BI) เพื่อที่จะดึงข้อมูลมานำเสนอ หรือการทำ Predictive Analytics โดยใช้หลักการของ Data Science ความยากของการประมวลผลคือต้องการความเร็วในการประมวลผลข้อมูลที่นอกจากมีขนาดใหญ่แล้วบางครั้งยังเป็นข้อมูลที่ไม่มีโครงสร้าง ดังนั้นต้องจึงมีการนำเทคโนโลยีหรือภาษาต่างๆมาเพื่อให้สามารถประมวลผลข้อมูลได้ ซึ่งในบางครั้งหน่วยงานอาจต้องพิจารณาต้องเลือกใช้ อาทิเช่น

  • SQL  ก็เป็นภาษาที่ยังต้องใช้ในการประมวลผลข้อมูลโดยเฉพาะ Structure  Data ที่เก็บอยู่ใน RDBMS และสามารถประมวลผลแบบ RealTime ได้
  • APIs ข้อมูลที่เก็บอยู่ใน Storage ต่างๆที่กล่าวมาข้างต้นเช่น NoSQL หรือ Cloud Storage  อาจต้องพัฒนาโปรแกรมด้วยภาษาคอมพิวเตอร์ต่างๆ ในการประมวลผลข้อมูลโดยใช้  APIs ในการเข้าถึงข้อมูล
  • MapReduce เป็นเทคโนโลยีที่พัฒนาโดย Google ในการประมวลผลข้อมูลที่อยู่ใน HDFS โดยใช้ภาษาคอมพิวเตอร์อย่าง Java ในการพัฒนาโปรแกรม โดยจะประมวลผลแบบ Batch และเป็นวิธีการประมวลผลที่มากับเทคโนโลยี  Hadoop
  • Hive หรือ Pig เป็นภาษาคล้าย SQL หรือ Scripting ที่ทำให้เราสามารถประมวลผลข้อมูลที่อยู่ใน Hadoop HDFS ได้โดยไม่ต้องพัฒนาโปรแกรม MapReduce แต่ทั้งนี้ข้อมูลจะต้องอยู่ในรูปแบบที่เหมาะสมเช่น  ไฟล์ csv หรือ ไฟล์ข้อความบางประเภท
  • Impala  เป็นภาษาคล้าย SQL ที่ทำให้เราสามารถประมวลผลข้อมูลที่อยู่ใน Hadoop HDFS ได้ โดยทำงานได้รวดเร็วกว่า Hive มาก แต่มีข้อเสียคือเป็นภาษาที่เป็น proprietary ของ  Cloudera
  • Spark เป็นเทคโนโลยีที่สามารถประมวลผลข้อมูลขนาดใหญ่แบบ Real-time  โดยอาจมี Data Source มาจากหลากหลายแหล่งเช่น  RDBMS, Cloud Storage, NoSQL หรือ Hadoop  ซึ่งสามารถเขียนโปรแกรมโดยใช้ภาษา Scala, Java, Python หรือจะเขียนโดยใช้ภาษาคล้าย SQL ก็ได้ และมี  Library สำหรับการทำ Data Science คือ  MLib  เป็นเทคโนโลยีที่น่าสนใจมากอันหนึ่ง
  • ภาษาและเทคโนโลยีในการทำ Machine Learning  ซึ่งก็จะมีหลากหลายทั้ง R Hadoop, Mahout, Azure Machine Learning  หรือ AWS ML
  • เทคโนโลยีสำหรับการทำ Data Visualisation และ BI อาทิเช่น Tableau, Pentaho, SaS, Excel  และอื่นๆ

จากที่กล่าวมาทั้งหมดนี้ ถ้าหน่วยงานจะมีโครงการ Big Data และข้อมูลมีขนาดใหญ่จริง เราคงต้องเลือกหาเทคโนโลยีที่เหมาะสมมาใช้งาน

ธนชาติ นุ่มนนท์

IMC Institute

สิงหาคม 2558

โครงการ Big Data กับความจำเป็นต่อการลงทุนด้านเทคโนโลยี

คำถามหนึ่งที่เรามักจะเจอบ่อยคือ “ข้อมูลใหญ่ขนาดไหนถึงจะเรียกว่า Big Data” หรือบางทีเราก็มักจะเจอคำถามว่า “เราต้องซื้อ Product อะไรเพื่อมาทำโครงการ Big Data เราต้องลงทุนซื้อเทคโนโลยี Hadoop หรือไม่” จริงๆแล้ว Big Data มันก็เป็นศัพท์ทางการตลาดที่พยายามจะบอกให้ผู้คนเข้าใจได้ว่าข้อมูลในปัจจุบันมีขนาดใหญ่ขึ้น (Volume) เพิ่มขึ้นอย่างรวดเร็ว (Velocity) มีรูปแบบที่หลากหลาย (Variety) และมีความไม่แน่นนอน(Vacirity) ซึ่งข้อมูลมหาศาลเหล่านี้มีทั้งข้อมูลภายใน ภายนอกองค์กรหรือจาก Social Media การที่ข้อมูลปัจจุบันเป็นอย่างนี้ถ้าใครรู้จักนำข้อมูลเหล่านี้มาวิเคราะห์มาใช้งานก็จะเป็นประโยชน์ต่อองค์กรมหาศาล หลายองค์กรเริ่มสนใจจะทำโครงการ Big Data แต่บางครั้งไปเริ่มที่ฝ่ายไอที ก็มักจะกลายเป็นโจทย์ในการหาโซลูชั่นหรือ Product ซึ่งพอเป็นโครงการอย่างนี้บางทีก็คิดว่าจะต้องลงทุนด้วยงบประมาณสูงๆ ทางบริษัท Vendor ต่างๆก็จะพยายามนำเสนอโซลูชั่นราคาแพงที่สามารถเก็บข้อมูลจำนวนมหาศาลได้และสามารถประมวลผลได้อย่างรวดเร็วทั้งๆที่อาจยังไม่รู้ด้วยว่าจะนำโซลูชั่นไปวิเคราะห์ข้อมูลอะไร โครงการ Big Data ที่ดีควรเริ่มที่ฝั่งธุรกิจ ควรจะต้องพิจารณาก่อนว่าต้องการทำอะไร อาทิเช่นต้องการหาข้อมูลลูกค้าเพิ่ม วิเคราะห์ความเสี่ยง พยากรณ์ยอดขาย ทำ Social Media Analysis. ต้องการคาดการณ์ความต้องการของลูกค้า ซึ่งโจทย์แต่ละอย่างอาจมีความต้องการข้อมูลที่แตกต่างกัน Product ที่ต่างกันและวิธีการวิเคราะห์ข้อมูลต่างกัน

Screenshot 2015-07-30 11.22.37

Big Data มีองค์ประกอบที่สำคัญสามอย่าง

  • Data Source คือแหล่งข้อมูลที่าจจะเป็นข้อมูลภายในองค์กร หรือข้อมูลภายนอกองค์กร หรืออาจต้องนำข้อมูลจากSocial Media มาใช้ ข้อมูลอาจเป็นข้อมูลรูปแบบเดิมที่เป็น structure หรือข้อมูลแบบใหม่ที่เป็น unstructure แต่หลักการหนึ่งที่สำคัญในเรื่องของ Big Data คือถ้าเรามีข้อมูลมากขึ้นก็น่าจะมีประโยชน์ต่อองค์กรมากขึ้นตาม
  • Technology คือโซลูชั่นที่จะช่วยทำให้เราสามารถจะเก็บข้อมูลและประมวลผลได้รวดเร็วขึ้น การจะใช้เทคโนโลยีใดก็ขึ้นอยู่กับข้อมูลที่ต้องการ ถ้าขนาดข้อมูลไม่ได้มากไปข้อมูลที่ต้องการยังเป็นแบบเดิมก็อาจใช้เทคโนโลยีแบบเดิมในการเก็บ หรือถ้าข้อมูลมีจำนวนมากก็อาจพิจารณาเทคโนโลยใหม่ๆที่เป็น Hadoop หรือ MPP รวมถึงอาจต้องพิจารณาเครื่องมือต่างๆในการวิเคราะห์ข้อมูลเช่น BI หรือ Analytics Tool
  • Analytics คือกระบวนการในการนำข้อมูลมาวิเคราะห์ ทั้งนี้ก็ขึ้นอยู่กับโจทย์ว่าต้องการทำอะไรงานบางอย่างก็อาจใช้เครื่องมือ BI ทั่วๆไปแต่งานบางงานก็อาจต้องหาผู้เชี่ยวชาญที่เป็น Data Scientists เข้ามาช่วย โดยเฉพาะกรณีที่ต้องการใช้ข้อมูลเพื่อคาดการณ์ต่างๆที่อาจต้องหาอัลกอริทึมที่เหมาะสม

จากที่กล่าวมาจะเห็นว่าบางครั้งโครงการ Big Data อาจไม่ต้องลงทุนซื้อเทคโนโลยีใดเลยก็ได้ ถ้าเริ่มจากความต้องการทางธุรกิจและเข้าใจว่าต้องการ Data Source และต้องวิเคราะห์ข้อมูลอย่างไร

ธนชาติ นุ่มนนท์

IMC Institute

กรกฎาคม 2558

 

การติดตั้งและเปรียบเทียบ Hadoop Distribution ต่างๆ

 

Hadoop เป็นหนึ่งในเทคโนโลยีการทำ Big Data ที่กำลังเป็นที่นิยมอย่างมากเนื่องจากมีความสามารถในการเก็บข้อมูลนับเป็น PetaByte และนำมาใช้งานในเว็บใหญ่ๆและหน่วยงานต่างๆจำนวนมากอาทิเช่น Yahoo หรือ Facebook  แม้ Hadoop จะเป็น Open Source แต่ก็มีผู้ผลิตหลายรายต่างทำ Distribution ของ Hadoop ออกมาอาทิเช่น IBM, Amazon, Intel, Microsoft, Cloudera และ Hortonworks เป็นต้น โดย Forrester Research ได้เปรียบเทียบ Hadoop Distribution ต่างๆในรูปที่ 1

Screenshot 2015-05-23 08.59.33

รูปที่ 1 การเปรียบ Hadoop Distribution ของ Forrester Research

Hadoop Distribution แบ่งออกเป็น 4  กลุ่ม ดังแสดงในรูปที่ 2

  • Apache Open source: ตัวที่เป็น Open Source Project ของ Apache ที่เราสามารถ Download ได้จากเว็บ hadoop.apache.org
  • Hadoop Software Vendors: กลุ่มนี้คือผู้ผลิตที่ไม่ได้ผูกติดกับ Hardware Vendor โดยสามารถจะติดตั้ง  Hadoop Distribution กับ Server ค่ายใดก็ได้ กลุ่มนี้จะเป็นผู้นำตลาดด้าน Hadoop โดยมีรายหลักสามรายคือ Cloudera, Hortonworks และ MapR
  • Hadoop Distribution ของผู้ผลิต Hardware: ผู้ผลิต Hardware บางรายก็จะทำ Hadoop Distribution ออกมา และมักจะแนะนำให้ผู้ใช้เลือกใช้เครื่อง Server ของตัวเองอาทิเช่น IBM Inforsphere BigInsight, Pivotal HD ของ EMC และ Teradata
  • Hadoop Distribution ของผู้ให้บริการ Cloud: กลุ่มนี้จะเป็น Hadoop ที่รันอยู่บน Cloud เท่านั้นและไม่สามารถติดตั้งบน Server ทั่วไปได้ ตัวอย่างของ Hadoop ในกลุ่มนี้คือ Amazon EMR และ  Microsoft Azure HDInsight

Screenshot 2015-05-23 08.59.41

รูปที่ 2 ประเภทของ Hadoop Distribution

ผมเองเคยทดลองใช้และติดตั้ง Hadoop Cluster สำหรับ Distribution ต่างๆดังนี้ Apache Hadoop, Cloudera, Hortonworks, Amazon EMR, Microsoft Azure และ Google Cloud Platform ซึ่งการติดตั้ง Hadoop Cluster จะมีปัญหาในเรื่องการหา Server ผมจึงเลือกใช้ Virtual Server ที่อยู่บน Cloud ที่เป็น EC2 ของ Amazon Web Services หรือไม่ก็จะเลือกใช้ Hadoop as a Services ที่อยู่บน Cloud ซึ่งง่ายต่อการติดตั้ง สำหรับเอกสารการติดตั้ง Hadoop Distribution ต่างๆที่ผมและทีมงานเคยเขียนไว้หรือจากแหล่งอื่นๆมีดังนี้

จากการทดลองติดตั้งใช้งาน Cluster ต่างๆ ขอเปรียบเทียบดังนี้

  • Apache Hadoop Distribution: มีข้อเด่นคือเป็น Opensource และไม่ต้องห่วงเรื่อง License การใช้งานแต่มีข้อจำกัดคือเราต้องบริหารจัดการ Distribution ต่างๆของ Hadoop เอง ซึ่งบางครั้งอาจจะเจอปัญหาเรื่อง Bug หรือ Conflict ระหว่าง version ตัวอย่างเช่น Flume 1.5 อาจจะต้องปรับบางไฟล์เพื่อให้ทำงานกับ Hadoop 2.7 ได้ นอกจากนี้ขั้นตอนในการติดตั้งต่างๆจะยากกว่า Distribution ต่างๆ
  • Hortonworks สามารถติดตั้งได้โดยง่ายแต่ผู้ใช้ต้องจัดการลง SSH ในแต่ Server เอง ข้อดีอีกอย่างคือมี โปรแกรมบริหาร Cluster ทีเป็น Opensource ที่ชื่อ Ambari ทำให้เพิ่มหรือลด Server  ได้โดยง่าย

Screenshot 2015-05-23 09.13.03

  • Cloudera น่าจะเป็น  Distribution ทีติดตั้งได้ง่ายที่สุดที่ผมได้ทดลองมา ข้อดีอีกอย่างคืมีโปรแกรม  Hue ที่ช่วยทำ Web GUI สำหรับผู้ต้องการใช้งาน Hadoop ส่วนโปรแกรมจัดการ Cluster คือ  Cloudera Manager นั้นอาจผูกติดกับบริษัท Cloudera ไปหน่อย

Screenshot 2015-05-23 09.13.13

  • Hadoop as a Service on Cloud มีข้อดีคือติดตั้งได้โดยอัตโนมัติ เราเพียงแต่บอกขนาดของ Server จำนวนโหนด และซอฟต์แวร์ที่ต้องการจะติดตั้ง จากประสบการณ์ของผมค่อนข้างจะชอบของ  Amazon EMR มากสุด แต่การใช้งาน Hadoop as a Service มีข้อจำกัดตรงต้องใช้ Hadoop และ Ecosystem  ตามที่ผู้ให้บริการ Cloud กำหนดมาเท่านั้น เราไม่สามารถเลือกใช้เองได้

ผมคิดว่าทางที่ดีที่สุดสำหรับผู้ต้องการทดลองทำ Big Data คือทดลองติดตั้ง Hadoop Distribution ใดก็ได้บน Cloud Server แล้วเราจะเข้าใจระบบและการใช้งานได้ดีขึ้น

ธนชาติ นุ่มนนท์

IMC Institute

พฤษภาคม 2558

Big Data บน Public Cloud

ผมไม่ได้เขียนบล็อกมาสองเดือนกว่า เพราะยุ่งอยู่กับการศึกษาเรื่อง Big Data  เตรียมการสอนและเปิดหลักสูตรใหม่ๆอาทิเช่น

  • เปิดหลักสูตร Big Data Certification จำนวน 120 ชั่วโมงที่มีผู้เข้าร่วมอบรมกว่า30 คน
  • เปิดหลักสูตร Introduction to Data Science เมื่อต้นเดือนเมษายน ก็เน้นสอนเรื่องของ Hadoop, R และ Mahout  ในการทำ Machine Learning รุ่นแรกมีคนเช้ามาเรียน 20 กว่าท่าน
  • ปรับปรุงเนื้อหาหลักสูตร Big Data using Hadoop Workshop โดยมีการนำ Cloud Virtual Server ของ AWS มาใช้ในการอบรม และเปิดอบรมรุ่นแรกของปีนี้เมื่อปลายเดือนมีนาคม มีคนอบรม 30 คน
  • ปรับปรุงเนื้อหา Big Data Programming using Hadoop for Developer  โดยมีการเน้นการใช้ Cluster ขนาดใหญ่บน  Amazon EMR มากขึ้น และเปิดอบรมไปเมื่อเดือนกุมภาพันธ์
  • จัดฟรีสัมมนา Big Data User Group แก่บุคคลทั่วไปเพื่อให้เข้าใจเรื่อง Big Data Analytics โดยจัดไปเมื่อต้นเดือนมีนาคม
  • เปิด Hadoop Big Data Challenge เพื่อคนทั่วไปสามารถมาทดลองวิเคราะห์ข้อมูลขนาดใหญ่บน Hadoop Cluster  ที่รันอยู่บน AWS จำนวนกว่า 40 vCPU

จากการทำงานด้านนี้ในช่วงสองเดือนที่ผ่านมา ทำให้ได้ประส[การณ์และข้อมูลใหม่ๆพอควร โดยเฉพาะประสบการณ์การติดตั้ง Hadoop  หรือ NoSQL บน Public Cloud ซึ่งข้อดีของการใช้ Public Cloud คือเราไม่ต้องจัดหา  Server  ขนาดใหญ่จำนวนมาก และสามารถ Provision ระบบได้อย่างรวดเร็ว แต่มีข้อเสียคือค่าใช้จ่ายระยะยาวจะแพงกว่าการจัดหา  Server เอง และถ้ามีข้อมูลจำนวนมากที่ต้อง Transfer ไปอาจไม่เหมาะสมเพราะจะเกิดความล่าช้า นอกจากนี้ยังอาจมีปัญหาเรื่องความปลอดภัยของข้อมูล

แต่การใช้ Public Cloud จะเหมาะมากกับการใช้งานเพื่อเรียนรู้ หรือการทำ Development  หรือ Test Environment นอกจากนี้ยังมีบางกรณีที่การใช้ Public Cloud มาทำ Big Data Analytics อาจมีความเหมาะสมกว่าการจัดหา Server ขนาดใหญ่มาใช้งานเอง อาทิเช่น

  • กรณีที่ระบบปัจจุบันขององค์กรทำงานอยู่บน Public Cloud  อยู่แล้ว อาทิเช่นมีระบบ Web Application ที่รันอยู่บน Azure  หรือมีระบบอยู่  Salesforce.com
  • กรณีที่ข้อมูลที่ต้องการวิเคราะห์ส่วนใหญ่เป็นข้อมูลภายนอกที่อยู่บน Cloud เช่นการวิเคราะห์ข้อมูลจาก Facebook  ที่การนำข้อมูลขนาดใหญ่เหล่านั้นกลับมาเก็บไว้ภายในจะทำให้เปลืองเนื้อที่และล่าช้าในการโอนย้ายข้อมูล
  • กรณีที่มีโครงการเฉพาะด้านในการวิเคราะห์ข้อมูลขนาดใหญ่เพียงครั้งคราว ซึ่งไม่คุ้มค่ากับการลงทุนจัดหาเครื่องมาใช้เอง

การใช้ Public Cloud สำหรับการวิเคราะห์ข้อมูลโดยใช้  Hadoop หรือ NoSQL มีสองรูปแบบคือ

1)  การใช้ Virtual Server  ในการติดตั้ง Middleware อาทิเช่นการใช้ EC2 ของ  AWS หรือ Compute Engine ของ Google Cloud  มาลงซอฟต์แวร์ ข้อดีของวิธีการนี้คือเราสามารถเลือกซอฟต์แวร์มาติดตั้งได้ เสมือนกับเราจัดหา Server มาเอง และสามารถควบคุมการติดตั้งได้ ที่ผ่านมาผมได้เขียนแบบฝึกหัดที่ติดตั้งระบบแบบนี้อยู่หลายแบบฝึกหัดดังนี้

2)   การใช้  PaaS ที่อาจเป็น Hadoop as a Service หรือ NoSQL as a Service  ซึ่งในปัจจุบัน Public Cloud รายใหญ่ๆทุกค่ายจะมีระบบอย่างนี้ เช่น  EMR สำหรับ Hadoop  และ Dynamo DB สำหรับ  NoSQL บน AWS หรือค่ายอย่าง  Microsoft Azure ก็มี HDInsight สำหรับ Hadoop และ DocumentDB สำหรับ NoSQL ข้อดีของระบบแบบนี้คือ เราจ่ายตามการใช้งานไม่ต้องรัน Server ไว้ตลอด, ติดตั้งง่ายเพราะผู้ให้บริการ  Cloud ลงระบบมาให้แล้ว แต่ข้อเสียก็คือเราไม่สามารถปรับเปลี่ยนซอฟต์แวร์ที่ติดตั้งได้เอง อาทิเช่น Hadoop ที่อยู่บน EMR มีให้เลือกแค่ Amazon  Distribution หรือ MapR  Distribution ผมเองก็ได้เขียนแบบฝึกหัดlสำหรับการใช้ Amazon EMR ไว้ดังนี้

สำหรับผู้ที่ต้องการศึกษาการติดตั้ง Hadoop Cluster  ผมอาจแนะนำให้ใช้ Google Cloud Platform ครับ เพราะระบบมีให้ทดลองใช้ 60 วัน โดยเราสามารถที่จะลองใช้ Compute Engine ขนาด 4 vCPU ได้ (ดูขั้นตอนการติดตั้ง Hadoop บน Google Cloud ตามนี้) และถ้าต้องการใช้ Hadooo[ as a Service ผมแนะนำให้ใช้ Amzon EMR ตามแบบฝึกหัดข้างต้น แต่ก็มีค่าใช่จ่ายในการรันแต่ละครั้ง

วันนี้ขอแค่นี้ครับและอาจเขียนออกเป็นเทคนิคมากหน่อยครับ เพราะไม่ได้เขียนบล็อกมาหลายสัปดาห์ มัวแต่ไปเขียนแบบฝึกหัดที่เป็นด้านเทคนิคให้ผู้เข้าอบรมได้เรียนกัน

ธนชาติ นุ่มนนท์

IMC Institute

เมษายน 2558

กลยุทธ์ Big Data สำหรับประเทศไทย

 

สัปดาห์ที่ผ่านมา IMC Institute จัดแถลงข่าวเรื่อง Big Data Trends โดยผมได้ชี้ให้เห็นว่าในช่วง 2-3 ปีนี้เราจะเห็นถึง Mega-Trends ทางด้านไอทีอยู่  3 อย่างคือ

Screenshot 2015-01-25 16.04.17

รูปที่ 1  IT Mega Trends 2015

  • Internet of Things  อุปกรณ์ในการเชื่อมต่ออินเตอร์เน็ตจะไม่จำกัดอยู่แค่ เครื่องพีซี Smartphone หรือ  Tablet แต่จะรวมไปถึงอุปกรณ์ต่างๆตั้งแต่นาฬิกา, wearable technology, เครื่องใช้ไฟฟ้า และสิ่งของต่างๆ ซึ่งมีการคาดการณ์ว่าจะมีอุปกรณ์เหล่านี้ถึง 50,000 ล้านชิ้นในปี 2020
  • Cloud Computing ระบบการประมวลผลจะขึ้นบนอินเตอร์เน็ตมาจากที่ใดก็ได้ และข้อมูลจะตามเราไปทุกที่ ทุกเวลา และทุกอุปกรณ์
  • Big Data เมื่อมีอุปกรณ์ต่ออินเตอร์เน็ตมากขึ้น ข้อมูลก็จะมากขึ้น จะมีหลายรูปแบบ และเพิ่มขึ้นอย่างรวดเร็ว มีการคาดการณ์ว่าจะมีข้อมูลมากถึง 35 ZByte ในปี 2025 ดังนั้นต่อไปใครที่สามารถนำข้อมูลมหาศาลเหล่านี้มาวิเคราะห์ได้ก็จะได้เปรียบเหนือคู่แข่ง

กระแสเรื่อง Big Data เป็นเรื่องที่เราหลีกเลี่ยงไม่ได้ เพราะ Big Data ไม่ใช่แค่เรื่องของไอที ไม่ใช่แค่มองเรื่องของการเก็บข้อมูล แต่เป็นเรื่องของทางด้านธุรกิจและผู้ใช้ที่จะมองวิธีการในการนำข้อมูลมาวิเคราะห์และคาดการณ์ต่างๆเพื่อให้ได้ประโยชน์ จึงไม่แปลกใจที่เห็นบริษัท E-Commerce รายใหญ่ๆในโลกสามารถวิเคราะห์ข้อมูลคาดการณ์นำเสนอขายสินค้าให้กับลูกค้าได้ ธนาคารบางแห่งสามารถใช้ Big Data มาช่วยในการวิเคราะห์เครดิตของลูกค้าที่จะขอสินเชื่อ หรือแม้แต่บริษัทผู้ให้บริการมือถือก็สามารถใช้ Big Data มาช่วยในการแบ่งกลุ่มลูกค้า (Customer Segmentation)

IDC ได้คาดการณ์มูลค่าตลาดของ Big Data ในปี 2014  ว่าสูงถึง 16.1  พันล้านเหรียญสหรัฐ และคาดการณ์ตลาดของ Big Data ในภูมิภาคเอเซียแปซิฟิกโดยไม่รวมประเทศญี่ปุ่นในปีนี้ไว้ที่  1.61  พันล้านเหรียญสหรัฐ ซึ่งโตกว่าปีที่แล้วถึง 34.7% นอกจากนี้ยังมีการคาดการณ์จากบริษัทวิจัยอย่าง Researchbeam ระบุว่ามูลค่าตลาดของ Hadoop หนึ่งในเทคโนโลยีที่ใช้ในการทำ Big Data จะโตจาก 1.5 พันล้านเหรียญสหรัฐในปี 2012 เป็น 50.2 พันล้านเหรียญสหรัฐในปี 2020

แต่ปัญหาที่หน่วยงานต่างๆจะเจอในเรื่องของ Big Data คือการขาดบุคลากรและขาดข้อมูล Gartner เองระบุว่าในปีนี้จะมีตำแหน่งงานที่เกี่ยวข้องกับ Big Data ทั่วโลกถึง 4.4 ล้านตำแหน่ง แต่คงสามารถที่จะหาคนเข้าทำงานได้เพียง 1 ใน 3 ของตำแหน่งงาน และทาง IDC ก็ระบุถึงตำแหน่งงานทางด้าน Analytics ในสหรัฐอเมริกาว่าจะมีถึงสองแสนตำแหน่งในปี  2018 นอกจากนี้ยังพบว่าในปัจจุบันองค์กรใหญ่ๆเกือบ 70% ต้องซื้อข้อมูลจากภายนอกมาวิเคราะห์และคาดว่าในปี 2019 ทุกองค์กรใหญ่ๆคงต้องซื้อข้อมูล

เรื่อง Big Data ก็เป็นเรื่องที่ประเทศใน  ASEAN ให้ความสำคัญ รัฐบาลสิงคโปร์ตั้งเป้าตั้งแต่ปลายปี  2013 ว่าจะเป็นฮับทางด้านนี้โดยเฉพาะการทำ Big Data Analytics โดยมีการตั้ง Big Data Innovation Center  ส่วนทางนายกรัฐมนตรีของมาเลเซีย Najib Razak  ก็ได้ประกาศนโยบาย Big Data Analytics (BDA)ในปลายปี 2014  โดยวางแผนการทำ Pilot Project ในปีนี้ 4 เรื่อง และวางแผนระยะยาว 7 ปีดังรูป

Screenshot 2015-01-25 17.45.00

รูปที่  2  แผนด้าน Big Data Analytics ของประเทศมาเลเซียเริ่มต้นปี  2014

สำหรับประเทศไทยผมคิดว่าเราคงต้องมีนโยบายอยู่สามด้านตามรูปที่ 3 (ต้องขอขอบคุณ  PostToday  ทีวาดภาพกราฟฟิกนี้สรุปให้)

  1. ภาครัฐและเอกชน
    • Big Data ยังเป็นตลาดใหม่มีการแข่งขันไม่สูงนัก (Blue Ocean) ทุกองค์กรทั้งภาครัฐและเอกชนต้องรีบวางกลยุทธ์เรื่องนี้โดยเร็ว มิฉะนั้นแล้วเราจะเสียเปรียบคู่แข่งเชิงธุรกิจ
    • Big Data จะช่วยสร้างความได้เปรียบทางธุรกิจให้กับคู่แข่งในภูมิภาค ต้องเอาเรื่องนี้เดินควบคู่กับนโยบาย Digital Economy
    • เรื่องข้อมูลจะเป็นเรื่องจำเป็น จึงต้องเร่งส่งเสริมให้มีการทำ Open Data เพื่อให้เกิดการต่อ ยอดนำข้อมูลไปใช้งาน
  2. เทคโนโลยี
    • เทคโนโลยีด้านนี้จะมีการลงทุนที่ค่อนข้างสูง ภาครัฐเองควรจะส่งเสริมให้มีการใช้ทรัพยากรร่วมกัน เพื่อลดค่าใช้จ่ายในการลงทุนด้าน Hardware/Software
    • การตั้ง Cloud Platform สำหรับ Big Data Technology เช่น  Hadoop as a Service เป็นเรื่องจำเป็น ภาครัฐอาจต้องหาหน่วยงานเช่น สำนักงานรัฐบาลอิเล็กทรอนิกส์ (สรอ.) มาช่วยดำเนินงาน  หน่วยงานในภาครัฐหรือบริษัทขนาดกลางและเล็กจะได้สามารถใช้งานได้โดยมีค่าบริการที่ถูกลง
  3. การพัฒนาบุคลากร
    • ต้องเร่งพัฒนาบุคลากรทางด้านนี้ โดยเฉพาะผู้ที่จะมีความเชี่ยวชาญด้านการวิเคราะห์ข้อมูล
    • ระยะเริ่มต้นอาจต้องนำผู้เชี่ยวชาญจากต่างประเทศมาทำ Pilot Project  ในลักษณะ On the job training

Screenshot 2015-01-25 17.51.09รูปที่  3  ข้อเสนอแนะกลยุทธ์ Big Data สำหรับประเทศไทย

Big Data คือเรื่องใหม่และไม่ใช่เรื่องแค่ไอที ตอน Cloud Computing เข้ามาประเทศเราก็ช้าไปและตกขบวนไปแล้ว แม้ Cloud กลายเป็นมาตรฐานในปัจจุบัน แต่ทุกวันนี้ยังมีอุตสาหกรรมไอทีหรือซอฟต์แวร์ไทยจำนวนมากยังไม่เข้าใจเรื่อง Cloud ดีพอ ถ้าเราช้าไปเรื่อง Big Data งวดนี้จะไม่ใช่แค่ตกขบวนไอทีแต่เผลอๆจะตกขบวนทางธุรกิจแข่งกับเขาในโลกดิจิทัลที่เปลี่ยนไปไม่ได้

ธนชาติ นุ่มนนท์

IMC Institute

มกราคม 2558

อนาคตของเทคโนโลยีฐานข้อมูล (The Future of the Database)

 

วันก่อนได้เห็น Infographic ตามรูปข้างล่างนี้ที่ชื่อว่า The Future of the Database ของ Robin Puro ที่โพสต์ใน  Wired Information Insights ผมว่าเป็นรูปที่เล่าประวัติและคาดการณ์อนาคตของเทคโนโลยีด้านการเก็บข้อมูลได้เป็นอย่างดี

ในรูปเล่าให้เห็นตั้งแต่เทคโนโลยีเก็บข้อมูลในยุคเริ่มต้นในทศวรรษ 1960 แต่ก็จะเน้นให้เห็นถึงในยุคทศวรรษ 1970 ซึ่งเป็นยุคเริ่มต้นของเทคโนโลยีด้าน Relational Database (RDBMS) ทุกคนก็จะเริ่มให้ความสนใจกับเทคโนโลยีการเก็บข้อมูลที่ใช้ภาษา SQL ระบบจะเป็นแบบ Scale Up คือหาเครื่องคอมพิวเตอร์ขนาดใหญ่เข้ามาช่วยในการเก็บข้อมูล จึงเขียนในรูปว่าเป็น Single Instance Relational Database เราจะเห็นโซลูชั่นของ Vendor หลายใหญ่อย่าง Oracle ที่เป็น Commerical Database ตัวเแรก, IBM  ที่ใช้ DB2 หรือ SyBase

ในปลายยุค 1970 และช่วง 1980 ก็มีความพยายามทีจะทำ Entity Relational Database และ Object Oriented Database เพื่อที่จะมาแทนที่ RDBMS แต่ก็ไม่ประสบความสำเร็จและก็หยุดการพัฒนาไป

จากรูป Infographic เราก็จะเห็นว่า มีอีกเทคโนโลยีที่เข้ามาในปลายยุค 1980 ก็คือ Dataware House เพื่อที่จะรวบรวมข้อมูลจากฐานข้อมูลจำนวนมาก ส่วนหนึ่งก็ทำหน้าที่เป็น ETL ของฐานข้อมูลต่างๆ ซึ่ง Dataware House ก็เป็นระบบขนาดใหญ่ที่เป็นเทคโนโลยีแบบ Distributed ที่จะเริ่มใช้ Server หลายๆตัว แต่ก็ยังเป็น SQL โดยมี Vendor อย่าง Teredata เป็นผู้ผลิตโซลูชั่นทางด้านนี้

พอเข้าสู่ยุคของอินเตอร์เน็ตบูมในช่วงปลายทศวรรษ 1990  ข้อมูลเริ่มมีจำนวนมากขึ้น การจะใช้ Server ขนาดใหญ่เพียงเครื่องเดียวเก็บข้อมูลก็เริ่มจะมีปัญหา และต้องใช้ทรัพยากรเช่น CPU หน่วยความจำ หรือ  Storage มากขึ้น การทำวิเคราะห์ข้อมูลอย่างการทำ Business Intelligence หรือ Analytics ก็เริ่มมีมากกว่าการใช้ Transactional Database

ดังนั้นพอขึ้นในยุคทศวรรษ 2000 ก็เริ่มที่จะมีเทคโนโลยีใหม่ๆที่จะเก็บข้อมูลใหญ่ๆได้อย่าง Distrubuted SQL ที่ใช้เครื่อง  Server หลายๆเครื่องอย่าง Clustrix หรือ  NuoDB และก็ Dataware House ใหม่ๆที่เป็นสถาปัตยกรรมแบบ MPP (Massively Palallel Processing) เช่นของ Netezza, Microsoft,  Oracle หรือ IBM มีเทคโนโลยีอย่าง NoSQL ที่ไม่ได้เป็น RDBMS และสามารถเก็บข้อมูลขนาดใหญ่ได้เช่น Google BigTable, MongoDB และ Cassandra และในปลายยุค 2000 ก็มีเทคโนโลยีใหม่อย่าง Hadoop ที่สามารถเก็บข้อมูลที่เป็นแบบ unstructure ได้เป็นจำนวนนับ  Petabyte

มาในยุคปัจจุบันที่กำลังเข้าสู่ Big Data ข้อมูลเริ่มมีขนาดใหญ่ มีหลากหลายรูปแบบไม่ใช่เฉพาะ structure และข้อมูลเปลี่ยนแปลงอย่างรวดเร็ว   (3V: Volume, Variety, Velocity) ทำให้การใช้เทคโนโลยีที่เป็น SQL แบบ Scale Up มีราคาที่แพงขึ้นในขณะที่ระบบแบบ Scale Out ที่เป็น Distributed SQL จะช่วยทำให้เก็บข้อมูลได้มากขึ้น และสามารถวิเคราะห์ข้อมูลแบบ Real-Time ตามความต้องการของธุรกิจได้ และก็เริ่มมีการนำเทคโนโลยีใหม่ที่เป็น MPP มาใช้ใน Distributed SQL รวมถึงโซลูชั่นใหม่ๆอย่าง SAP HANA ที่เป็น in-Memoery Database หรือ  Oracle ExaData นอกจากนี้เราก็ยังเห็นการพัฒนาการของเทคโนโลยีอย่าง Hadoop ที่มีการใช้ภาษาใหม่อย่าง Hive, Pig หรือการพัฒนา Hadoop เวอร์ชั่น 2 ที่มีเทคโนโลนีอย่าง YARN  ที่ช่วยทำให้ประมวลผลแบบ Real-time ได้

สุดท้ายในอนาคต แนวโน้มของ Database ก็จะมี Platform หลักๆอยู่สามตัวที่จะรองรับข้อมูลหลายหลายที่มีขนาดใหญ่คือ  NoSQL, Hadoop  และ  Distributed SQL ทั้งนี้ Single Instance SQL จะมีปัญหาเรื่องการ Scale Up เพื่อรองรับข้อมูลขนาดใหญ่และ Dataware House เองถ้าจะนำมาใช่ในการทำ Analytics ก็จะถูกแทนที่ด้วย Distributed SQL ที่สามารถนำมาใช้ประมวลผลแบบ Real-time  ได้

FutureofDatabase

ธนชาติ นุ่มมนท์

IMC Institute

มกราคม 2558

การวางกลยุทธ์ด้าน Big Data ขององค์กรและ Technology ด้าน Data ต่างๆ

 

Big Data คือแนวโน้มของเทคโนโลยีไอทีที่สำคัญที่ทุกองค์กรต้องให้ความสำคัญเพื่อนำข้อมูลมาสร้างศักยภาพในการดำเนินธุรกิจ ปัจจัยที่เกี่ยวข้องกับด้าน Big Data จะมีสามด้านคือ

  • Data Source องค์กรจะต้องคำนึงถึงข้อมูลที่จะมีความหลากหลายมากขึ้น ข้อมูลที่จะนำมาใช้จะมีทั้ง structure และ unstructure ซึ่งในอนาคตข้อมูลกว่า 85% จะเป็นแบบ unstructure นอกจากนี้องค์กรก็อาจจะต้องมีการนำข้อมูลภายนอกองค์กรมาใช้เช่นข้อมูลจาก Social Networks. หรือข้อมูลจากคู่ค้า (partner) ซึ่งทาง Gartner เองก็ชี้ให้เห็นว่าแนวโน้มที่องค์กรต่างๆจะนำข้อมูลมาใช้งานเมื่อเทียบกับข้อมูลที่มีอยู่ทั้งหมดมีสัดส่วนจำนวนน้อยลงเรื่อยๆดังแสดงในรูปที่ 1

Figure1

รูปที่ 1 สัดส่วนของข้อมูลที่จะมีการนำมาใช้วิเคระห์เมื่อเทียบกับข้อมูลทั้งหมด

  • Information Infrastructure องค์กรจำเป็นจะต้องมีการโครงสร้างพื้นฐานด้านข้อมูลเพื่อให้รองรับข้อมูลที่เป็น Big Data ซึ่งนอกจากฐานข้อมูลแบบเดิมที่เป็น SQL แล้ว อาจต้องนำเทคโนโลยีใหม่ๆอย่าง Hadoop, NoSQL หรือ MPP เข้ามาใช้ในองค์กร ซึ่งผมเองเคยเขียนบทความแนะนำเทคโนฌลยีต่างๆไว้คร่าวๆในเรื่อง เทคโนโลยี Big Data: Hadoop, NoSQL, NewSQL และ MPP
  • Analysis องค์กรประกอบสำคัญอีกเรื่องคือ การนำข้อมูลที่เป็น Big Data มาประมวลผลและวิเคราะห์เพื่อเพิ่มประสิทธิภาพในการทำงาน ซึ่งอาจเป็นการทำ Business Intelligence หรือ Predictive Analytics ตามที่ผมเคยเขียนในบทความเรื่อง Big Data Analytics กับความต้องการ Data Scientist ตำแหน่งงานที่น่าสนใจในปัจจุบัน

สิ่งแรกองค์กรควรคำนึงถึงในการทำ Big Data คือมองกลยุทธ์ทางธุรกิจว่าต้องการอะไรไม่ใช่เรื่องของเทคโนโลยี เมื่อทราบวัตถุประสงค์ทางธุรกิจแล้วทีมทางด้านไอทีก็คงต้องมาพิจารณาดูว่ามี Data Source อะไรที่ต้องใช้ และต้องใช้เทคโนโลยีอะไรเพื่อให้บรรลุวัตถุประสงค์ เพื่อให้เห็นภาพของการวางกลยุทธ์ด้าน Big Data ผมขอยกตัวอย่าง Template ที่ผมนำมาจากหนังสือเรื่อง Big Data: Understanding How Data Powers Big Business

Screenshot 2014-12-06 12.42.45

รูปที่ 2 Big Data Strategy Temple [Source: Big Data: Understanding How Data Powers Big Business]

จาก Template นี้จะเห็นได้ว่า เราควรจะเริ่มจากการกำหนด Business Initiatives ของการจะนำข้อมูลมาใช้ จากนั้นคงต้องพิจารณาว่าอะไรคือผลลัพธ์ที่คาดว่าจะได้และอะไรคือปัจจัยสู่ความสำเร็จ จากนั้นถึงจะกำหนดงาน (Task) ที่ต้องทำ และระบุถึงข้อมูลที่จะนำมาใช้

ซึ่งเมื่อเรากำหนดกลยุทธ์ทางด้าน Big Data โดยเริ่มจากมุมมองธุรกิจเช่นนี้แล้ว เราค่อยมาคำนึงถึงเทคโนโลยีที่จะต้องนำมาใช้งาน จากรูปที่ 3 จะเห็นได้ว่า เทคโนโลยีแต่ละแบบจะมีความเหมาะสมกับข้อมูลที่แตกต่างกัน เช่น

Figure3

รูปที่ 3 เปรียบเทียบเทคโนโลยีการเก็บข้อมูลแบบต่างๆ [Source: Amazon Web Services]

  • Traditional Database คือเทคโนโลยีฐานข้อมูล SQL แบบเดิมสำหรับข้อมูลที่เป็น structure ในระดับ GByte ถึง TByte และมีความเร็วในการประมวลผลไม่มากนัก
  • MPP Database คือเทคโนโลยีสำหรับข้อมูลขนาดใหญ่หลาย TByte ที่เป็น structure โดยมีความสามารถในการประมวลผลข้อมูลขนาดใหญ่ได้อย่างรวดเร็ว ตัวอย่างของ MPP มีอาทิเช่น Oracle Exadata. SAP HANA, Amazon Redshift หรือ Datawarehouse อย่าง Teredata หรือ Greenplum
  • NoSQLคือเทคโนโลยีในการเก็บข้อมูล semi-structure ขนาดใหญ่ โดยไม่ได้ใช้คำสั่งในการประมวลผลที่เป็น SQL ต้วอย่างเช่น mongo DB, Cassendra หรือ Dynamo DB
  • Hadoop คือเทคโนโลยีในการเก็บข้อมูลที่เป็น unstructure ซึ่งสามารถจะเก็บข้อมูลขนาดใหญ่ได้เป็น PByte

องค์กรจะต้องเตรียมโครงสร้างพื้นฐานเพื่อที่จะรองรับ Big Dataโดยจะต้องใช้เทคโนโลยีเหล่านี้ผสมผสานกัน องค์กรคงยังต้องมี SQL Database แต่ขนาดเดียวกันอาจต้องมี Hadoop สำหรับเก็บข้อมูลขนาดใหญ่ที่เป็น unstructure และอาจต้องมี MPP Database ที่อาจเป็น DatawareHouse หรือ Large Scale Database อย่าง Oracle ExaData

ในปีหน้าทาง IMC Institute จะมุ่งเน้นเรื่อง Big Data มากขึ้น ซึ่งนออกเหนือจากการเปิดหลักสูตรต่างๆในด้าน Big Data อพื่อพัฒนาบุคลากรแล้ว (ดูบทความ IMC Institute ปรับปรุงหลักสูตรด้าน Big Data ในปีหน้า เพื่อสร้างคนไอที) ยังได้ร่วมมือกับบริษัทต่างประเทศที่เชี่ยวชาญในด้าน Big Data คือ Cosmos Technology และ Xentio ในการที่จะวางแผนกลยุทธ์และทำโครงการด้าน Big Data ให้กับองค์กรต่างๆในประเทศไทย ซึ่งถ้าท่านใดสนใจก็สามารถจะติดต่อมายัง IMC Institute ได้

ธนชาติ นุ่มนนท์

IMC Institute

ธันวาคม 2557

 

ความพร้อมด้าน Big Data ของบ้านเรา คงต้องให้ระยะเวลาอีกพักหนึ่ง

Big Data เป็นเทคโนโลยีที่ถูกกล่าวขานกันมากที่สุดในช่วง 1-2 ปีนี้ Big Data ไม่ใช่เรื่องที่พูดกันเฉพาะวงการไอทีแต่มีการพูดถึงกันมากในทุกภาคส่วนอุตสาหกรรมทั้งด้านการตลาด ภาคการค้าขาย ภาคสาธารณสุข วงการวิทยาศาสตร์ ภาครัฐบาล หรือแม้แต่ภาคการเงินการธนาคาร หลายๆคนกล่าวกันการเข้ามาของ Big Data จะทำให้เรามีข้อมูลที่ดีขึ้น สามารถคาดการณ์ข้อมูลแม่นยำยิ่งขึ้น และเมื่อเห็นโลกของ Social Network ที่โตขึ้นอย่างรวดเร็ว หลายคนก็คิดว่าน่าจะเป็นโอกาสที่ดีของ Big Data บางคนพยายามจะบอกว่า Big Data ของประเทศไทยกำลังจะโตขึ้นมากจะมีการใช้กันมากมายเพราะเรามีการใช้อินเตอร์เน็ตแบะ Social Media มากขึ้น และบ้างก็เข้าใจว่าบ้านเราพร้อมและอยู่แนวหน้าทางด้าน Big Data ในฐานะที่ผมอยู่ในภาคอุตสาหกรรมและเกี่ยวข้องการภาคการศึกษาโดยตรงในการพัฒนาบุคลากร และได้เริ่มสนใจเรื่อง Big Data อย่างจริงจังในช่วงสองปีที่ผ่านมา อาจเห็นแย้งในเรื่องนี้ จึงขอให้เหตุผลประกอบว่าทำไมบ้านเรายังต้องพัฒนาเรื่อง Big Data อีกมากก่อนจะพร้อมที่แข่งขันกับที่อื่นๆได้ดังนี้

การขาดความเข้าใจเรื่อง Big Data

คนจำนวนมากยังไม่เข้าใจว่า Big Data คืออะไร หลายๆคนก็ไปแปลตรงๆว่าคือข้อมูลใหญ่ซึ่งส่วนหนึ่งก็ไม่ผิดอะไร ผมเคยเขียนบทความหลายๆครั้งแล้วเรื่องความหมายของ Big Data จึงไม่อยากกล่าวซ้ำอีก แต่สิ่งสำคัญคือ Big Data คือการมองอนาคตที่จะเปลี่ยนแปลงรูปแบบของการจัดการข้อมูล แผนกไอทีจะต้องพร้อมที่จะบริหารจัดการกับข้อมูลแบบผสม (Hybrid Data) ที่จะมีทั้ง structure data และ unstructure data รวมถึงความสามารถในการที่นำ Dark Data ซึ่งเป็นข้อมูลที่เราเก็บไว้แต่ไม่เคยนำมาใช้ประโยชน์ มาสร้างประโยชน์ให้กับหน่วยงาน นอกจากนี้บางครั้งเรายังไม่เข้าใจถึงประโยชน์ของ Big Data ที่ได้จากการทำ Predictive Analytics ซึ่งมันแตกต่างกับการทำ Business Intelligence ที่เราเคยทำกัน และการทำ Big Data Analytics ต้องการบุคลากรที่เป็น Data Scientist ไม่ใช่เฉพาะ Programmer หรือ Business Analytist  ความเข้าใจคาดเคลื่อนเกี่ยวกับ Big Data ทำให้องค์กรขาดการเตรียมพร้อมเกี่ยวกับเรื่องนี้ และเข้าใจผิดคิดว่าโครงสร้างข้อมูลในปัจจุบันรองรับแล้ว ขาดการเตรียมพร้อมด้านบุคลากรทั้งทางด้านไอทีและนักวิเคราะห์ข้อมูล

ขาดข้อมูลขนาดใหญ่

ข้อมูลส่วนใหญ่ในบ้านเรายังเป็นข้อมูลแบบปิดยังไม่มีการทำ Open Data กันมากเท่าไร และข้อมูลที่มีอยู่ส่วนมากก็เป็นเพียง structure data ขนาดที่แนวโน้มของ Big Data ระบุว่าข้อมูลเกือบ 80% จะเป็น unstructure data ขณะที่ข้อมูลที่เก็บอยู่ในบ้านเราจะมีเพียงเล็กน้อย หน่วยงานที่จะมีข้อมูลมากกว่า 10 TB ก็หาค่อนข้างยาก หน่วยงานที่มีข้อมูลมากๆก็จะเป็นข้อมูล Transaction ของลูกค้าเช่น CDR ของบริษัทด้าน Telecom เรายังไม่มีผู้ให้บริการที่ให้ข้อมูล unstructure เช่น Web Crawler, Social Network ที่ให้เราดึงข้อมูลขนาดใหญ่มาวิเคราะห์ได้ แต่การจะใช้ประโยชน์จาก Big Data ได้อย่างเต็มที่ส่วนหนึ่งก็คือการต้องนำข้อมูลภายนอกองค์กร (External Data) เหล่านี้มาช่วยในการวิเคราะห์ คาดการณ์ต่างๆ เราจะเห็นได้ว่าเราสามารถไปดึงข้อมูลจากต่างประเทศที่เป็น unstructure หรือ semi-structure ขนาดใหญ่เช่น ข้อมูล Twitter หรือข้อมูลจากYelp มาได้ หรือแม้แต่ข้อมูลจาก Web Crawler ที่มีขนาดมากกว่า 500 TB ก็ยังมีให้บริการ ขณะที่บ้านเราไม่มีบริการข้อมูลเหล่านี้ การทำ Big Data ให้ได้ประโยชน์อย่างเต็มที่ ต้องมีข้อมูลขนาดใหญ่ๆที่ว่าแต่บ้านเรายังขาดอยู่ คงต้องใช้เวลาอีกหลายปีจึงจะได้ข้อมูลที่ดีขึ้น

ขาดบุคลากรด้าน Big Data

ปัญหานี้ถ้าพูดไปเป็นเป็นคลาสสิคในวงการไอที ไม่ว่าเทคโนโลยีใหม่อะไรเข้ามาบ้านเรามักจะขาดคนไม่ว่าจะเป็นด้าน Mobile Developer, Cloud Computing Expert หรือ Enterprise Architect แต่ปัญหาการขาดบุคลากรด้าน Big Data เป็นปัญหาทั่วโลก เพราะสำนักวิจัย Gartner คาดการณ์ว่าจะมีความต้องการบุคลากรด้านนี้ทั่วโลกถึง 4.4 ล้านตำแหน่งในปี 2015 และเป็นตำแหน่งงานทึ่สหรัฐอเมริกาถึง 1.9 ล้านตำแหน่ง แต่ปรากฎว่าจะมีเพียง 1/3 เท่านั้นที่หาบุคลากีที่มีทักษะตรงกับที่ต้องการได้ งานทางด้าน Big Data หนึ่งตำแหน่งจะสร้างงานตำแหน่งอื่นๆนอกกลุ่มไอทีได้ถึงสามตำแหน่ง การขาดแคลนบุคลากรทางด้านนี้ทำให้หน่วยงานต้องเร่งพัฒนาบุคลากรและหาวิธีการดึงดูดบุคลากรเข้ามาในหน่วยงาน เทคโนโลยี Big Data ต้องการบุคลากรที่มีทักษะใหม่ๆในการบริหารจัดการข้อมูลที่กำลังเปลี่ยนแปลง ต้องรู้ถึงการใช้เทคโนโลยีใหม่ๆ และต้องการบุคลากรที่มีความสามารถในการวิเคราะห์ข้อมูลและคาดการณ์เรื่องต่างๆได้ ซึ่งบ้านเรายังขาดบุคลากรเหล่านี้อีกมาก

ขาดเทคโนโลยีสำหรับโครงสร้างข้อมูลแบบใหม่

การเข้ามาของ Big Data ทำให้หน่วยงานจะต้องลงทุนโครงสร้างพื้นฐานด้านข้อมูลเพิ่มเติม ฐานข้อมูลแบบ RDBMS เดิมไม่สามารถจะรองรับ unstructure data ได้ ทาง Gartner เองก็ระบุว่า 75% ของ Data Warehouse ในปัจจุบันจะไม่สามารถรองรับข้อมูลในเรื่องของ Velocity และ Variety ได้ การเข้ามาของ unstructure data ขนาดใหญ่ทำให้หน่วยงานต้องนำเทคโนโลยีใหม่อย่าง Hadoop หรือ No SQL เข้ามาใช้ โดย Hadoop ก็เป็นหนึ่งในเทคโนโลยีที่น่าสนใจที่สุดสำหรับเก็บข้อมูลหลายร้อย TB ซึ่งจากการสำรวจองค์กร 86% ทั่วโลกก็ยังไม่สามารถบริหารจัดการข้อมูลได้อย่างเหมาะสม นอกจากนี้องค์กรก็อาจต้องลงทุนทางด้าน BI & Analytics Tool เพื่อจะได้ประโยชน์จากการใช้ข้อมูลต่างๆทั้งแบบ Structure และ unstructure ที่อยู่ภายในและภายนอกองค์กร  ซึ่งในปัจจุบันมีหน่วยงานเพียง 13% ที่มีเครื่องมือแบะสามารถทำ Predictive Analytics ได้

จากที่กล่าวมาทั้งหมดนี้ จะเห็นว่าการประยุกต์ใช้ Big Data เป็นเรื่องที่ยากและซับซ้อนกว่าที่เราคิด และเป็นเรื่องที่ท้าทายสำหรับองค์กรต่างๆทั่วโลก แม้จะบอกว่าบ้านเรายังไม่พร้อม แต่เชื่อว่าถ้าเราตั้งใจทำกันจริงๆ ปรับความเข้าใจ สร้างข้อมูลให้มากขึ้น พัฒนาบุคลากร และพัฒนาโครงสร้างพื้นฐานด้านข้อมูล บ้านเราแข่งกับเขาได้แน่

ธนชาติ นุ่มนนท์

IMC institute

ตุลาคม 2557

Data Scientist กับเทคโนโลยี Big Data: Hadoop, MapReduce, R และ Mahout

ได้เขียนเรื่อง Data Scientist  ไปหลายครั้ง (เช่น Big Data Analytics กับความต้องการ Data Scientist ตำแหน่งงานที่น่าสนใจในปัจจุบัน)  และก็ได้หยิบยกบทความของ ดร.อธิป อัศวานันท์ เรื่อง “ความเข้าใจที่ผิดๆ เกี่ยวกับ Big Data และ Analytics  ทั้งตอนที่ 1 และ ตอนที่ 2”  มาให้อ่านกัน ก็หวังว่าเราคงเริ่มมีความเข้าใจมากขึ้นระหว่าง  Programmer, BI Analyst และ  Data Scientist  ที่ผมพยายามบอกว่า Data Scentist ต้องมีความรู้ทางด้านคณิตศาสตร์และ Predictive Algorithm

คนที่จะเป็น Data Scientist  จะต้องมีความสามารถอยู่ในสามด้านก็คือ  1)  Programming  กล่าวคือจะต้องมีทักษะการโปรแกรมที่ดีเช่นสามารถเขียนโปรแกรมอย่าง Map/Reduce, R หรือ  Hive  ได้ 2) มีความรู้ด้าน Math และ  Statistics คือจะต้องเข้าใจการรวบรวมและวิเคราะห์ข้อมูล มีความเข้าใจเรื่อง  Algorithm โดยเฉพาะด้าน Predictive Analytics สำหรับทำ Machine Learning ได้ และ 3) ต้องมีความเข้าใจเรื่องธุรกิจที่จะมาวิเคราะห์ข้อมูล เพื่อจะได้ทราบว่ารูปแบบของข้อมูลเป็นอย่างไร หรือจะต้องการข้อมูลใดสำหรับการวิเคราะห์และการคาดการณ์ ซึ่งทักษะเหล่านี้ได้สรุปรวมไว้ในรูปที่ 1

Screenshot 2014-10-20 09.35.54รูปที่  1 ทักษะของ Data Scientist 

จริงๆแล้วการทำ Predictive Analytics ไม่ใช่เรื่องใหม่ แต่การคาดการณ์ต่างๆจะมีความแม่นยำและใก้ลเคียงกับความจริงมากขึ้นถ้ามีข้อมูลจำนวนมากขึ้น ดังนั้นเทคโนโลยี Big Data  จึงทำให้การคาดการณ์ต่างๆแม่นยำขึ้น และการมีข้อมูลขนาดใหญ่จะมีประโยชน์มากยิ่งขึ้นถ้าเราสามารถทำ Predictive Analytics ซึ่งเราจะเห็นได้ว่ากรณีนี้มีความแตกต่างกันกับ  Business Intelligence (BI)

  • BI คือการดู Business Insight เพื่อให้ทราบว่าข้อมูลที่ผ่านมาเป็นอย่างไร โดยนำเสนอในมุมมองต่างๆ ทั้งในรูปแบบของรายงาน กราฟ  หรือ Dashboard
  • Predictive Analytics  คือการคาดการณ์อนาคตโดยใช้โมเดลคณิตศาสตร์ที่ต้องใช้ข้อมูลจำนวนมากและอาจจะมาจากหลายแหล่ง

Screenshot 2014-10-20 09.47.12

รูปที่  2 เครื่องมือและเทคโนโลยีของ Data Science

เทคโนโลยี Big Data ทำให้ Data Scentist มีเครื่องมือที่หลากหลายขึ้น ทั้งในการเก็บข้อมูลเช่น RDBMS ในรูปแบบเดิม หรือ  NoSQL อย่าง MongoDB หรือ  unstructure storage  อย่าง Hadoop HDFS  ทั้งเครื่องมือในการถ่ายโอนข้อมูลอย่าง Sqoop หรือ  Flume และเครื่องมือหรือภาษาในการวิเคราะห์ข้อมูลอย่าง Java, R, Mahout และเนื่องจากข้อมูลในปัจจุบันส่วนใหญ่เป็น  unstructure data  ก็เลยทำให้ Hadoop กลายเป็นเครื่องมือที่น่าสนใจที่สุดของ Big Data เพราะนอกจากสามารถที่จะเก็บข้อมูลขนาดใหญ่ได้แล้ว ยังมีเครื่องมือที่ช่วยในการวิเคราะห์ข้อมูลที่หลากหลาย

Screenshot 2014-10-20 09.53.48

รูปที่  3 หน้าที่ของ Data Science

สุดท้ายเพื่อให้เข้าใจว่า Data Scientist ทำอะไรจากเทคโนโลยีต่างๆที่มีอยู่ ลองพิจารณาดูรูปที่ 3 จะเห็นว่าจะมีการกล่าวถึงเทคโนโลยีต่างๆ เช่นเครื่องมือในการรวบรวมข้อมูลที่ทำ ETL เครื่องมือในการเก็บข้อมูลอย่าง Hadoop เครื่องมือในการวิเคราะห์ข้อมูลอย่าง R, Hive, Pig, Java, Mahout  เครื่องมือในการแสดงผลอย่าง Dashboard, Web App และ เครื่องมือในการพยากรณ์ข้อมูลที่ทำ Machine Learning  จากรูปจะเห็นได้ว่าบทบาทของ Data Scientist จะคาบเกี่ยวกับบทบาทของ Data Architecture/Management และ Analytics โดย Data Sceintist จะต้องใช้เครื่องมือต่างๆทั้ง Hadoop, R, MapReduce หรือ Mahout  ในการวืเคราะห์ข้อมูล รวมถึงมีการใช้  Algorithm สำหรับ Machine Learning

  • R เป็๋นภาษาที่สามารถใช้ในการวิเคราะห์ข้อมูลได้
  • Mahout เป็นเครื่องมือที่ใช้ในการวิเคราะห์  Large Scale Data  บน  Hadoop  โดย Mahout จะมี Library  สำหรับ Predictive Analytics สามด้านคือ Recommender, Clustering และ  Classification

การพัฒนาหรือหา Data Scientist คงไม่ใช่ง่าย และไม่สามารถทำได้โดยระยะเวลาอันสั้น จากข้อมูลการสำรวจส่วนใหญ่ก็จะต้องเป็นที่มีพื้นฐานทางคณิตศาสตร์อย่างดี โลกของ Big Data กำลังมา ตรงนี้น่าจะเป็นโอกาสอันดีของนักคณิตศาสตร์ และจำเป็นอย่างยิ่งที่บ้านเราจะต้องเร่งพัฒนาคนทางด้านนี้ แต่อย่ามองว่าเป็นเรื่องง่าย เพราะการเรียนคณิตศาสตร์ไม่ได้ทำกันได้เพียงสัปดาห์เดียว การจะเรียนปริญญาเอกก็ต้องใช้เวลาเป็นปีๆ ดังนั้นการที่จะสร้าง Data Scentist ทีดีก็ต้องบ่มเพราะเป็นปีๆเช่นกัน

ธนชาติ นุ่มนนท์

IMC Institute

ตุลาคม 2557

Hadoop Ecosystem สำหรับการพัฒนา Big Data

เมื่อพูดถึง Big Data นอกเหนือจากข้อมูลจะมีขนาดใหญ่ขึ้นแล้ว รูปแบบของข้อมูลในอนาคตส่วนใหญ่ก็จะเป็น Unstructure และข้อมูลก็จะเพิ่มขึ้นอย่างรวดเร็ว ตามที่เรานิยามคุณลักษณะของ Big Data ด้วย 3V: Volume, Variety และ Velocity ดังนั้นเครื่องมือในการที่จะทำ Big Data ก็จะต้องเปลี่ยนไปจากที่เราเคยใช้ RDBMS ที่เป็น SQL คนก็เริ่มต้องหาเครื่องมืออื่นๆที่จะจัดการกับข้อมูลจำนวนมากได้อย่าง NewSQL เช่น MySQL Cluster, Amazon RDS หรือ  Azure SQL หรือเครื่องมือที่เป็น NoSQL อย่าง MongoDB หรือ Cassandra และเครื่องมืออย่าง Hadoop ที่ใช้สำหรับจัดการ  Unstructure Data ที่เป็น PetaByte

Hadoop เป็นหนึ่งในเครื่องมือ Big Data ที่ได้รับความสนใจอย่างกว้างเพราะสามารถที่จะจัดการข้อมูล Unstructure ขนาดใหญ่ได้ เช่นข้อมูลที่เป็น Text File, XML หรือ  JSON ผมเองเจอไฟล์ที่เป็น Web Crawl อยู่ในรูปแบบของไฟล์ Web ARChive (WARC) ซึ่งเป็น Text ขนาดใหญ่ขนาดหลายร้อย TeraByte ซึ่งแน่นอนการจัดการข้อมูลแบบนี้ต้องหาเครื่องมือที่เหมาะสม และ Hadoop ก็คือเครื่องมือที่ผมเลือกใช้

Hadoop Project

Hadoop เป็น Open source Project ของ Apache สำหรับการเก็บและบริหารข้อมูลขนาดใหญ่ Hadoop เขียนด้วยโปรแกรมภาษาจาวา มีความสามารถในการทำ Fault Tourarent เพราะจะเก็บข้อมูลซ้ำกันในหลายๆที่ และเป็นระบบที่เป็น Horizontal Scale ที่รันบนเครื่อง commodity server จำนวนมาก Hadoop Project เริ่มต้นโดย Doug Cutting และ Mike Cafarella ที่เป็นทีมงานของบริษัท Yahoo ซึ่งต่อมาก็มีบริษัทอื่นๆนำไปใช้กันอย่างมากทั้ง eBay, Facebook และ Amazon รวมถึงมีบริษัทหลายๆรายที่นำมา Hadoop มาทำ Commercial Distribution อาทิเช่น Cloudera, MapR, IBM Infoshphere BigInsight, Hortonwork หรือ Amazon Elastic Map Reduce

Screenshot 2014-10-18 11.50.04

รูปที่  1: Hadoop Environment [Source: Hadoop in Practice; Alex Holmes]

Hadoop เวอร์ชั่นแรกจะมีองค์ประกอบหลักสองส่วนคือ

  • HDFS (Hadoop Distribution File System) ที่ทำหน้าที่เป็นส่วนเก็บข้อมูลซึ่งจะเก็บข้อมูลขนาดใหญ่ที่จะแบ่งเป็นไฟล์ย่อยขนาดใหญ่เก็บลงใน Data Node จำนวนมาก โดยจะมี Master Node ที่ทำหน้าที่ระบุตำแหน่งของข้อมูลที่เก็บใน Data node
  • Map/Reduce จะเป็นส่วนประมวลผลข้อมูล ที่นักพัฒนาสามารถเขียนโปรแกรมโดยใช้ภาษาจาวามาวิเคราะห์ข้อมูลในรูปแบบของฟังก์ชันการ Map และ Reduce ได้ โดยระบบก็จะกระจาย Task ไปรันแบบ Parallel บนเครื่องหลายๆเครื่อง

ข้อมูลที่เก็บอยู่ใน HDFS จะไม่ใช่รูปแบบ Table อย่างที่เก็บในฐานข้อมูล RDBMS จะเหมาะกับการเก็บข้อมูลขนาดใหญ่มากที่ไม่ต้องมีการเปลี่ยนแปลง และไม่สามารถอ่านหรือเขียนข้อมูลแบบ Random Access ได้ ส่วนการประมวลผลแบบ Map/Reduce ก็ไม่ใช่ realtime Online แบบ SQL ของ RDBMS แต่จะเป็นแบบ Batch Offilne ใช้เวลาพอสมควรขึ้นอยู่กับขนาดข้อมูล

สถาปัตยกรรมฮาร์ดแวร์ของระบบ Hadoop จะประกอบด้วยเครื่อง Server จำนวนมาก โดยจะมีเครื่องหนึ่งทำหน้าที่เป็น Master และจะมีเครื่องลูกอีกจำนวนมากทำหน้าที่เป็น Slave โดยปกติ Hadoop จะกำหนดให้ข้อมูลที่เก็บในเครื่อง Slave มีการเก็บข้อมูลซ้ำกันสามแห่ง ดังนั้นเครื่อง Slave ควรจะมีอย่างน้อยสามเครื่อง ส่วนเครื่อง Master ก็จะทำหน้าที่หลักในการระบุตำแหน่งของข้อมูลและ Task ที่กระจายในการประมวลผลของ Map/Reduce ดังนั้นเครื่อง Master จึงมีความสำคัญอย่างมาก และต้องมีเครื่อง Secondary Master ในการที่จะสำรองไว้ในกรณีเครื่อง Master ตายไป ดังนั้นระบบ Hadoop โดยทั่วไปจะเริ่มต้นที่เครื่อง Server 5 เครื่อง สำหรับ Master หนึ่งเครื่อง, Secondary Master หนึ่งเครื่อง และ Slave สามเครื่อง โดยหากต้องการเก็บข้อมูลมากขึ้นหรือต้องการประมวลผลข้อมูลให้เร็วขึ้นก็ต้องเพิ่มจำนวนเครื่อง Slave ให้มากขึ้น ทั้งนี้ขนาดของข้อมูลที่เก็บได้ก็จะขึ้นอยู่กับขนาดความจุข้อมูลของเครื่อง Slave รวมกันหารด้วยจำนวนข้อมูลที่ต้องการเก็บซ้ำ (default คือ 3) ซึ่งการเก็บข้อมูลจำนวนเป็น Petabyte ได้ก็ต้องมีเครื่องเป็นจำนวนมากกว่าร้อยเครื่อง โดยปัจจุบัน Yahoo เป็น site ที่มี Hadoop Cluster ใหญ่ที่สุด โดยมีเครื่องจำนวนถึง 40,000 เครื่อง

Screenshot 2014-10-18 11.54.53

รูปที่  2: Hadoop Architecture [Source: Hadoop in Practice; Alex Holmes]

Hadoop Ecosystem

ระบบ Hadoop เองจะมีองค์ประกอบหลักอยู่แค่สองส่วนคือ HDFS และ Map/Reduce ซึ่งค่อนข้างจะไม่สะดวกกับผู้ใช้งานที่มีความต้องการอื่นๆเช่น  การประมวลผลโดยใช้ภาษา SQL การเขียนหรืออ่านข้อมูลแบบ Random access หรือการถ่ายโอนข้อมูลจากที่อื่นๆ จึงมีการพัฒนาโปรเจ็คอื่นๆที่มาทำงานร่วมกับ Hadoop เพื่อให้ได้ประสิทธิภาพดียิ่งขึ้น ดังแสดงตัวอย่างในรูปที่ 3 ซึ่งมีเครื่องมือที่สำคัญดังนี้

Screenshot 2014-10-18 12.00.24

รูปที่  3: Hadoop Ecosystem [Source: Big Data Analytics with Hadoop: Phillippe Julio]

  • Hive เป็นเครื่องมือสำหรับผู้ต้องการสืบค้น (Query) ข้อมูลที่เก็บใน HDFS ด้วยภาษาลักษณะ SQL แทนที่จะต้องมาเขียนโปรแกรม Map/Reduce โดย Hive จะทำหน้าที่ในการแปล SQL like ให้มาเป็น Map/Reduce แล้วก็ทำการรันแบบ Batch
  • Pig เป็นเครื่องมือคล้ายๆกับ Hive ที่ช่วยให้ประมวลผลข้อมูลโดยไม่ต้องเขียนโปรแกรม Map/Reduce ซึ่ง Pig จะใช้โปรแกรมภาษา script ง่ายๆที่เรียกว่า Pig Latin แทน โดย Pigเหมาะกับการทำ ETL สำหรับการแปลงข้อมูลในรูปแบบต่างๆเช่น JSON
  • Sqoop เป็นเครื่องมือในการถ่ายโอนข้อมูลระหว่างฐานข้อมูลที่อยู่รูปแบบ Table บน RDBMS อย่าง SQL server, Oracle หรือ MySQL กับข้อมูลบน HDFS ของ Hadoop
  • Flume เป็นเครื่องมือในการดึงข้อมูลจากระบบอื่นๆแบบ Realtime เข้าสู่ HDFS เช่นการดึง Log จาก Web Server การดึงข้อมูลเหล่านี้จะต้องมีการติดตั้ง Agent ที่เครื่อง Server
  • HBase เป็นเครื่องมือที่จะทำให้ Hadoop สามารถอ่านและเขียนข้อมูลแบบ Realtime Random Access ได้โดยจะทำให้เป็น BigTable ที่เก็บข้อมูลได้ไม่จำกัด row หรือ column ซึ่ง HBase ก็จะเป็นเสมือนการทำให้ Hadoop เป็น NoSQL Database
  • Oozie เป็นเครื่องมือในการทำ Workflow จะช่วยให้เราเอาคำสั่งประมวลผลต่างๆของระบบ Hadoop เช่น Map/Reduce, Hive หรือ Pig มาเชื่อมต่อกันในรูปของ Workflow ได้
  • Hue ย่อมาจากคำว่า Hadoop User Experience เป็นเครื่องมือช่วยทำ User interface ของ Hadoop ให้ใช้งานได้ง่ายขึ้นกว่าการต้องใช้ command line
  • Mahout เป็นเครื่องมือของ Data Scientist ที่ต้องการทำPredictive Analytics ข้อมูลบน Hadoop โดยใช้ภาษาจาวา ทั้งนี้ Mahout สามารถใช้ Algorithm ที่เป็น Recommender, Classification และ Clustering ได้

Hadoop 2.0

Hadoop เวอร์ชั่นแรกมีข้อจำกัดหลายประการอาทิเช่น ระบบการสำรองของ Secondary Master เป็นแบบ Passive และไม่สามารถทำ Multiple Master ได้จึงจำกัดเครื่อง Slave ไว้ไม่เกิน 4,000 เครื่อง และขัอสำคัญการประมวลผลต้องใช้ Map/Reduce ที่เป็นแบบ Batch ดังนั้นจึงมีการพัฒนา Hadoop 2.0 ที่จะลดข้อจำกัดต่างๆ  Hadoop เวอร์ชั่นนี้จะมีสถาปัตยกรรมดังรูปที่ 4 โดยมีการนำ Data Opeating System ที่เรียกว่า YARN (Yet Another Resource Negotiator) เข้ามา

Screenshot 2014-10-18 12.06.08

รูปที่  4 : Hadoop 2.0

เราจะเห็นได้ว่าการมี YARN ทำให้เรามีวิธีการประมวลผลที่หลากหลายขึ้น ทั้งแบบ Batch อย่างเดิมที่ใช้ Map/Reduce หรือผ่าน Hive และก็เป็น Realtime ที่ใช้ Streaming หรือ MPI รวมถึงสามารถขยายจำนวนเครื่อง Slave ได้จำนวนมาก  ในปัจจุบันมี่ Hadoop Distribution หลายตัวรวมทั้งที่เป็นผู้ให้บริการบน Cloud แบบ Hadoop as a Service ที่ใช้ Hadoop 2.0 จึงทำให้โอกาสการใช้งานของ Hadoop ในอนาคตจะขยายตัวมากขึ้นเรื่อยๆ

ธนชาติ นุ่มนนท์

IMC Institute

ตุลาคม 2557