สรุปงาน Big Data Conference 2016

เมื่อวาน ผมได้ไปหางาน Big Data Conference ไปหา Idea ใหม่ และหาคำตอบให้กับตัวเอง ด้วยว่าเราเรียน ป โท Computer Science ที่จุฬา ดีไหม ? มาเข้าเรื่องกันเลยดีกว่าครับ

Section 1: Going Intersteller?: The Truth Behind the Cloud

โดยคุณ Rawitat Pulum

อะไร คือ big data เราสนใจอะไร ทาง อ มองต่างจาก 3V มาเป็น 4S

  • Space
  • Size
  • Speed
  • Structure

ย้อนกลับไปในยุคแรกๆ ของ digital ปี 1980 เรามองพ Structure ก่อน พวก ER-Diagram นั้นแหละ แล้วเอา Data ยัดเข้าไป เพื่อจัดเก็บและค้นหาแหละ

  • ถ้าตัวอย่างใกล้ตัวสุดๆ ระบบดิวอี้ และ sort ในห้องสมุด
  • ถ้ามาด้านคอมบ้างหละ พวกระบบงานทั้งหลายตอนเรียน ระบบงานห้องสมุด ร้านขายของ ถ้าอลังการหน่อยก็ ตัว E-commerce ทุกระบบกล่าวมาเนี่ยมี T ทุกคนคุ้นเคยนะครับ T นั้น คือ Transaction พอมีแล้ว มีเยอะแล้ว เมื่อมีข้อมูลเราก็มีคำถาม
    - คำถามที่เราเตรียมคำตอบไว้แล้ว เช่น ดู Transaction ย้อนหลัง ดูยอดขาย
    - คำถามที่เราไม่ได้เตรียมคำตอบ เช่น อยากหาความสัมพันธ์ ของการยืมหนังสือใน แต่ละสาขา , การซื้อของคนกลุ่มไหน กับสินค้าอะไรเยอะสุด เราควรทำโปรโมชั่นไหน เป็นต้น

ประเด็นอื่นที่ต้องสนใจ Small Data vs Big Data และ Structure & Data Immutable vs Mutable

Session 2: Manage & Monitor Hadoop cluster with Apache Ambari

โดยคุณ Charnsilp Chinprasert

Apache Ambari มาช่วยจัดการ Hadoop เพื่อใช้ช่วย

  • Provisioning :
    • Install & Config ได้ง่าย มี Step ในการ Test ว่า Config ที่ทำ Work ไหม
    • การปรับ Parameter มันฉลาด ที่รู้ด้วยว่าจะกระทบ Config ตัวไหน นึกถึง DB2 แล้วสยองเลยย
    • Revision ของ Config ไม่ต้องมา Comment ไว้ลอยและ
  • Management :
  • Monitor :

Session 3+4: Real time log monitoring+Log Design for WebApp

โดยคุณ ศุภเกศ วงศ์คำภู และ Wittawas Wisarnkanchana

เนื่องจากเห็นว่า 2 หัวข้อนี้ มันคล้ายกัน เลยขอยุบรวมกันดีกว่า

ทำไม Log ถึงเป็น Big Data เพราะ มันเยอะ ง่ายๆ และมีคุณค่าแฝงในตัว

เอา Log มาทำอะไร

  • Issue Tracking/ Debugging : เอาไว้หา Error ที่เกิดขึ้นบน Production
  • Performance Analysis : เอามาวิเคราะห์ เช่น อยู่มันไปใช้ I/O บ่อย ระบบช้าลง ตรงนี้ต้องหาสามารถว่าทำไมถึงทำ
  • Security Analysis
  • Predictive Analysis : ทำนายอนาคต เช่น เอา Activity Log มาดูพฤติกรรม User เพื่อปรับ UX/UI หรือ หาสร้างโปรโมชั่น โดยเอาข้อมูลอื่นๆมา Matching

