ระดับการวัดความสามารถในการนำ Big Data ไปใช้ในองค์กร

Screenshot 2017-10-06 17.30.17

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

  1. การนำข้อมูลขนาดใหญ่มาช่วยในการตัดสินใจได้ดีขึ้น เช่นสามารถตอบได้ว่าเราควรจะทำอะไร นำสินค้าใดมาขาย ลูกค้าเราอยู่ที่ใด จะใช้จ่ายงบประมาณอย่างไร
  2. การนำข้อมูลขนาดใหญ่มาช่วยให้การทำงานดีขึ้น เช่นทราบข้อมูลโดยทันทีว่าลูกค้าต้องการอะไร ทราบตำแหน่งของลูกค้าเป้าหมาย หรือช่วยเพิ่มยอดขาย จะใช้งบประมาณให้มีประสิทธิภาพอย่างไร
  3. การทำให้ข้อมูลเป็นทรัพย์สินขององค์กร และทำให้เกิด Business Transformation เช่นการนำข้อมูลที่มีอยู่ไปต่อยอดร่วมกับคู่ค้ารายอื่นๆเพื่อสร้างสินค้าใหม่ๆ

การทำ  Big Data ไม่ใข่แค่เรื่องของการทำ  Data Cleansing, Data Warehouse, Business Intelligence หรื่อเรื่องของเทคโนโลยี องค์กรที่จะทำ Big Data อาจต้องเปลี่ยนทัศนคติในรูปแบบเดิมๆอยู่หลายเรื่อง ซึ่งผมมักจะยกคำพูดสั้นมา 3-4  ประโยคเกี่ยวกับ Big Data  ดังนี้

  • Don’t think technology, think business transformation.
  • Don’t think data warehouse, think data lake.
  • Don’t think business intelligence, think data science.
  • Don’t think “what happened”, think “what will happen”.

สุดท้ายต้องทำความเข้าใจเรื่องระดับความสามารถของการนำ Big Data ไปใช้ในองค์กร (Big Data Matuarity Model)  ว่ามีอยู่ 5 ระดับดังรูปนี้ ซึ่งจะบอกได้ว่าองค์กรของเราอยู่ในระดับใด

Screenshot 2017-09-01 11.46.57

รูปที่ 1 Big Data Business Model Maturity Index, จาก Big Data MBA, Bernard Marr

  1. Business Monitoring ในขั้นตอนนี้องค์กรยังเพียงแค่ทำ Business Intelligence หรือยังทำ Data Warehouse ซึ่งเป็นขั้นตอนที่เราจะแสดงข้อมูลหรือทำรายงานต่างๆขององค์กรในลักษณะของ Descriptive Analytic ที่เราจะดูข้อมูลในอดีตเพื่อให้ทราบว่า What happened?
  2. Business Insights  ในขั้นตอนนี้จะเป็นการเริ่มต้นทำ Big Data Project ที่มีการทำ  Data Lake เพื่อรวบรวมข้อมูลจากทั้งภายในและภายนอกองค์กรทั้งข้อมูลที่เป็น structure, unstructure  หรือ semi-structure เพื่อทำ Predictive Analytic  เพื่อให้ทราบว่า What will happen?
  3. Business Optimization ในขั้นตอนนี้จะเริ่มเห็นความคุ้มค่าของการลงทุนทำ Big Data Project โดยจะเป็นการทำ Prescriptive Analytic เพื่อให้ทราบว่า How should we make in happen?
  4. Data Monetization ในขั้นตอนนี้จะเป็นการขยายผลเพื่อนำ Data ที่จะเป็นทรัพยากรขององค์กรไปใช้เป็นสินทรัพย์ในการทำงานร่วมกับคู่ค้าหรือองค์กรอื่นๆ
  5. Business Metamorphosis ในขั้นตอนนี้จะเป็นขั้นสูงสุดของการทำ Big Data ที่จะเห็นเรื่องของ Business Transformation  ในองค์กรซึ่งอาจเห็นรูปแบบการทำงานใหม่ๆ ธุรกิจใหม่ หรื่อผลิตภัณฑ์ใหม่ๆขององค์กร

จากที่กล่าวมาทั้งหมดนี้จะเห็นได้ว่า การทำ Big Data Project  ไม่ใช่เรื่องง่ายๆอย่างที่เข้าใจ จำเป็นต้องปรับวิธีคิดในองค์กรอย่างมาก และต้องเข้าใจเป้าหมายและระดับขั้นของการทำ Big Data ในองค์กร

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

