การออกแบบ Big Data Architecture ปัจจัยสำคัญคือ Business Use Case

Screenshot 2019-09-14 12.11.57

ผมมักจะเจอคำถามบ่อยๆว่าจะทำโปรเจ็ค Big Data  ควรจะใช้เทคโนโลยีอะไรดี เลือกซื้อจากรายไหนดี จริงๆแล้วการจะตอบคำถามนี้คงจะต้องพิจารณาจากหลายปัจจัยตั้งแต่คำถามว่า

  1. ต้องการนำมาใช้ในโครงการใด Use Caseใด ซึ่งคำตอบนี้จะมีผลต่อสถาปัตยกรรมที่ต้องมาพิจารณาในการออกแบบ ตัวอย่างเช่น
    • ข้อมูลมี Volume มากเพียงใด เพราะหากมีขนาดมากกว่า 100 TB ก็อาจเป็นปัญหา
    • ข้อมูลมี Velocity ที่จะเข้าเท่าไร เพราะถ้ามีขนาดต่ำกว่า 100 K ต่อวินาทีก็อาจรองรับไหว
    • ข้อมูลมี Veracity เพียงใด มีทั้ง Structure หรือมี semi-structured และ Unstructured ด้วย
    • ต้องการประมวลผลแบบใด Batch หรือ Realtime
  2. เราต้องการจะออกติดตั้ง Big Data Platform ที่ใด
    • Cloud หรือ  Data Center
  3. เราจะเลือกสถาปัตยกรรมแบบใด
    • ติดตั้งเอง หรือ PaaS  ที่เป็น Big Data as a Service
    • ค่าจ่ายแบบ Pay as you go หรือ Fix
    • ระบบแบบ Couple หรือ Decouple
  4. เราได้สื่อสารแผนงานของเราชัดเจนเพียงใด
  5. เราได้วิเคราะห์อุปสรรคต่างๆได้ดีเพียงพอแค่ไหน

Screenshot 2019-09-14 13.02.40รูปที่ 1 องค์ประกอบของสถาปัตยกรรมระบบ Big Data

สถาปัตยกรรมระบบ Big Data ส่วนใหญ่ก็จะประกอบไปด้วยองค์ประกอบ 4 อย่างก็คือ

  • Ingestion คือส่วนที่นำข้อมูลเข้าที่อาจเป็นแบบ Batch หรือ Streaming
  • Storage คือส่วนที่เก็บข้อมูลทั้งนี้คืออยู่กับขนาดและชนิดของข้อมูลที่ต้องการเก็บ
  • Processing คือส่วนในการประมวลผลต่างๆทั้งการทำ Data Cleanising, การทำ Modelling  หรือ การทำ Data Science ซึ่งการประมวลผลมีทั้งแบบ Batch หรือRealtime
  • Visualisation คือส่วนในการแสดงผลข้อมูล

ในปัจจุบันก็มีเทคโนโลยีด้าน Big Data หลากหลายที่สามารถนำมาใช้ได้ (ดังแสดงในรูปที่ 2) แต่ละเทคโนโลยีมีความเหมาะสมที่แตกต่างกันทั้งนี้ขึ้นกับ Use Case ของโครงการที่ Big Data จะนำไปใช้ โดยต้องวิเคราะห์ถึงขนาดของข้อมูล ความถี่ของข้อมูล ความต้องการประมวลผล ความปลอดภัยของข้อมูล และงบประมาณ

70461936_561279104613554_3942196441996328960_nรูปที่ 2 ตัวอย่างเทคโนโลยีด้าน Big Data

ทั้งนี้การเลือกใช้เทคโนโลยี Big Data มีหลักการที่สำคัญสองประเด็น

  • ควรจะสร้างระบบที่แยก (Decoupled) กันระหว่างระบบ Storage และ Processing ซึ่งอาจต้องใช้เครื่อง Server Cluster ที่ต่างกัน
  • การเลือกใช้เทคโนโลยี Big Data ถ้าต้องติดตั้งใน Data Center เองก็ไม่ควรเกิน 4 เทคโนโลยี แต่ถ้าเป็นบริการบน Cloud ก็ไม่ควรเกิน 7 เทคโนโลยีทั้งนี้ก็เพื่อง่ายต่อการบำรุงรักษา และลดความซับซ้อนของระบบ

เพื่อให้เห็นวิธีการเลือกสถาปัตยกรรม ผมขอยกตัวอย่างกรณีศึกษาของลูกค้ารายหนึ่งที่ทางทีมงานของ IMC Institute เข้าไปดำเนินการให้ โดยมีวิธีคิดดังนี้