ปัญหาถัดมา ถ้ามี Log จากหลายๆที่ เราจะดูยังไง ไล่ไปดึงจากทุกเครื่อง (Decentralize) ถึกไป มี Tools ที่เข้ามาช่วยรวมสุ่งศูนย์กลาง (Centralize) ดังนี้

  • Data Source: Log ของ Client ใช้ Log4j, Log4Net และของเจ้าอื่นๆ
  • Pre-Process : ผมมองว่าเป็นการทำ ETL(Extract Transform Load)  เอา log จากหลายๆ Data Source มาทำให้เป็นรูปแบบที่เหมาะสมต่อไป
  • Process & Index : เอาข้อมูลที่ได้มาจัดเก็บใช้พร้อมใช้ Elasticsearch ซึ่งต่อยอดมาจาก Lucene (เคยเล่นมานานละเจ๋งมาก) โดยมันเป็น Search Engine แบบ Distributed เกิดมาเพื่อ Search
    • Elasticsearch มันเกิดมา เพื่อ Search นะ ไม่จำเป็นต้องมาเก็บ Log อาจจะไปทำ Search Engine เจ๋งๆให้กับเว็บได้ เพราะ มันมี REST และ JSON
  • Visualize : Kibana มันเป็น UI ที่มาเป็นของคู่กับ Elasticsearch ช่วยให้เรา Filter และ Visualize Data ได้ง่ายขึ้น

มาดูเรื่องอื่นๆบ้าง Log Storage มันมีไม่ได้มี Elasticsearch มีตัวอื่นด้วย เช่น Redis, Cassandra, MongoDB ซึ่งต้องไปดูจุดเด่น-ด้อย ของแต่ละตัวกันต่อไปครับ

MicroService กับการจัดการ  log ทำมาเป็น Middleware

ปัญหาโลกแตกในอัลกอริทึม TOP-K Problem : Search ข้อมูลอย่างไรให้ได้มีประสิทธิภาพที่สุด

Session 5 : Connecting to Cassandra with Java

โดยคุณ พีรพัฒน์ อโศกธรรมรังสี

ก่อนอื่นเลย เราต้องมารูัจักก่อนว่า Cassandra คือ อะไร

  • Key-Value Database มันไม่ใช่ RDBMS แน่ๆ
  • Key ไม่สามารถเปลี่ยน Type ได้
  • การออกแบบ DataModel สำคัญมากๆ ทำผิดต้องสร้างใหม่ และ Migrate เอา ออกแบบ Key ให้ถูกไม่งั้นช้ามากก
  • Index ทำได้ แต่ทำ ทำไมในเมื่อมันเป็น Key-Value อยู่แล้ว เพราะ ต้องสร้าง Index มันเหมือนทำ Table ซ้อน เปลือง Performance อีก

Cassandra ใช้กับงานที่ต้องการความเร็วมากๆ เร็วแบบไม่ต้องพึ่ง Cache เช่น ข้อมูลที่มีการเปลี่ยนแปลงบ่อยๆ

ภาษาที่ใช้ CQL เหมือน SQL แต่ไม่เหมือน

  • SELECT : JOIN ไม่ได้ และต้องเวลา WHERE ต้องใช้ key เท่านั้น
  • INSERT / UPSERT :
    • Key ไม่ซ้ำก็ INSERT ถ้าซ้ำก็ UPDATE
    • ความพิเศษของมัน ทุก Record มี TTL (Time to Leave บอกอายุของ Record ว่ามีอายุเท่าไหร่ ถ้าหมดอายุไปแล้ว เวลาดึงข้อมูลจะไม่โผล่ออกมา)
  • ทำพวก Aggregate พวก SUM(), AVG() ไม่ได้ ในตัวเอง

Java Coding

  • เขียน Code คล้าย JDBC แต่ว่ามันไม่ใช่นะ ทำคำสั่งให้คล้ายๆกัน
  • ResultSet ไม่มีของ Java ปกติ ที่เป็น Pointer แต่มันจะดึงมาเก็บไว้ที่ memory

เวลาใช้งานจริง อาจะต้องมาปรับใช้กับ RDBMS ตัวอื่น เพราะ ข้อมูลบางส่วน มันไม่จำเป็นต้อง Realtime อาทิ เช่น ข้อมูลพวก Master

Session 6 : Unlock Security Insight from Machine Data

โดยคุณ Narudom Roongririwong

ภาพรวมเป็นการนำ Log ที่แง่ของ Network มา Analysis ครับ เพื่อหาแนวโน้มความความเสี่ยง โดยมี Step ดังนี้

  • Know your Machine Data
  • Know your Context
  • Look for insight
  • Identify Measure
  • Security Analysis Life Cycle
  • Implementation

สำหรับรายละเอียดสามารถดูได้จาก Slide ครับ

และท้ายที่สุดเป็นภาพบรรยากาศทั่วๆไปครับ ของสถานที่จัดงาน อาคารหอประชุมเมืองไทยประกันชีวิตครับ

 

 


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.