IMC Institute

Hortonworks เทียบกับ Hadoop Distribution อื่นๆ

Screenshot 2017-04-16 09.21.09

ช่วงสองสัปดาห์ที่ผ่านมา ผมให้ทีมนักศึกษาฝึกงานของ IMC Institute  ในโครงการ Big Data School  ได้ทดลองติดตั้งและเปรียบเทียบ Hadoop Distribution ต่างๆ ซึ่งผมได้เคยเขียนเรื่อง การติดตั้ง Hadoop Distributions  พร้อมทั้งวิธีการติดตั้งไว้แล้ว ในบทความ “Big Data School กับการติดตั้ง Hadoop Distributions” ซึ่งในการเปรียบเทียบDistribution ต่างๆ ผมให้นักศึกษาทดลองติดตั้งสองแบบคือ

  • การติดตั้ง  Hadoop Cluster 4-5  เครื่องบน Amazon EC2 หรือ Microsoft Azure สำหรับที่จะใช้เป็น Production
  • การใช้ Hadoop Sandbox บนเครื่อง Server หรือเครื่อง PC หนึ่งเครื่อง สำหรับที่จะใช้เป็นเครื่องทดลองหรือทำ Development

ซึ่งนักศึกษาก็ได้แบ่งกลุ่มกันทำ  Hadoop Distribution  4 ชุดคือ

Screenshot 2016-06-28 12.20.25

และผมได้ให้พวกเขาสรุปเปรียบเทียบในประเด็นต่างๆเช่น ราคา, ความยากง่ายในการใช้งาน, ความยากง่ายในการติดตั้ง, Opensource Compatibity, คู่มือเอกสารต่างๆและชุมชน, การสนับสนุนจากผู้ผลิต  ซึ่งพอสรุปประเด็นต่างๆได้ดังนี้

  • ราคา: ในแง่ราคา Apache Hadoop เป็นฟรีซอฟต์แวร์แต่ก็ไม่มี support ใดๆ ซึ่งถ้าเปรียบเทียบกรณีนี้ Hortonworks จะดีสุดเพราะฟรีเช่นกันยกเว้นต้องการซื้อ  support ขณะที่ Cloudera จะหรีเฉพาะ  Express Version และ MapR จะฟรีเฉพาะเวอร์ชั่น M3  ซึ่งทั้งสองเวอร์ชั่นไม่ใช่ Full Feature ที่ทั้งสองรายมีให้
  • ความง่ายในการติดตั้ง Cluster: เมื่อพิจารณาจากประเด็นนี้  Cloudera จะติดตั้งง่ายสุดโดยผ่าน Cloudera Manager แต่จริงๆแล้วการติดตั้ง Hortonworks ก็ไม่ยากเกินไปถ้าติดตั้งผ่าน Public Cloud หรือ  Private Cloud ที่เป็น Openstack  โดยใช้ Cloudbreak ส่วน Apache Hadoop ติดตั้งค่อนข้างยากแต่อาจใช้ Ambari ได้
  • ความง่ายในการใช้งาน: Cloudera และ MapR  จะมีส่วนติดต่อผู้ใช้ที่เป็น Hue ที่ค่อนข้างง่ายต่อการใช้งาน ส่วนของ Hortonworks ใช้ Ambari ที่มี Feature เพียงบางส่วน ส่วนของ Apache Hadoop จะต้องติดตั้ง Hue เองซึ่งค่อนข้างยาก
  • Opensource Compatibility: กรณีนี้ Hortonworks จะดีกว่ารายอื่นมากเพราะจะสอดคล้องกับ Apache Hadoop ที่เป็น Opensource ขณะที่ Cloudera จะเป็น Vendor Lockin หลายตัว อาทิเช่น Cloudera Manager หรือ Impala เช่นเดียวกับ MapR ที่ Lockin ตั้งแต่ MapR-FS และ MapR Streaming
  • Sandbox: ถ้าต้องการหาตัวทดลองเล่น Cloudera มีจุดเด่นที่มี Docker Image ให้เลยสามารถเล่นกับเครื่องใดก็ได้ ขณะที่ Hortonworks จะเน้นให้เล่นกับ VMware/VirtualBox หรือจะรันผ่าน Microsoft Azure เท่านั้น ส่วน distributation อื่นๆ (MapR, Apache Hadoop) ก็ไม่มี Official Docker Image  เช่นกัน
  • คู่มือเอกสารต่างๆและ Community:  ในแง่นี้ทั้งสามรายที่เป็น  Commercial Distribution ต่างก็มีเอกสารพอๆกัน แต่ถ้าพูดถึง Community เราอาจเห็นจำนวนคนที่จะแชร์ข้อมูล Cloudera มากกว่า Hortonworks แต่ทั้งนี้เราสามารถใช้ Community กลุ่มเดียวกับ Pure Apache Hadoop เพราะ Hortonworks จะมีความ Opensource Compatibity ค่อนข้างสูงแต่สองรายใหญ่ต่างก็มีงานประจำปีหลายที่คือ Hadoop Summit ของ Hortonworks และ Hadoop World ของ  Cloudera ส่วน MapR จำนวน  Community น้อยสุด
  •  การสนับสนุนจากผู้ผลิต: ถ้ามองในแง่ประเทศไทย การสนับสนุนจากผู้ผลิตของ Cloudera ยังนำรายอื่นๆอยู่มาก ทำให้หน่วยงานในประเทศไทยรายแห่งสนใจใช้ Cloudera