Business Use Case มีข้อกำหนดต่างๆดังนี้

  • ลูกค้าต้องการรวบรวมข้อมูลจากแผนกและหน่วยงานต่างๆที่มีมาตั้งแต่ปี 2553  ที่ปัจจุบันเป็นแบบ Siloให้อยู่ในรูปแบบของ Data Lake เพื่อใช้ในการวิเคราะห์ข้อมูลทั้งแบบ Descriptive และ Predictive
  • Volume: ข้อมูลมีขนาดประมาณ 1 TB และมีจำนวนประมาณ 1,000 ล้านเรคอร์ด
  • Velocity: จะมีข้อมูลที่นำเข้าใหม่ในเพียงเดือนละครั้งจำนวนประมาณ 5 ล้านเรคอร์ด
  • Variety: ข้อมูลมีหลากหลายรูปแบบทั้งที่เป็น Database, CSV, SPSS หรือ ข้อความ
  • Processing: ข้อกำหนดในการประมวลผลไม่ได้เป็นแบบ Realtime แต่ขอให้สามารถแสดงผลข้อมูลหลายร้อยล้านเรคอร์ดได้ภายในไม่เกินหนึ่งนาที
  • งบประมาณ:  ลูกค้ามีงบประมาณจำกัดต่ำกว่า 8 ล้านบาท

Technology:  ทีมงานได้ตัดสินใจเลือกตามเงื่อนไขต่างๆดังนี้

  • Infrastructure:  เมื่อเปรียบเทียบระหว่างการทำระบบ On-Premise หรือ Private Cloud บน Data Center กับการใช้  Big Data as a Service ของ Public Cloud รายต่างๆแล้ว ทีมงานเลือกใช้ Google Cloud Platform (GCP) ด้วยเหตุผลเรื่องค่าใช้จ่ายที่ถูกกว่า ความคุ้นเคยของทีมงาน ความง่ายต่อการใช้งาน และสามารถเริ่มทำได้ทันทีเพราะค่าใช้จ่ายเริ่มต้นต่ำ
  • Ingestion: เนื่องจากการนำเข้าข้อมูลเป็นแบบ Batch ข้อมูลมีขนาดเล็กและไม่มีความซับซ้อนมากนัก ทีมงานก็เลยเลือกที่จะใช้วิธี Upload ผ่าน Command Line  ของ GCP
  • Storage:  ทีมงานเลือกใช้ Google Cloud Storage แบบ Multi-Regional ในการเก็บข้อมูลที่หลากหลาย เนื่องจากราคาถูกและสามารถ Scale ได้ง่าย โดยจะแบ่งข้อมูลออกเป็นสามโซนคือ Raw Zone, Trusted Zone และ Refined Zone นอกจากนี้ยังใช้ Google BigQuery ในการเก็บข้อมูล Structure ที่ผ่านการ Cleansing จาก Raw Zone มาแล้วเพื่อความรวดเร็วในการประมวลผล
  • Processing: ทีมงานเลือกใช้ Google DataProc ที่เป็น Hadoop as a Service มาใช้ในการประมวลผล โดยจะสร้าง Cluster เมื่อมีการประมวลผล และค่าใช้จ่ายจะเป็นแบบ Pay as you go ทำให้ประหยัดค่าใช้จ่าย โดยใช้เทคโนโลยีต่างๆในการประมวลผลดังนี้
    • Data Cleansing: การประมวลผลข้อมูลใน Raw Zone เลือกใช้ Spark จาก DataProc โดยเลือกเขียนโปรแกรมเป็นภาษา Python
    • Data Transformation: การแปลงข้อมูลหรือการสร้าง Table ใหม่ ทีมงานเลือกใช้ Hive และ Spark จาก DataProc
    • Machine Learning: ในการทำ Predictive Analytics ทีมงานเลือกใช้ Spark MLlib
    • Query: สำหรับการ Query ข้อมูลขนาดหลายร้อยเรคอร์ดและเชื่อมโยงกับ Visualisation Tool ทีมงานเลือกใช้ Google BigQuery ที่มีความรวดเร็วในการประมวลผล
  • Visualisation: ทีมงานเลือกใช้ Power BI ด้วยเหตุผลเรื่องงบประมาณและความสวยงามของกราฟที่ได้

จากตัวอย่างที่ยกมาจะพบว่าการออกแบบ Big Data Archicture และการเลือกใช้เทคโนโลยี ความสำคัญอยู่ที่ต้องเริ่มต้นจาก Business Use Case ไม่ใช่เริ่มจากเทคโนโลยี

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

IMC Institute

เอกสารอ้างอิง

1.) AWS Big Data Demystified #1.2 | Big Data architecture lessons learned

บริการออนไลน์และสิทธิพิเศษของสมาชิกที่แลกมาด้วยข้อมูลส่วนตัว

69265373_300445684132982_1512539807790661632_n