ทั้งนี้เมื่อพิจารณาโดยรวมแล้ว เราสรุปกันว่า ถ้าจะทำ Product ที่มีราคาถูกสุดและสอดคล้องกับ Pure Apache Hadoop มากที่สุดควรเลือกใช้ Hortonworks ทั้งนี้เพราะ  Commercial Distribution จะมีค่าใช้จ่ายในแง่ License หรือ Subscribtion แต่ถ้ามีงบประมาณค่อนข้างเยอะก็อาจเลือกใช้ได้ แต่ไม่ควรใช้ Free Version ของสองรายดังกล่าว (Cloudera และ  MapR) ทั้งนี้เนื่องจากไม่ใช่ Full Features และบางอย่างขาดความเสถียร

แต่ถ้าต้องการทดลองหรือใช้เพื่อทำ Development โดยผ่าน Hadoop Sandbox ก็จะแนะนำให้ใช้  Cloudera Quickstart ซึ่งผมเองก็ใช้ตัวนี้ในการอบรม ดังตัวอย่างเอกสารอบรมของผมดังนี้ >> Big data processing using Cloudera Quickstart

สุดท้ายผมมี  Slide ทีนักฝึกงานของ IMC Institute ได้ทำขึ้นเพื่อเปรียบเทียบ Hadoop Distribution ต่างๆดังนี้

 

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

IMC Institute

Slide สำหรับการเรียนรู้ Big Data Hadoop ของ IMC Institute

13528794_665828900231120_8370796300310328306_n

 

IMC Institute จัดอบรม Big Data Hadoop มาหลายรุ่นและมีคนผ่านอบรมมาจำนวนมาก และเคยทำเอกสารประกอบการบรรยายหลายชุด วันนี้ผมเลยรวบรวม Slide  ต่างๆมาเพื่อให้ทุกท่านได้เรียนรู้ Apache Hadoop + Spark ที่มี Service ต่างๆมากมาย โดยได้เป็นแบบฝึกหัดที่ผู้อ่านสารมารถนำไปฝึกและทดลองใช้งานได้จริง ทั้งนี้ Slide  ต่างๆเหล่านี้จะอ้างอิงกับ Cloudera Quickstart ที่ใช้ Docker Image  ดังนั้นผู้ที่สนใจจะเรียนรู้จาก Slide ชุดนี้จะต้องมีเครื่องคอมพิวเตอร์หรือ Server ที่มี Docker Engine  อยู่ โดยสามารถไปดูขั้นตอนการติดตั้งได้ที่ >> https://docs.docker.com/engine/installation/

Screenshot 2016-06-23 16.23.06

รูปที่ 1  Hadoop Ecosystem

สำหรับ Service ต่างๆที่เคยทำเอกสารการสอนมาก็เป็นไปดังรูปที่ 1  โดยมีเอกสารดังนี้

Service  ด้านเก็บข้อมูล

Service ด้านการประมวลผล

Service ด้านการนำข้อมูลเข้า

Apache Spark

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

IMC Institute

Big Data กับการใช้งานในภาครัฐและอุตสาหกรรมอื่นๆ

Screenshot 2017-04-16 09.21.09

การนำข้อมูลขนาดใหญ่ไปใช้งานจริงๆ ยังมีไม่มากนัก ทั้งนี้ด้วยข้อจำกัดในเรื่องของเทคโนโลยีและจำนวนบุคลากรที่มีความสามารถ ซึ่งทางสมาคม PIKOM ของมาเลเซียได้ทำรายงานเรื่อง Global Business Services Outlook Report 2015 ชี้ให้เห็นผลกระทบของเทคโนโลยีด้าน Big Data ในประเทศกลุ่ม APAC และอุตสาหกรรมต่างๆ โดยสรุปมาเป็นตารางดังนี้

ตารางที่ 1 ระดับผลกระทบของเทคโนโลยี Big Data [แหล่งข้อมูลจาก PIKOM]

Screenshot 2016-06-11 08.24.00

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

สำหรับตัวอย่างของการนำเทคโนโลยี Big Data มาใช้งานในภาคอุตสาหกรรมต่างๆ มีดังนี้

  • อุตสาหกรรมค้าปลีก อาจนำมาเพื่อวิเคราะห์ความต้องการของลูกค้า เพื่อทำให้เห็นข้อมูลของลูกค้ารอบด้าน (Customer 360) หรือการแบ่งกลุ่มลูกค้า (Customer Segmentation)  นำมาจัดแผนการตลาด สร้างแคมเปญตอบสนองต่อพฤติกรรมการอุปโภค บริโภค ที่ปรับเปลี่ยนอยู่ตลอดเวลา ให้ดึงดูดลูกค้าเข้ามาจับจ่ายใช้สอยมากที่สุด ในสภาพการแข่งขันที่สูง และมีช่องทางอื่นๆ ใหม่ๆ เข้ามาเป็นทางเลือกมากขึ้น
  • อุตสาหกรรมโทรคมนาคม อาจนำเพื่อใช้ในการวิเคราะห์เครือข่ายโทรศัพท์เคลื่อนที่ วิเคราะห์การใช้งานของลูกค้า การวิเคราะห์แนวโน้มการย้ายค่ายของลูกค้า (Customer Churn) และนำเอาข้อมูลไปต่อยอดเพิ่มการให้บริการอีกมากมาย อีกทั้งยังสามารถนำข้อมูลมาวิเคราะห์ เรื่องความมั่นคงปลอดภัย ให้เป็นประโยชน์กับลูกค้าและเพื่อสาธารณะได้อีกด้วย
  • อุตสาหกรรมการเงิน อาจนำมาเพื่อวิเคราะห์การฉ้อโกงเงิน การคาดการณ์ความต้องการของลูกค้า การแบ่งกลุ่มลูกค้า และการวิเคราะห์ความเสี่ยงของลูกค้า
  • ด้านวิทยาศาสตร์และเทคโนโลยีเช่น การพยากรณ์อากาศ การคาดการณ์ข้อมูลน้ำ หรือการวิเคราะห์ข้อมูลจากเซ็นเซอร์ต่างๆ การใช้งานพลังงาน
  • งานด้านการตลาด อาจนำมาเพื่อวิเคราะห์ข้อมูลจากเครือข่ายสังคมออนไลน์ (Social Media) การวิเคราะห์ข้อมูลที่พูดถึงสินค้าหรือแบรนด์ของหน่วยงาน (Sentiment Analysis) การค้นหาลูกค้าใหม่ๆ บนโลกออนไลน์
  • งานด้านบันเทิง หรือการท่องเที่ยว เป็นการวิเคราะห์กระแส ความนิยม talk of the town ในแต่ละกลุ่มบริการซึ่งมีส่วนเกี่ยวโยงกับ ข้อมูล ความคิดเห็น ในโซเชียลมีเดีย เป็นส่วนใหญ่ เพื่อจัดโปรแกรมหรืองาน ที่สร้างความสนใจให้ได้ตรงกับความสนใจของตลาด ในแต่ละช่วง แต่ละเวลา กับกลุ่มเป้าหมายที่ต่างกันไป

การประยุกต์ใช้งาน Big Data ในภาครัฐ

สำหรับตัวอย่างการใช้ประยุกต์ใช้งาน Big Data ในภาครัฐสามารถนำมาใช้งานได้ในหลายๆ หน่วยงานเช่น ด้านสาธารณสุข ด้านวิทยาศาสตร์ ด้านความมั่นคง ด้านการเงิน ด้านการบริการประชาชน ด้านเกษตรกรรม ด้านสาธารณูปโภค หรือด้านคมนาคม อาทิเช่น

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