“มี All member ไหมครับ”  คือคำถามที่พนักงาน 7-11  จะถามผมทุกครั้งที่ผมจะจ่ายค่าสินค้า

การเป็นสมาชิกของร้านค้าต่างๆเช่น ร้านสะดวกซื้อ ร้านกาแฟ สถานีบริการเติมน้ำมัน หรือแม้แต่บริการออนไลน์ต่างๆอย่าง Grab, Rabbit Line  ก็อาจมีข้อดีในการที่จะได้บริการหรือสิทธิพิเศษที่ได้มากขึ้น เช่นอาจได้ของแถม อาจได้ส่วนลด แต่ทั้งหมดนี้อาจต้องแลกมาด้วยความเป็นส่วนตัวที่จะต้องถูกผู้ให้บริการเหล่านั้นสามารถนำข้อมูลของเราไปวิเคราะห์ได้

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

  • ผมทานกาแฟ และสมาชิก Starbucks เวลาไปเปิดดู ข้อมูลของผมที่แสดงในเว็บไซต์ จะเห็นเลยว่า แต่ละวันมียอดค่าใช้จ่ายอย่างไร ผมเองเชื่อว่า ข้อมูลนี้เป็นเพียงส่วนหนึ่งที่เขาเอามาแสดงให้ผู้บริโภคเห็น แต่จริงๆแล้วข้อมูลในฐานข้อมูลน่าจะเก็บรายละเอียดมากกว่านี้ โดย Starbucks ก็คงทราบว่าผมไปทานกาแฟร้านไหน และสั่งอาหารอะไร

Screenshot 2019-09-12 11.10.08

รูปที่  1 ตัวอย่างข้อมูลการใช้บัตร Starbucks  ที่แสดงให้ผู้ใช้ดู

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

Screenshot 2019-09-12 11.11.04

รูปที่  2 ตัวอย่างข้อมูลการดูหนังของ  NetFlix ที่แสดงให้ผู้ใช้ดู

  • ผมซื้อของจาก E-commerce  หลายเจ้าท้้ง Lazada, AliExpress, Amazon.com ผมสามารถเห็นข้อมูลการสั่งซื้อในอดีตของผมได้ และเชื่อว่าผู้ให้บริการเหล่านี้เก็บข้อมูลไปมากกว่านี้ คงรู้ว่าผมไป Click  รายการสินค้าอะไรบ้าง Review  อะไรบ้าง ซึ่งเรื่องนี้ก็คงเกิดขึ้นกับบริการออนไลน์อื่นๆที่ผมใช้ทั้ง  LineMan, Grab, Agoda, Kayak
  • ผมใช้บัตรทางด่วน EasyPass ซึ่งจัดว่าเป็น IoT เวลาเปิดดูข้อมูลใน App  ก็จะเห็นรายละเอียดว่า ผมผ่านทางด่วนด่านไหนบ้าง เวลาไหน
  • ผมมีอุปกรณ์ Smart Home ของ Xiaomi เต็มบ้าน เวลาเข้ามาดู Log  ก็จะเห็นได้ว่า ประตูบ้านเปิดปิดตอนไหน   มี Motion sensor ที่มี Log ให้เห็นการเครื่องไหวในบ้าน มีเครื่องไฟฟ้าที่ต่ออินเตอร์เน็ต หรือมีกล้อง ทำให้รู้เลยว่าผู้ให้บริการเก็บข้อมูลไว้หมด จนบางครั้งนี่ก็อาจต้องระมัดระวังว่า กล้องที่ใช้อยู่จะมีการเก็บภาพไปไว้ที่ระบบของผู้ให้บริการ

รูปที่  3 ตัวอย่างข้อมูล IoT ของ  Xiaomi และ EasyPass ที่แสดงให้ผู้ใช้ดู

  • ผมใช้อุปกรณ์ Wearable เพื่อเก็บข้อมูลสุขภาพหลายอย่าง ทั้งการออกกำลังกาย การเดิน มีเครื่องวัดความดัน เครื่องชั่งน้ำหนัก ข้อมูลเหล่านี้เก็บไว้บน  Cloud ผมสามารถมาตรวจสอบดูได้ และก็คิดว่าผู้ให้บริการก็อาจเอาข้อมูลผมไปวิเคราะห์ได้
  • ผมใช้บริการการเงินสารพัดอย่างตั้งแต่ บัตรเครดิต, Mobile Banking, True Wallet, PayPal, Lazada Wallet, Rabbit LinePay ทุกครั้งที่ชำระเงิน ผู้ให้บริการก็เก็บข้อมูลไป ซึ่งผมสามารถตรวจสอบได้ว่ามีการเก็บข้อมูลอย่างไรผ่านระบบ App หรือเว็บไซต์จึงไม่แปลกใจว่าทำให้พวกเขาถึงสามารถวิเคราะห์ข้อมูลผมได้
  • ยังมีบริการออนไลน์หรือ  IoT อีกหลายอย่างที่ผมใช้ทั้ง  Google Home, Google Assitant, Amazon Echo, Spotify  ซึ่งบริการเหล่านี้ก็คงเก็บข้อมูลของผมไปมากมายเช่นเดียวกัน