ข้อดีของการประยุกต์ใช้เทคโนโลยี Big Data ในภาครัฐสามารถสรุปได้ดังนี้

  1. การใช้เงินงบประมาณและเงินรายได้ต่างๆ ของภาครัฐจะมีประสิทธิภาพมากขึ้น เพราะ Big Data จะช่วยคาดการณ์และวิเคราะห์ได้แม่นยำมากขึ้น
  2. ภาครัฐสามารถที่จะตรวจสอบข้อมูลการใช้งบประมาณได้ดียิ่งขึ้น
  3. ภาครัฐจะมีรายได้มากขึ้นหากมีการนำ Big Data มาใช้วิเคราะห์ข้อมูลการเสียภาษีด้านต่างๆ ว่ามีความถูกต้องเพียงใด
  4. ประชาชนจะได้รับการบริการที่ดีขึ้น เช่นการนำมาแก้ปัญหาจราจร  การให้บริการสาธารณสุข การให้บริการสาธารณูปโภค
  5. ประชาชนจะมีคุณภาพชีวิตที่ดีขึ้น เช่นเพิ่มความปลอดภัยโดยการวิเคราะห์แนวโน้มอาชญากรรม การมีสุขภาพที่ดีขึ้นจากการวิเคราะห์ข้อมูลสาธารณสุข
  6. เกิดความร่วมมือกับภาคเอกชนมากขึ้น จากการนำข้อมูลไปใช้
  7. จะมีข้อมูลใหม่ๆ มากขึ้นจากประชาชน (Crowdsourcing) หรือข้อมูลจากอุปกรณ์  Internet of Things
  8. เป็นการสร้างทักษะและผู้เชี่ยวชาญด้านข้อมูลมากขึ้น

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

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

ดังนั้นสิ่งที่ภาครัฐควรจะต้องเร่งทำเพื่อให้มีการประยุกต์ใช้ Big Data ในองค์กรคือ

  1. พัฒนาความรู้ความเข้าใจในการประยุกต์ใช้เทคโนโลยี Big Data  และสร้างวัฒนธรรมการร่วมมือการแชร์ข้อมูล
  2. ออกกฎหมายหรือกฎระเบียบเพื่อให้เกิดการเปิดข้อมูลของภาครัฐ (Open Data)
  3. พัฒนาทักษะบุคลากรให้มีความรู้ด้านเทคโนโลยี Big Data  
  4. มีหน่วยงานกลางที่ให้บริการเทคโนโลยี Big Data เพื่อไม่ให้เกิดการลงทุนซ้ำซ้อน และไม่ควรให้ทุกหน่วยงานลงทุนซื้อเทคโนโลยีมากเกินไป

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

IMC Institute

Hadoop Distribution ต่างๆสำหรับการทดลองใช้งาน

Screenshot 2016-06-10 13.15.30

เทคโนโลยีด้าน Big Data โดยเฉพาะ Hadoop เป็นเรื่องที่คนให้ความสนใจอย่างมาก และเริ่มมีการคาดการณ์กันว่าในอนาคตองค์กรต่างๆแทบทุกแห่งก็จะต้องมีการใช้งานระบบ Hadoop ในต่างประเทศให้ความสำคัญกับการอบรมด้านนี้มาก ซึ่งทางผมเองภายใต้สถาบันไอเอ็มซีก็ได้จัดการอบรมเทคโนโลยีให้กับผู้เข้าอบรมจำนวนมากในรอบสามปีที่ผ่านมาโดยมีจำนวนมากหนึ่งพันคน และสามารถที่จะ Download Slide การอบรมด้านนี้ของทางสถาบันได้ที่ www.slideshare.net/imcinstitute

hadoop-distributions

ประเด็นสำคัญเรื่องหนึ่งที่มักจะถูกถามจากผู้เข้าอบรมว่า เราสามารถที่จะหา Hadoop Cluster จากไหนมาทดลองเล่น จริงๆเราสามารถจะฝึกใช้ Hadoop ได้โดยติดตั้งระบบต่างๆดังนี้

1) การใช้ Hadoop Sandbox

Distribution หลายรายเช่น Cloudera, Hortonworks หรือ MapR จะมี Hadoop Sandbox ให้เราทำลองใช้งานได้ แต่ระบบนี้จะเป็นเครื่องเพียงเครื่องเดียวที่มี Image ให้เรารันผ่าน Virtual Box, VMWare หรือ KVM โดยเราอาจต้อง Download Image ขนาดใหญ่ประมาณ 4-6 GByte ลงมาเก็บไว้ก่อน ทั้งนี้เราสามารถจะ Download Image ของ Hadoop Distribution ต่างๆได้ที่นี้

นอกจากนี้ล่าสุด Cloudera  ยังสามารถรันผ่าน Docker โดยมีขั้นตอนการติดตั้ง Docker Image ดังนี้ >> การติดตั้ง Cloudera Quickstart บน  Docker

2) การติดตั้ง Hadoop Cluster เอง

เรายังสามารถที่จะติดตั้ง Apache Hadoop Cluster  ได้เอง  ซึ่งวิธีนี้จะต่างกับการใช้ Sandbox เพราะสามารถใช้งานได้จรีง และผมเองได้เคยเขียนแบบฝึกหัดให้ทดลองติดตั้งในหลายๆระบบดังนี้

นอกจากนี้ผมยังมีแบบฝึกหัดให้ติดตั้ง  Cloudera Cluster บน Amazon EC2 ซึ่งจะมีขั้นตอนการติดตั้งดังนี้ >> แบบฝึกหัดติดตั้ง Cloudera Cluster

3) การใช้ Hadoop as a Service

กรณีนี้เป็นการใช้ Hadoop Service ที่อยู่บน Cloud  แบบนี้เหมาะที่จะใช้ในการประมวลผล แต่ไม่เหมาะจะใช้เก็ยข้อมูลบน  HDFS เนื่องจากระบบ Hadoop as a Service จะไม่สามารถ Stop ได้ และมีค่าใช้จ่ายต่อชั่วโมงค่อนข้างสูง จึงเหมาะกับใช้ในการประมวลผลข้อมูลขนาดใหญ่ที่อยู่ใน Cloud Storage หรือข้อมูลบนอินเตอร์เน็ตแบบชั่วควาร

ผมเองมีแบบฝึกหัดทีให้ทดลองใช้ Hadoop แบบนี้สองระบบตือ

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

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

IMC Institute

 

 

 

 

Azure HDInsight หนึ่งในกลยุทธ์ที่เปลี่ยนไปของ Microsoft (มี Link เอกสารการอบรม)

Screenshot 2016-06-10 13.15.30

วันก่อนมีโอกาสไปจัดอบรม Big Data using Azure HDinsight ที่ออฟฟิศของ Microsoft มีคนเข้ามาร่วมอบรมจำนวน 50กว่าคน ทำให้มีโอกาสคิดได้ว่าถ้าเป็นสมัยก่อนคงยากที่ผมจะสอนเทคโนโลยีของ Microsoft โดยเฉพาะมาที่ออฟฟิศของเขาเลย เพราะผมสอนและใช้เทคโนโลยีตรงข้ามกับMicrosoft มาตลอด

  • ผมเขียนโปรแกรมและสอน Java Technology
  • ผมเป็น Certified Java instructor
  • ผมใช้เทคโนโลยีฝั่ง Server ที่เป็น Linux, MySQL database และ Java App/Web Server
  • ผมใช้เครื่อง Mac ใช้ ipad และเลือกใช้ smartphone ที่เป็น Android
  • ผมทำเอกสารต่างๆโดยใช้ OpenOffice ใช้ Gmail, Google Docs แม้ว่าจะซื้อ account ของOffice 365 แต่ก็ใช้ยามจำเป็น

แต่วันนี้กลยุทธ์ของ Microsoft มาที่ Mobile กับ Cloud ทำให้ผมต้องเข้ามาใช้ Microsoft Azure ที่เป็นระบบ Cloud ของ Microsoft ซึ่งมีทั้ง IaaS และ PaaS การใช้ IaaS โดยมากก็เป็นการใช้ Virtual Server ที่เป็น Ubuntu Linux ในการติดตั้ง Hadoop Clusterสำหรับ PaaS ที่น่าสนใจก็มี HDinsight ซึ่งเป็น Hadoop as a Service ซึ่งเหมาะกับการใช้ Hadoop Cluster ในช่วงระยะเวลาสั้นๆ เพราะเป็นระบบที่ติดตั้งโดยอัตโนมัติและเป็น Hadoop Distribution ของ Microsoft ที่พัฒนาบน Hortonworks เพื่อให้สามารถเชื่อม HDFS กับ Azure Blob