ใช่ครับวันนี้เราคงต้องคิดให้ดีกับการจะสมัครเป็นสมาชิกหรือการใช้บริการเหล่านี้ เพราะความเป็นส่วนตัวเราจะหายไป เราจะถูกติดตามและตรวจสอบได้หมด ยิ่งถ้าบริการนั้นมาผูกกับบัตรประชาชนเราหรือข้อมูลใดที่สามารถระบุตัวตนเราได้ก็ยิ่งมีความเสี่ยง บางทีเราอาจดีใจที่ได้ส่วนลดหรือบริการที่ดีขึ้นแต่คงต้องระวังกันพอควรละครับ บางทีผมก็นึกถึงหนัง  The Net หรือ Enemy of the State ที่แม้จะสร้างมาเมื่อ 20 ปีก่อน แต่มันก็กำลังเป็นเรื่องจริงแล้วในยุคปัจจุบัน

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

IMC Institute

การติดตั้ง Google Assistant ลงบนมือถือเพื่อให้สั่งงานเป็นภาษาไทยได้

69237138_1470765076404161_3826382545780473856_n

“Ok Google, Show my photos at Barcelona”
“Ok Google, แสดงรูปภาพที่บาร์เซโลน่า”
“Ok Google, หนังเรื่อง Lion King ฉายเวลาไหน”
“Ok Google, แปลง 3200 เยนเป็นไทยบาท”
“Ok Google, ใครคือนายกรัฐมนตรีประเทศไทย”
“Ok Google แปลฉันรักเธอเป็นภาษาจีน”

สิ่งหนึ่งที่ผมสาธิตให้คนฟังบรรยายเป็นประจำก็คือการใช้ Google Assistant ซึ่งเป็นโปรแกรม AI ที่สามารถสั่งงานด้วยเสียงได้ โดยมักจะสาธิตการใช้โปรแกรมผ่านมือถือ และก็พูดคุยให้ดูสดๆ โดย 2-3 ปีก่อนก็จะพูดเป็นภาษาอังกฤษ แต่ระยะหลังๆผมสาธิตโดยสั่งงานด้วยเสียงเป็นภาษาไทย หลายคนตื่นเต้นและมักจะถามผมว่าผมใช้โปรแกรมอะไร

โทรศัพท์ของผมเป็น iPhone แม้จะมี Siri อยู่ แต่ผมก็คุ้นเคยกับ Google Assistant มากกว่า เนื่องจากที่บ้านมีอุปกรณ์อย่างตั้งแต่ Google Home, Google Chromecast  และ True ID TV Box ซึ่งทั้งหมดนี้ก็คืออุปกรณ์ที่มี Google Assistant ฝังอยู่ ผมจึงเลือกที่จะโหลดโปรแกรม Google Assistant จาก Apple App Store มาใช้ในโทรศัพท์ iPhone ของผม

69992802_2474721696140478_6800656542245847040_n

แต่การที่จะทำให้มันรู้จักภาษาไทย ผมจะต้องโหลดโปรแกรม Google Home มาใช้ควบคู่กัน เมื่อเปิดโปรแกรม Google home เราจะเห็น icon Profile ที่อยู่ด้านล่างทางขวามือให้กดเลือกตรงนั้น จากนั้นให้เลือกเมนู Settings ตามด้วย More settings ซึ่งเราจะเห็น Tab ที่ชื่อ Assistant ซึ่งเมื่อเราเลือกเข้าไปก็จะเห็นเมนู Languages สำหรับให้เราเลือกภาษาในการพูดคุยกับ Google Assistant ซึ่งในที่นี้ผมได้เลือกภาษาไว้แล้ว สองภาษาคือไทยและอังกฤษ ถ้าเราเลือกข้างในจะเห็นได้ว่าในปัจจุบัน Google Assistant ก็ รองรับภาษาหลายภาษาแล้วรวมทั้งภาษาไทย

แต่อย่างไรก็ดีอุปกรณ์ Android ที่มี Google Assistant อยู่จำนวนมากเพราะอาจจะยังไม่รองรับการฟังคำสั่งภาษาไทยตอนนี้อุปกรณ์อย่าง Google home หรือ Google Chromecast ที่ผมใช้อยู่ที่บ้านก็ยังสามารถพูดคุยได้แพ้ภาษาอังกฤษ แต่ Google Assistant ในมือถือผมและ TrueID TV Box รู้จักภาษาไทยแล้ว

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

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

IMC institute