บริการ PaaS อีกอันของ azure ทีน่าสนใจคือ Machine Learning ซึ่งจัดเป็น Analytics as a Service ที่ผู้ใช้สามารถจะเข้ามาทำการวิเคราะห์ข้อมูลโดยใช้ Machine Learning Algorithm ต่างๆอาทิเช่น Linear Regression, K-Mean หรือ Recommendation สำหรับข้อมูลขนาดใหญ่โดยมี ML Studio ที่ผู้ใช้งานสามารถใช้งานโดยง่านได้

Screenshot 2015-09-23 21.38.47

สำหรับการอบรมที่ผมไปสอนผมใช้ HDInsight บน Linux จะเห็นได้ว่าวันนี้ Microsoft  เป็นระบบที่มีหลากหลาย Platform  แม้แต่ HDInsight ก็สามารถที่จะพัฒนาโปรแกรม  MapReduce ด้วยภาษา Java ผู้ที่ต้องการเรียนรู้การพัฒนาโปรแกรม Big Data  ผมแนะนำที่จะให้ใช้ Azure HDInsight เพราะจะได้ไม่ต้องไปวุ่นวายในการติดตั้ง Hadoop Cluster และ Microsoft เองก็มี Azure Free Trial ให้ใช้ สำหรับการใช้งานจริง HDInsight เหมาะสำหรับการทำงานเพียงระยะสั้นสำหรับผู้ที่ต้องการหา  Cluster ใหญ่ๆมาประมวลผล เพราะหลักการ HDInsight คือจะสร้างแล้วปิดระบบไม่ได้ นอกจากจะ Terminate  ทิ้ง แต่ถ้าต้องการตั้ง  Hadoop Cluster ไว้ระยะยาวบนคราว ผมอยากจะแนะนำให้ติดตั้ง Hadoop Distribution บน Vitual Server จะประหยัดกว่าเพราะสามารถเปิดปิด Server โดยไม่ต้อง Terminate เครื่องได้

สำหรับ Slide ประกอบการบรรยายครั้งนี้ผมมีสองชุด

– ชุดแรกเป็น Big Data using Azure HDInsight โดยสามารถ Download Slide ได้ที่ >> http://tinyurl.com/oco4z8n
– ชุดที่สองเป็นแบบฝึกหัด Azure HDInsight Workshop โดยสามารถ Download Slide ได้ที่ >>  http://tinyurl.com/obv34og

ซึ่งการอบรมนี้จะครอบคลุมเนื้อหา การติดตั้ง HDInsight, แนะนำ MapReduce, การใช้โปรแกรม Hive, การใช้โปรแกรมPig และการImport ข้อมูลจากฐานข้อมูล RDBMS โดยใช้ Sqoop

นอกจาก Slide ชุดนี้เราสามารถศึกษาการใช้ HDInsight ได้เพิ่มเติมจาก Tutorial ของMicrosoft Azure ได้ที่ >> http://azure.microsoft.com/en-us/documentation/services/hdinsight/

ผมเองยังได้เขียน Slide ที่เป็นแบบฝึกหัดสำหรับการใช้ Azure Machine Learning โดยมีแบบฝึกหัดทดลองทำ ML 4  เรื่องคือ

  • Classification เพื่อคาดการณ์ราคารถยนต์โดยใช้ Linear Regression Algorithm
  • Clustering เพื่อแบ่งกลุ่มประเทศตามการบริโภคอาหารโดยใช้ K-Mean Algorithm
  • Recommendation แนะนำร้านอาหารจากข้อมูลในอดีต และ
  • Classification เพื่อคาดการณ์ว่าเที่ยวบินที่มาถึงล่าช้าหรือไม่โดยใช้ Decision Tree Algorithm

โดยสามารถ Download Slide ได้ที่  >> http://tinyurl.com/pkjonbn

สุดท้ายนี้ทาง IMC Institute เองจะเปิดสอนหลักสูตร Azure โดยไม่มีค่าใช้จ่ายอีกครั้งในวันที่ 30 ตุลาคม โดยงานนี้ได้รับการสนับสนุนจาก Microsoft เช่นเคย

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

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

Screenshot 2015-09-23 21.45.34

เมื่อพูดถึง 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